Scala sequence file format

This page describes the file format of the score input files to create microtonal MIDI-files with Scala. The emphasis is on flexible description of pitches and easy experimenting with different tunings without editing the file.
To do the conversion, use the EXAMPLE command, or go to the Tools->Transform sequence to MIDI-file dialog.

Statements syntax.
Each statement must be put on a different line in the file. Lines beginning with an exclamation mark are comments to be ignored. Parameters between square brackets are optional.

time command parameters 0 exclude <channel no. (1..16)> 0 frequency <frequency for degree> [<degree>] 0 division <units per quarter note> 0 velocity <default onset key velocity (0..127)> 0 notation <notation system> [<formal octave>] 0 default <filename> 0 load <filename> 0 equal <division> [<formal octave>] 0 outfile <filename> 0 key <degree/pitch/name> 0 transpose <degree/pitch/name> 0 relative 0 addtime <time offset> <time> text <text info> <time> track <track no. (1..16)> <time> tempo <microseconds per quarter note/q.n. per minute> [pm] <time> timesig <num/den> [<MIDI clocks>] [<32nd-notes>] <time> program <program no. (0..127)> <time> parameter <parameter no. (0..127)> [<value>] <time> note <degree/pitch/name> <duration> [<velocity>] <time> chord <filename> <duration> [<degree/pitch/name>] [<offset degree>] [<velocity>] <time> ladder <filename> <duration per note> [<degree/pitch/name>] [<offset degree>] [<velocity>] <time> mnote <channel no. (1..16)> <note no. (0..127)> <duration> [<velocity>]

The zero time parameters mean that this field is ignored, it does not mean that the statement must appear at the beginning, except for "exclude", "frequency" and "division". Such a statement may appear anywhere and more than once and its scope is everything that is below until an eventual new statement of the same kind. The zero may not be omitted and is reserved for future use. The tempo can be changed independent of the start times.

Explanation of the parameters:

Explanation of the statements:

The default file extension for scale files in the input file is '.scl' and for the output file parameter it's '.mid'. The input file needs a full name.
If there is an error in the input file, then the message 'Error in file format' will be given followed by the contents of the line that causes the error. If a wildcard is given in the filename, then the first file that matches it will be used.
The following are all valid note statements:
0   note 4        400           ! Degree number, pitch depends on scale
0   note -8       400           ! Degree number, pitch depends on scale
0   note E\       400   100     ! Note name, pitch depends on notation system and scale
0   note E\.-2    400   100     ! Note name, pitch depends on notation system and scale
0   note (5/4)    400   127     ! Literal pitch
0   note (386.3)  400   127     ! Literal pitch
0   note [5/4]    400   127     ! Approximate pitch, pitch depends on scale

Help text of the EXAMPLE command:

Create a MIDI-file with a piece of music using the current scale as default scale. The MIDI-file makes use of pitch bend messages for tuning or MIDI Tuning Standard single note tuning change messages if /MTS is used. Because pitch bend messages affect all notes on a MIDI channel, this command's algorithm chooses channels on a kind of round-robin basis. All channels will be used if necessary, unless some are explicitly excluded by specifications in the input file. If the amount of channels (16 or less) is not sufficient, which means there are too many simultaneous notes, then no output file will be generated. The algorithm tries to minimise the number of pitch bend messages in the output file. The instrument to be used must be tuned to 12-tone equal temperament and be using the default standard pitch bend range of -2..2 semitones. With /MTS there is no such channel limit or pitch bend range requirement.
The default extension of the input text file is .seq. In this file you can specify notes, ladders and chords where the degrees of the current scale will be chosen as the nearest representation of each of the pitches of the ladder or chord. So for instance to hear what's the best approximation of a just major chord, save a two-note scale with pitches 5/4 and 3/2 and specify this scale in a chord statement in the input file.

© Manuel Op de Coul, 2003.

! Easley Blackwood: Harmonization of a mode in 15-tET.
! Example 29 of "Modes and chord progressions in equal tunings", p. 195.
! Perspectives of New Music vol. 29 no. 2, 1991.
!
0     exclude   10
0     tempo     750_000
0     velocity  96
0     frequency 261.6255653
0     notation  E15
0     outfile   ex15.mid
0     text "Easley Blackwood: Harmonization of a mode in 15-tET"
!
0	track 1
0       program   1
0	note C.1	480
0	note E\.1	480
480	note B\		480
480	note D.1	480
960	note Bb/	480
960	note D\.1	480
1440	note A\		480
1440	note C.1	480
1920	note G		480
1920	note B\		480
2400	note F#\	480
2400	note A		480
2880	note F		480
2880	note A\		480
3360	note E\		480
3360	note G		480
3840	note Eb		480
3840	note G\		480
4320	note D\		480
4320	note F		480
4800	note C		960
4800	note E\		960
!
0	track 2
0       program   1
0	note C		480
0	note G		960
480	note G.-1	480
960	note Bb.-1	480
960	note F		960
1440	note F.-1	480
1920	note G.-1	480
1920	note D		960
2400	note D.-1	480
2880	note F.-1	480
2880	note C		960
3360	note C.-1	480
3840	note Eb.-1	480
3840	note Bb.-1	960
4320	note Bb.-2	480
4800	note C.-1	960
4800	note G.-1	960
Some more sequence files are included with the Scala distribution.

Scala home page