Microtonal uses part number 232 (0xe8)

Tunings and keyboard maps are both handled as strings of comma separated numbers.
All spaces will be removed.

For scales, ratios or floating point numbers can be entered.

Ratios are in the form n1 / n2 to a maximum of normal integer range. If just a
numerator is set it will be regarded as n/1.

Floating point numbers *must* include the decimal point and at least one digit (or a
zero) either side. These will be padded out with leading and trailing zeros in the
form nnnn.nnnnnn

In keyboard maps, non-sounding notes should be marked with an 'x' instead of the key
number.

e.g.

Scale:
0076.049000, 0193.156860, 0310.264710, 5/4, 0503.421570, 0579.470570, 0696.578430,
25/16, 0889.735290, 1006.843140 1082.892140, 2/1

Keyboard Map:
0, 1, 2, 3, x, 5, 6, 7, x, 9, 10, 11

The scale/keymap sizes are generated internally by counting the number of entries in
the strings.

When saving scales, for floating point numbers we now include the text it was
derived from. On re-loading we then use this text to regenerate the number rather
than the stored string representation of the number. This eliminates progressive
loss of accuracy which could otherwise result from repeated load and save
operations.

However, the stored representation is still saved for backward compatibility with
older versions of Yoshimi.

We also now use doubles here in some places instead of floats, as the conversion to
and from string form seems to be more accurate.

When setting scales/keymaps, or importing .scl/.kbm files the following error
numbers may be returned:

 0  empty entry
-1  value too small
-2  value too big
-3  invalid characters
-4  must be real numbers or divisions
-5  no file
-6  empty file
-7  short/corrupted file
-8  missing entry
-9  invalid octave size
-10 invalid map size
-11 invalid note number
-12 out of range


