C6 is a beaut little piece of software. I believe (could be wrong) it is the only software that allows turbo speed protocol transmission with a TM-1.
It can also send the name of audio files to the MD (first 3 and last letter i think…) , something i’ve found is not guaranteed other ways. If anyone knows the sysex for adding name data to ROMs during import let me know!
But yeah famously C6 is abandonware, and SysExLibrarian seems to be the most stable way of transferring SDS files at standard speed these days (64bit machines)
I’ve spent hours of my life pitching up samples to try and get a sample set to fit within the mk1s 2Mb limit.
I’ve created a py script to ease this process.
LLMs are frowned upon in these parts, but as a non coder just trying to get from A to B i’ve found them pretty useful to create applications it would take me months to learn how to do otherwise.
Coupled with a +drive i’ve managed to upload a few ROM banks in a few hours, whereas before it could take days of trial and error getting the pitched file sizes right. Even then not making maximal opportunity of the MDs memory quota.
I’ve tested and managed to get some quite sizeable folders of audio tweaked in one command (between 2-10 seconds processing time) to fit snuggly in the mk1s ROM slots, imo opinion pitching these back down can add interesting character to the right kind of sounds. (breakbeats for sure!)
I haven’t got a github, So i’m not doing this the “proper” way but here’s the breakdown of how it works. If any fancies testing on a mk2 i’d love to know if the final size calculation is correct. And maybe find some other bugs.
How it works
“”"
Machinedrum ROM Import Optimizer - version 0.5a wftlrd
Overview:
This script helps you fit multiple audio files into the limited UW memory of the Elektron Machinedrum.
It optionally resamples files to a lower sample rate (lo-fi or lo-lo-fi) and then, if required, applies a pitch shift (0…+24 semitones) to each file. The goal is to ensure the total size remains under the Machinedrum’smemory limit (2.0 MB for MK1 or 2.5 MB for MK2). The actual available memory is a little under the stated values due to file overheads, this script has been carefully calibrated to maximise the available storage.
It exports the final samples as .syx (SysEx) files for straightforward transfer into the Machinedrum.
Instructions:
-
Create a folder with your desired audio files. The script supports:
‘.wav’, ‘.aif’, ‘.aiff’, ‘.mp3’, ‘.flac’, and ‘.ogg’. -
Run the script, pointing to that folder:
python /path/to/md_rom_import_optimizer.py /path/to/folderBy default, the script assumes a Machinedrum MK2 (2.5 MB) max 45 slots.
-
If you want to target the MK1 (2.0 MB limit) max 32 slots, add the --mk1 flag:
python md_rom_import_optimizer.py /path/to/folder --mk1 -
Lo-Fi and Lo-Lo-Fi Resampling:
- Use --lofi to resample audio to ~22 kHz.
- Use --lolofi (if supported) to resample further (e.g., 8 kHz).
Example:
python md_rom_import_optimizer.py /path/to/folder --mk1 --lolofi
-
What the script does:
- Analyzes audio file sizes and lengths.
- Optionally resamples them to lower sample rates.
- Uses an algorithm to pitch-shift each file up to +24 semitones so all fit under the chosen memory limit.
(+24 semitones max enables retune to original pitch via ROM machine PTCH -64. - Saves the pitched files as .syx in a new subfolder within your audio folder.
-
Loading .syx into the Machinedrum:
- Transfer these .syx files via Elektron C6, SysEx Librarian, etc.
- In Machinedrum Sample Manager , select “RECV” and import into UW slots (starting at slot 01).
- Slots 1-24 Exponential STRT, Slots 25-32/45 Linear STRT
- Because MD doesn’t receive filenames rename imported samples manually.
Notes:
- The script prints a summary at the end, showing pitch shifts, final memory usage, and output folder.
- If you’re still over the limit with all files at +24 semitone repitch you’ll be notified, remove larger files or use lo-fi to reduce size further.
- WAV loop points are preserved, automatically rescaled for pitch shift.
Examples:
-
Default MK2 limit (2.5 MB):
python md_rom_import_optimizer.py /path/to/folder -
MK1 limit (2.0 MB):
python md_rom_import_optimizer.py /path/to/folder --mk1 -
MK2 with lo-fi resampling:
python md_rom_import_optimizer.py /path/to/folder --lofi
“”"
If you want to share this on Github and get more heads to improve it (think there’s a bug where it adds embedded loop data to audio without loop data, need to test this more, but actually this can be quite fun and useful, can always tweak the HOLD/DEC so it only plays once if needed).
DM if you’re comfortable with Python and could make use of this, happy to share the script.