I observed the editor to gain some insight on the MIDI implementation.
For example the "filter cutoff" parameter appears non-linear in the editor, going from 100 Hz to 8000 Hz in an exponential way. It is stored as a normalized value [0..1] in the preset file, transmitted via MIDI as [0..16383].
There are at least 4 non-linear parameters: filterVal, osc1ScanFreq, osc2ScanFreq, osc2FilterFreq. The editor disagrees with Moog's PDF on the range of the scan frequency parameters:
What's the relationship of the raw values to the displayed Hz?
filterVal:
osc1ScanFreq and osc2ScanFreq:
osc2FilterFreq:
These curves are close enough but imperfect.
Maybe there's a much simpler way to convert from MIDI values to Hz?