I spent today mostly working on the Tuning code, in particular implementing .scl export. While doing so, I noticed that .scl import was severely broken, and I implemented the following fixes in
https://source.openmpt.org/browse/openmpt/?op=revision&rev=8536:
- Fix: Tuning: scl: .scl files that contain n frequencies are meant to describe scales with n notes per repeating group. OpenMPT imported them as scales with n+1 notes per repeating group.
- Fix: Tuning: scl: Setting GroupRatio=1 is completely wrong. Scale files only describe a single octave and should be repeated properly.
- Fix: Tuning: scl: Looking at various scale files from the official Scala archive, it is pretty obvious that scale files support non-octave repeating scales. In scale files, the first ratio is an implicit 1/1. As a consequence, the last value is redundant for octave-repeating scales (and stored as 2/1 in almost all cases). The last ratio is meant to be interpreted as the repeating ratio.
Saga Musix pointed me to this ancient 7 years old bug report, which I apparently just fixed, without knowing it even existed.
Additionally, I implemented importing note names from .scl in
https://source.openmpt.org/browse/openmpt/?op=revision&rev=8537.scl export is available as of r8539 in 1.27 test builds (available as usual at
https://builds.openmpt.org/).