Scala scale file format
This page is intended for developers of music software who wish to
support reading or writing of
Scala scale files.
This file format for musical tunings is becoming a standard for exchange
of scales, owing to the size of the scale archive of
over 3700 scales and the popularity of the Scala program. With the
file's easy structure it's also useable for including scales in e-mail or
discussion group postings.
The format
The rules are:
- 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,
preferably not exceeding 80 characters, but longer 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". The highest allowed numerator or denominator is
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
An advise for writing a scale file: 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.
Developers of MIDI software should be aware that there is another Scala file
type for mapping MIDI 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. The description is in the
Scala help file.
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 format:
© Manuel Op de Coul, 2001-2009
coul@huygens-fokker.org
Scala home page