NewRisingSun wrote:Great work. I never thought I would see the day that I would seriously consider putting my old LA modules away, but now I'm hold […]
Show full quote
Great work. I never thought I would see the day that I would seriously consider putting my old LA modules away, but now I'm holding my breath 😀
KingGuppy wrote:I'm also working on some documentation of how the MT-32 works internally and how accurately we model each part.
This should prove very interesting indeed. In particular, I'm going to be interested in these aspects of the MT-32's internal workings:
- MUNT sounds very clean, whereas the real MT-32 has what sounds like quantization noise, especially with instruments like "Soundtrack" at low volumes. I once thought it came from the DAC, but heard it in digital captures as well. How much do rounding errors in the LA32 chip contribute to this?
- The later models (CM-500, CM-32LN) produce a very annoying vibrato with some instruments. I have always wondered if the problem lies with the control ROM or the LA32 chip.
- Early modules seem to have a lot of trouble assigning voices properly, dropping more notes than later models. This is particularly odd since the author of the RealWorld modification claims in the mod description that later models have a "slower" CPU. MUNT doesn't seem to drop anything unless it's obvious that the song uses too many notes.
- Does the knowledge of the MT-32's inner workings reveal any design-specific reason why the pan directions are reversed from normal MIDI modules? I have always thought this to be a rather weird design decision. That even centered parts always sound slightly panned to the right has confounded me (and others) as well.
If your internal documentation project could touch on these questions, it would be much appreciated. Again, thank-you very much for your most impressive work.
Thanks for your interest and kind words 😀
Cool questions, that's absolutely the sort of stuff I want to cover in the documentation. In the mean time I'll cover your specific points:
- Regarding LA32 noise, we don't fully have a handle on that yet. We're doing a lot of things a lot closer to "mathematically perfect" than the LA32 right now, but I'm doing my best to work out exactly where rounding errors, LUT use and other sources of inaccuracy affect the real thing.
- Unlike the amplitude and filter envelopes, where the LA32 is configured to smoothly ramp up/down from one value to the next, dynamic pitch changes (including the LFO) are pretty much entirely under the control of the microcontroller. Therefore changes in the MCU or the control ROM can have an effect on the vibrato. We have some notes from Mok about differences, but I haven't yet made the alternative versions selectable.
- Partial management is similar: Many tweaks were made between control ROM versions, but I'm yet to make these selectable. I think right now we're using a more ideal approach than any of the control ROMs implemented, but I need to revisit this.
- Regarding pan, the LA32 internally only supports 8 panpot positions. The controller does the mapping between the sysex-addressable panpot parameter (which has the range 0-14) to a value in the range 0-7. Since 8 is an even number, and is directly proportional to the amplitude, the closest you can get to the centre is around 43% on one channel and 57% on the other. Note that there is justification for the 0-14 parameter range - it's not just there to mislead people - but I'll explain that another time.
- I think the pan directions are reversed only because the MT-32 predates General MIDI, so there was no real standard for this. I doubt that the MT-32 is alone in using what later became the "wrong" direction.