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?)
Thanks for that :-) I think it's very cool that the human hearing range overlaps with the older data rates that were possible in the beginning of the electronic era.
When I was writing the article, I used recordings some very helpful people have made of the original DX series patches. You can find some for the DX9 here: https://yamahadx9.com/downloads.html
I figured it was easier than creating my own cable for the DIN cassette interface on the DX100, or TX81Z units that I own!
Interesting article with some very useful information. This reminds me of a perennial, and mostly untouched back-burner project of mine :)
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!)
I actually found this a long time ago, totally forgot about it and found it again this week. I've been doing a lot of MC-202 related searching I guess. I tried the demo and it works well! I do like the idea of a more matrix-style editing interface. Nevertheless, I will probably shell out for this.
Author here: Thanks for your kind words! I know someone has helpfully linked an application with this functionality, however in case you were still interested in building an app yourself, I say go for it! The PCM format for encoding raw audio is actually relatively simple, and if the mechanism the MC-202 uses to 'sample' the incoming audio is anything like the method Yamaha used then it's very resilient, and doesn't require a very precise 'wave' at all. Maybe you can find a similar encoding to what the MC-202 uses in this list: https://en.wikipedia.org/wiki/List_of_cassette_tape_data_sto...
This is pretty accurate :D The third mode is the gate mode, you can choose a note to have a gate value of 0 to turn the note off, up to any value matching the length of the note.
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!
Data transmission over audio is still found in some more modern gear.
The newer line of Teenage Engineering's Pocket operator synths/samplers, released in the late 2010s, also uses an audio-based format for import and export of its presets and patterns. You can find various presets on youtube. I don't think anybody has reverse engineered it, though.
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.
> Similarly, the korg volca FM firmware update procedure happens by playing an audio file into one of the sync input jacks.
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!
Author here: Thank you so much for posting the article, I really appreciate it! The article actually began as a technical deep-dive into the internals of the Yamaha TX81Z. It seems as though most of the technology in the TX81Z is pretty well understood at this point. However I'd never seen anyone ever talk about how the cassette interfaces on the Yamaha synths actually worked. Figuring this out turned out to be way more fun than doing a deep-dive into the whole synth, and I got to learn a lot in the process. I know some people would definitely have already known how this worked. In my case, the synth is actually older than I am! I unfortunately missed out on the very interesting era of computing where this kind of technology was more common.
I had one of these as a kid and a RadioShack tape deck to backup my TX81z, but more importantly my QX7 (and my Vic20). I had a little journal where I wrote where things were on the tape. I think that time was so much easier for learning computers, because it was all still understandable and complexity built on top of it. For my son, I tried using Minecraft as an entry point, but I think seeing so much fully polished stuff made him frustrated and what little he was learning. Midi connecting all my synths/modules really prepared by for understanding basic Networking as well. I was the only kid I knew who was networking synths, backing up to tape, writing (very basic) videogames, so I had no expectations nor feelings of inadequacy.
I bought a vintage Yamaha TX81z[1] a while back (you can still find them for ok prices on ebay) to play with some classic FM synthesis and sounds (note the tiny LCD front panel interface is painful to use, but you can use an external patch editor/librarian); I believe it came with a cassette of the original presets (and possibly other data like a demo song or something.)
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 (!)
20 comments
[ 3.7 ms ] story [ 45.7 ms ] threadWhy _gasp_? I still listen to cassettes...
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!
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!)
https://defectiverecords.com/portfolio/mc-202-hack/
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!
https://tubbutec.de/mc-2oh2/
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...
1: https://korginc.github.io/volcasample/documentation.html
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 (!)
[1] https://www.synthmania.com/tx81z.htm
[1] https://sonicbits.com/exakt-lite.html