New Tool: Web-based OctaMED-to-Renoise converter

Hello everyone! This is my first post here and I don’t know if this is the right venue, but here goes:

My brother Al and I have created a web-based OctaMED-to-Renoise song converter, and hosted it online here: https://www.snappymaria.com/mmd-convert/

Does anyone out there still have old OctaMED songs in need of upgrading? (If not, you can stop reading this now…)

We did this in some free time we had over the break, mostly so that Al could port some of his old OctaMED music projects to Renoise. There’s no real documentation of it (other than this thread announcing it), it’s just a blank web page inviting you to drop a .med file on it and maybe get a Renoise .xrns file in return. The conversion takes place in the desktop browser window, so there’s no actual uploading of the music anywhere, it all happens locally on your own machine, usually quite quickly.

This doesn’t work with all the old tracker formats, just OctaMED’s uncompressed save files (MMD0, MMD1, and MMD3, and if you’re lucky MMD2 might just barely work). If you want some files to test it with, I have a few online. Al and I wrote a game called MegaBall for the Commodore Amiga way back in the 1990’s, and Al used OctaMED for all the game’s music, which is now publicly available here: https://bitbucket.org/emackey/megaball/src/master/MB_Music/

Give MBmus24.med a try, for example. Download the .med file, then visit the converter page, and drag-and-drop the .med file onto the banner requesting it, and it should give you its best effort to produce a similar-sounding .xrns Renoise file. It’s not perfect and there are no guarantees or warranties that come with this thing, it’s just a free-time side project.

The basic pattern of notes-in-tracks often survives the conversion best. The commands are trickier, as OctaMED has a very different set of commands than Renoise, but Al and I put together a translation table for ones that are the most similar. The converter will complain about commands that it doesn’t know how to translate, but will finish the conversion anyway. Commands for pitch bending and volume slides may work differently for example, so a song might need manual cleanup after the conversion if it does this kind of thing.

OctaMED also has 8-bit software “Synth” and “Hybrid” modes where synth instructions are applied to waveforms or samples. This stuff doesn’t convert perfectly, but basic synth waveforms are salvaged, and synth/hybrid volume commands are converted to similar Renoise instrument “modulation” volume envelopes. The MBmus24.med song has a few synth and hybrid instruments, which you can find in the converted result by looking through the Renoise sampler’s “modulation” tab for each converted instrument.

Anyway there’s our fun holiday project, I hope you like it! Let me know in the replies here if anyone actually starts using this, and how well that goes. Happy Renoising!

6 Likes

Why is there an AI involved? How many songs did you use to train it, and who voted the quality of the result? And wouldn’t a proper feature wise conversion much better? Also I think you already can convert MEDs properly using MOD tracker or various converters…

There’s no AI/ML involved. That’s a lowercase “L” in Al, short for Alan, he’s my brother (a human!)

2 Likes

Ah lol, sorry…

Used Octamed with MIDI, Roland JV1080 ++. Dreamed So Away.

1 Like

Wow, thank you so much!
I finally was able to save all OSS songs from my old Amiga - I tried it years ago with MOD files and stuff, but the limitations were too steep.

Your tool works flawless - how do you do this?

1 Like

Awesome, thanks! It’s far from “flawless,” but there is a fairly sophisticated conversion engine under the hood there, written in TypeScript. Internally, the conversion happens in three stages: First it has to pick apart the binary .med file. My brother and I found some old documentation of this format, and I still had an old license for v1.0 of the PC version of OctaMed that (just barely) works under Windows 11, so I could try saving out different MED files with particular settings I was looking for in the undocumented parts of the file. Once the file is ingested, the second stage is there’s a large conversion table to translate OctaMED commands to Renoise commands. My brother’s expert knowledge of antiquated MED commands and their meanings came in handy for this part. The final stage is generating the .xrns file, and for this we use your web browser’s own built-in XML document system to build the main structure, called song.xml. We also pull in a copy of libflac to write out the waveform data as instruments that Renoise can load. The song.xml and the Flac files get rolled together into a ZIP container and sent back to the user as a download, to save as the new .xrns file.

That’s the basic structure of it. I’ve thought about open-sourcing it, but… would anyone want to look at modern-day TypeScript code that teases apart binary MED files from the 1990s? If there’s real interest, I might consider it. But for now just enjoy the free hosted version. I’m glad you found it to work with your music!

2 Likes