It is now possible to fully control scales from the CLI.

For tunings, either 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 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 entered as an 'x' instead of the key number.

CLI tunings and keymaps are entered in CSV format.

e.g.

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

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

The tuning/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. This has some accuracy benefits, but also reassures less experienced users, because the values they enter won't seem to change on re-loading.

The stored value is still saved for backward compatibility with older versions of Yoshimi.

Scale shift provides an offset to the scale start position, and only makes a difference if you have uneven interval sizes.

Normally (for the even tempered scale) the scale starts on 'A', and as the intervals are all identical changing the octave start will make no difference. However, if you have (say) a 5 note pentatonic scale the intervals will be very different and the scale shift will effectively determine the key of the scale.


