How the Yamaha FM synth cassette interface works
ajxs.me
ajxs.me
I've owned a Roland MC-202 Microcomposer for many years. It's an early '80s analogue monosynth with a two track sequencer that's a LOT of fun, but is infamously awkward to program. It allows you to dump sequences in an audio-based format to tape and load them back.
Rather than endure the slog of programming sequences directly on the machine, I've often dreamed of a workflow where you could program sequences in a UI, and then encode that information to generate an audio file that you could then load into the MC-202.
For example, it'd be relatively straightforward to create a web-based UI using HTML5 audio to create a simple sequence builder that you could then dump to some text/cell format.
The challenging part would be using this information to encode the final audio file. I've done a little research, and I read the MC-202 uses an encoding format that's similar to, but not the same as, the Kansas City Standard. One day I'll dive into this (hopefully it won't be too complex for me!)
Here's how hard it is to program, from what I remember:
- You had to enter your pitches.
- Then you switch into a different mode, and enter the durations of the notes.
- Then you switch into a still third mode, and enter whether you want the note on or off.
All this on a 5 character 7-segment LCD display.
Anything beyond simple bass lines was too difficult for me, but this machine was really good at those.
One reason why I'd like a more expressive editor is to really play with stuff like this. For example could have two patterns, otherwise identical, but one might have a final note length of one less then the other. Then they would phase in and out with each other over a period of time, like some sort of acid house Steve Reich :D
Interestingly, since I originally posted I came across a really interesting mod project for the MC-202 that's currently work in progress. Sounds like an amazing upgrade, will definitely be checking this out!
Similarly, the korg volca FM firmware update procedure happens by playing an audio file into one of the sync input jacks. This is odd considering it has a MIDI input port, which could load firmware via digital SYSEX commands, a fairly common method.
Another unconventional method I've seen recently is in the the Korg Gadget app. It implements song sharing via QR codes. The QR codes don't point to an URL, instead they directly encode the song. Several of them are required, so it's not super convenient, but it works ok. I'm not 100% sure why they have this option, but I think it might be the only way to do it in one of its platforms, the nintendo switch.
The Volca FM uses Quadrature Amplitude Modulation[0] to encode/decode digital data. Korg released the source code to an encoder on Github[1] for people to use with the Volca Sample. A few people have used this to write a decoder for the firmware, most notably Pajen who used it to write the custom firmware for the Volca series.
> This is odd considering it has a MIDI input port, which could load firmware via digital SYSEX commands, a fairly common method.
The Volca series has lots of really odd design quirks, and overall I'm pretty critical of a lot of them. In this case I think they made the right choice. SysEx has a very low transfer speed. Transmitting even a few kb takes a noticeable period of time, and the Volca firmware blobs are 256kb in size. The Cypress FM4 SoC they used doesn't have an integral USB controller either, so I guess they had to get creative!
0: https://en.wikipedia.org/wiki/Quadrature_amplitude_modulatio...
I haven't actually tried to use it (I expect you can just download the sysex data from somewhere and send it over MIDI) but the Yamaha approach seems similar to cassette storage interfaces of old microcomputers from the 1980s (or earlier.)
Note a plugin like Dexed will give you 1980s-style FM (though DX7 6-operator/sine rather than TX81z 4-operator/various waveforms) for free, but the TX81z is a nice hardware synth that is also 8-voice multitimbral (!)
Somehow I am surprised that there are less videos on youtube. I would have thought nearly everyone tried putting a data cassette into a tape deck once (or is this what aging feels like?)
I figured it was easier than creating my own cable for the DIN cassette interface on the DX100, or TX81Z units that I own!
Why _gasp_? I still listen to cassettes...