This script converts musical tunings in Manuel Op de Coul's Scala file format into system exclusive messages, using either the 1-byte or the 2-byte encoding of octave-based 12 tone scales, as described in the MTS a.k.a. MIDI Tuning Standard. The output can be written either to stdout in human-readable form, as a binary sysex (.syx) file which is ready to be used with your sysex librarian, or as a type 1 standard MIDI file (SMF) which can be loaded by your MIDI sequencer or DAW program. Please note that your MIDI instrument must support the MTS in order to use the sysex tuning messages; most hardware synthesizers don't, but some software instruments such as FluidSynth do. If your instrument doesn't support MTS then it will most likely just ignore these messages.
A few examples are included in this directory, please see the scl subdirectory for many more. The Scala tuning (.scl) files included here can be found on the Scala website. We have only included the octave (12 tone) based scales since these are the only scales that the sclsyx program works with. The latest version of the complete archive can be downloaded freely at http://www.huygens-fokker.org/docs/scales.zip.
The sclsyx script is free to use for whatever purpose, please check the
sclsyx.pure file for copyright and copying conditions. The script is written
in the author's Pure programming language, so you need to have the Pure
interpreter (0.58 or later) installed to run it; the MIDI file output also
requires the pure-midi module. You can find these at the Pure website,
http://purelang.bitbucket.org. The script can be run "as is", or you can
compile it to a native executable by running
make. Some other convenient
make targets are (these require that you run
make syxtranslates the .scl files in the source directory to sysex (.syx) files. Likewise,
make midicreates the corresponding MIDI (.mid) files.
make allsyxbuilds the sysex files for all tunings in the scl subdirectory.
make allmidicreates the corresponding MIDI files.
make cleanremoves all created files, including the sclsyx executable.
You can also install the sclsyx executable on your PATH so that it can easily be invoked from anywhere. The program is invoked as follows:
sclsyx [options] scala-file(.scl) [sysex-file(.syx)]
The options are:
--help: print a short help text
--realtime: realtime sysex (default is non-realtime)
--2byte: 2-byte encoding (default is 1-byte)
--midi: MIDI file output (default is sysex file)
--basetone: reference tone of the scale (0..11, default is 0)
The default output filename is the name of the scale file with new extension
.syx indicating a binary sysex file, or
.mid indicating a standard MIDI
file if the
-m option is used. If the
-p option is specified, output goes
to stdout in human-readable text format instead.
The output is always an MTS scale/octave tuning in 1 or 2 byte format, please check the MTS for details. The tuning is shifted so that the given base tone is fixed at an offset of 0 cent. The 1-byte tunings are whole cent offsets in the range -64..+63. The 2-byte encoding offers an extended range of -100..+100 cents with 14 bit resolution.
2014-02-18 Albert Graef firstname.lastname@example.org