Scala scale file format
This page is intended for developers of music software who wish to support reading or
writing of Scala scale (.scl) files. This file format for musical tunings is a standard
for exchange of scales, owing to the size of the scale archive of
over 4000 scales and the popularity of the
Scala program. With the
file's human readable format it's also useable for including scales in e-mail or
discussion group postings.
The rules
- The files are human readable ASCII or 8-bit character text-files.
1)
- The file type is .scl .
- There is one scale per file.
- Lines beginning with an exclamation mark are regarded as comments and are to be ignored.
- The first (non comment) line contains a short description of the scale,
but long lines are possible and should not give a read error. The description is
only one line. If there is no description, there should be an empty line.
- The second line contains the number of notes. This number indicates the
number of lines with pitch values that follow. In principle there is no upper
limit to this, but it is allowed to reject files exceeding a certain size.
The lower limit is 0, which is possible since degree 0 of 1/1 is implicit.
Spaces before or after the number are allowed.
- After that come the pitch values, each on a separate line, either as a
ratio or as a value in cents. If the value contains a period, it is a cents
value, otherwise a ratio. Ratios are written with a slash, and only one.
Integer values with no period or slash should be regarded as such, for example
"2" should be taken as "2/1". Numerators and denominators should be supported to
at least 231-1 = 2147483647. Anything after a valid pitch value should be
ignored. Space or horizontal tab characters are allowed and should be ignored.
Negative ratios are meaningless and should give a read error. For a description of cents,
go here.
- The first note of 1/1 or 0.0 cents is implicit and not in the files.
- Files for which Scala gives Error in file format are incorrectly
formatted. They should give a read error and be rejected.
So these lines are all valid pitch lines:
81/64
408.0
408.
5
-5.0
10/20
100.0 cents
100.0 C#
5/4 E\
Here is an example of a valid file:
! meanquar.scl
!
1/4-comma meantone scale. Pietro Aaron's temperament (1523)
12
!
76.04900
193.15686
310.26471
5/4
503.42157
579.47057
696.57843
25/16
889.73529
1006.84314
1082.89214
2/1
A simple advise: put the filename on the first line behind an exclamation mark. Then someone
receiving the file and reading it knows a name under which to save it.
To developers of MIDI software: you should be aware that there is another Scala file
type for mapping key/note numbers to scale degrees, called a keyboard
mapping, with file extension .kbm . In absence of support for keyboard
mapping files, you may choose any mapping you want, but it will severely limit
the musical usability, as argued in this article from SoundBytes.
The description is here: Scala Keyboard Mappings.
1) The user can choose the character set that he/she requires, but
if a file is intended to become included in the scale archive, it should be in
ISO 8859-1 'Latin-1' or the ASCII subset.
Scale Archive
The scale archive can be freely downloaded. See the contents
listing for a brief description of each scale file. The scales are at:
http://www.huygens-fokker.org/docs/scales.zip.
Other software
Other programs which support the Scala scale format:
-
Aalto (Madrona Labs)
-
AlsaModularSynth by Matthias Nagorni
-
amSynth by Nick Dowell (also .kbm files)
-
AnaMark by Mark Henning (also .kbm files)
-
ARIA Engine (Plogue Art et Technologie and Garritan Corp)
-
Astralis v2 (Homegrown Sounds) (also output with
Scala Creator VSTi)
-
Audiopaint by Nicolas Fournel
-
Bespoke Synth by various people (also .kbm files)
-
Bitwig Studio (Bitwig)
-
Buddha Orchestra by Victor Khashchanskiy
-
Blue by Steven Yi: PianoRoll and Tracker sound objects
-
BR808 by Benjamin Rosseaux (also .kbm files)
-
Bristol by Nick Copeland
-
Cantor (VirSyn Software Synthesizer)
-
chipsounds (Plogue) (also .kbm files)
-
chipsynth (Plogue) (also .kbm files)
-
Chromaphone (Applied Acoustics)
-
Chromatia Tuner (FMJ-Software) (12 tones)
-
Chromatic Tuner by Daniele Cenni
-
Combo Model F (Martinic)
-
crusher-X (accSone)
-
Cube 2 (VirSyn Software Synthesizer)
-
Custom Tuning Editor by Aaron Andrew Hunt
-
Decent Sampler Plugin by David Hillowitz (also .kbm files)
-
Dexed fork by Surge Team (also .kbm files)
-
Digital Performer (MOTU)
-
Dimension Pro 1.2 (Cakewalk)
-
Entonal Studio (Entonal)
-
Escalador by Oswaldo González (output)
-
Ethno 2 (MOTU)
-
Falcon (UVI) (also .kbm files)
-
FB-3100,
FB-3200,
FB-3300 and
ModulAir VSTs (Full Bucket Music)
-
Fortuna Tuner by Henry Lowengard
-
Fractal Filters by Dillon Bastan (also .kbm files)
-
Fractal Tune Smithy by Robert Walker
-
Free Music Instrument Tuner by Gilles Degottex
-
FretFind by Aaron Spike
-
G2ools Scala to Nord Modular G2 converter by Ian Sayer
-
HALion 6 (Steinberg)
-
Harmonic Analyser, MidiTemper and PianoTuner by Fred Nachbaur
-
Harmonync by Walter Mantovani
-
Harmor (Image-Line)
-
Hemisphere Scale Editor by Jason Justian and Scala to Hemisphere Suite converter
-
H-Pi Instruments microtonal software by Aaron Andrew Hunt
-
Infinitone (Infinitone)
-
Java Just Intonation Calculator by Charles Céleste Hutchins
-
Kaleidoscope (2CAudio)
-
Kaivo (Madrona Labs)
-
Key Tuner by Octarone (with minimal modification)
-
Kit Creator (Homegrown Sounds)
-
LINGOT Is Not a Guitar-Only Tuner by Ibán Cereijo-Graña and Jairo Chapela-Martínez.
Windows version here
-
Linotune harmonic strobe tuner by Lino Schraudolph
-
LMMS by various authors
-
Logic Pro 7 and Logic Express 7 (Apple) (+/- 100 cents 12-tET offsets)
-
Lounge Lizard EP-4 (Applied Acoustics)
-
MachFive 3 (MOTU)
-
Mainstage 3 (Apple)
-
Max for Ableton Live Retune for Live module by John Platter (also .kbm files). It uses this C++ source code to parse .scl and .kbm files for softsynths
-
Max Magic Microtuner by Victor Cerullo
-
Max/MSP library (Cycling74)
-
MaxScore for Max and Ableton Live by Nick Didkovsky and Georg Hajdu
-
MAZ VSampler
-
Melodyne (Celemony)
-
MicroABC by Hudson Lacerda
-
microsynth by Aaron Andrew Hunt
-
Microtuner by Ableton (Ableton) (uses Max)
-
µTune module (Tubbutec)
-
MIDI Relay and Midiconv by Graham Breed
-
MIDI Tapper by Aaron Andrew Hunt
-
Minilogue (Korg)
-
MTS-ESP Mini and
MTS-ESP Suite (Oddsound) (also .kbm files)
-
mu0 by Stéphane Rollandin
-
MuseScore (MuseScore)
-
Music21 by Michael Cuthbert et al. at MIT
-
Mutabor by Bernhard Ganter et al. at TU Dresden
-
Odin 2 (The Wave Garden) (also .kbm files)
-
OpenMPT ModPlug Tracker
-
OPS7 (Plogue) (also .kbm files)
-
Orion Platinum, Orion and Dune (Synapse Audio Software) (max. 12 tones)
-
OTR88 Electric Piano by Devine Machine
-
padthv1,
samplv1,
synthv1 (rncbc) (also .kbm files)
-
Perl programming language via Scala module by Jeremy Mates
-
Personal Orchestra 5 (Garritan) (also .kbm files)
-
Phatty Tuner Alternate Scales Editor (Moog Music) (12 tones)
-
Pianoteq 5 (Modartt) (also multichannel .kbm files)
-
Piano Thor (Sound Magic)
-
Pigments (Arturia)
-
Plasmonic (Rhizomatic Software Synthesis)
-
PolyGAS (Stone Voices)
-
PreenFM2 DIY frequency modulation sound generator by Xavier Hosxe
-
-
PyTuning Python library by Mark Conway Wirt (also output)
-
Rapture (Cakewalk)
-
Renoise digital audio workstation via scl-to-xrni by Aftab Hussain
-
RNBO (Cycling74) (also custom keyboard mapping)
-
Ruby Grand (Sound Magic)
-
Scala Microtuners for Kontakt and SynthEdit by Robert Strauss
-
ScalaVista by Aaron Andrew Hunt
-
Scale by Albert Gräf
-
Scale Generator by Gianis Potamitis (output)
-
ScaleWorkshop by Sean "Sevish" Archibald (also output)
-
Scarps by Dan Mozell
-
Schismata by John Coutts
-
Semantic Daniélou-53 by Christian Braut, Jacques Dudon and Arnaud Sicard
-
Sfizz sample player by Paul Ferrand et al.
-
Sforzando SFZ free sound sample player (Plogue) (also .kbm files)
-
Sobanth by Benjamin Rosseaux (also MTS dumps)
-
Spire (Reveal Sound)
-
String Studio VS-2 (Applied Acoustics)
-
Sunrizer (BeepStreet)
-
Surge Synthesizer (Vember Audio and Surge Team) (also .kbm files).
The Surge team created a free library with C++ source code to parse .scl and .kbm files
-
Swarmalators T by Dillon Bastan (also .kbm files)
-
SynthMaster and Synthmaster One (KV331 Audio) (also .kbm files)
-
Synth One (Audiokit) (iPad)
-
Sytrus (Image-Line)
-
Tarsos by Joren Six and Olmo Cornelis (also output)
-
Temperament search program by Graham Breed (output)
-
TERA 3 (VirSyn Software Synthesizer)
-
Terpstra Keyboard Webapp by James Fenn
-
The Monochord webapplet by Lajos Mészáros
-
ThumbJam
-
Tonal Plexus Editor by Aaron Andrew Hunt
-
Tuner 6.3 and Tuner 7 by Jacob Breetvelt (12 tones)
-
Tuner 8 by Jacob Breetvelt (12 tones)
-
Tuning Workbench Synth by Surge Synth Team (also .kbm files)
-
Ultra Analog VA-3 (Applied Acoustics)
-
Universal Tuning Editor by Aaron Andrew Hunt
-
VCV Rack Scala Quantizer and
Scalar tuner by Andrew Belt
(only cents and <= 24 tones, also output)
-
Virta (Madrona Labs)
-
Vital (also .kbm files)
-
Voice Tweaker (Xponaut)
-
Voltage Modular (Cherry Audio) (with Microtuning Plus)
-
WhispAir (Full Bucket Music) (also .kbm files)
-
WIVI Standard and Professional (Wallander Instruments)
-
Wren software synthesizer by Jan Punter (also .kbm files)
-
Xentone Xenharmonic Ear Trainer by Aaron Andrew Hunt
-
XronoMorph (Dynamic Tonality) (output)
-
Yarns (Mutable Instruments) via
this app
-
Yoshimi software synthesizer by Will Godfrey, Jeremy Jongepier, Paul Nasca and Cal (also .kbm files)
-
ZynAddSubFX software synthesizer by Paul Nasca (also .kbm files)
-
Z3TA+ Waveshaping synthesizer (Cakewalk) (version 2.1 and higher)
See also List of microtonal software plugins.
© Manuel Op de Coul, 2001-2023
coul@huygens-fokker.org
Scala home page