Mod

model909

Rising76/100

TR-909 drum kit for the Elektron Model:Cycles / Model:Samples (Cycles OS): circuit-modelled voices, a Modded-Cycles tweak

model909 is a mod for the Elektron Model:Cycles and Elektron Model:Samples, by @DMDaudio. Open source under MIT, latest release v1.0 (October 2026), 1 star on GitHub.

forElektron Model:Cycles,Elektron Model:Samples·by@DMDaudio

Unclaimed. Is this yours? Sign in with GitHub as @DMDaudio to claim it.

Downloads
0
Star
1
Forks
0
Commits
10
Last commit
Get the source

No release files yet. Build from source.

MIT· DMDaudio/model909·downloads come from the creator’s GitHub releases

10
Commits
1
Releases
10 commits and 1 release in the last year
Activity · last 12 months

model909

Experimental. This branch adds the TR-808 and TR-606 voices and moves some knobs. It is checked in emulation and on one Model:Samples, but less played than the first release. The 909-only version stays available as the stable option: the 909-only branch and the v1.0 release.

The web flasher and the Modded-Cycles fork this version builds with are not public yet. Until they are, build the 909-only version from source (its README has the steps).

TR-909 drum kit for the Elektron Model:Cycles (OS 1.13), and for a Model:Samples running the Cycles OS, with the 808's and 606's voices on SHAPE. It replaces the six stock machines.

SlotMachineSHAPE (909 / 808 / 606)
KICKBD0 909, 1 808, 2 606
SNARESD0 909, 1 808, 2 606
METALHats0 / 1 909 closed / open (your samples), 2 / 3 808, 4 / 5 606
PERCRS/CP0 / 1 909 rim / clap; 808: 2 rim, 3 clap, 4 claves, 5 maracas, 6 cowbell
TONEToms0..2 909 low / mid / high; 808: 3..5 low / mid / high tom, 6..8 low / mid / high conga; 606: 9 / 10 low / high
CHORDCymbal0 / 1 909 crash / ride (your samples), 2 808, 3 606

On the 909 kick and snare, FINE now does what SHAPE did in v1.0 (the kick's diode drive, the snare's noise brightness).

BD, SD, toms, rim and clap are integer models of the 909's circuits (triangle VCOs, diode shapers, transistor VCAs, bridged-T resonators, the clap's burst VCA), with constants fitted to recordings of a real 909; the 808 and 606 voices, hats and cymbals included, are modelled the same way. The knobs follow the 909's pots. PUNCH is the accent. Settings: SOUNDS.md.

The 909's hats and cymbals are ROM samples. Here you supply four WAVs when you build; none are included.

Unofficial firmware: flash at your own risk.

Install

Use the web flasher: https://dmdaudio.github.io/Modded-Cycles/flasher/ (DMDaudio's fork of Modded-Cycles). Tick model909 (Model-TG and 6-channel USB are ticked with it), drop your official Model:Cycles OS 1.13 .syx, choose the four WAVs, flash over USB. It works for a Model:Samples too (pick it in step 2 and add its official OS file). Or download the .syx and drop it on Elektron Transfer.

Your WAVs are converted in the browser (mono, 32 kHz, 4-bit ADPCM, about 5.6 s in all) and go into the firmware you build: share that .syx only if the samples' licence allows it.

It does not combine with MACRO, ACID or the Syntakt engines.

Build from the command line

Needs Python 3, ffmpeg and the ColdFire toolchain (m68k-elf-gcc) to rebuild the tweak.

git clone https://github.com/DMDaudio/Modded-Cycles
cd Modded-Cycles
python3 tools/t9_bank.py --ch CH.wav --oh OH.wav --crash Crash.wav --ride Ride.wav -o t9_bank.bin
python3 tools/build.py -i model-cycles_OS1.13.syx -t 6ch-usbup,model-tg-st,t9-tg --fill t9-samples=t9_bank.bin \
    -o model909.syx

For a Model:Samples, pack it with tools/mods_for_samples.py (see its help).

To rebuild the tweak from this repo's src/:

MODEL909=../model909 python3 tools/gen_t9.py --cycles model-cycles_OS1.13.syx
MODEL909=../model909 python3 tools/emu/test_t9.py --cycles model-cycles_OS1.13.syx

tools/mksamples.py here makes the same bank (out/t9_bank.bin); host/render plays it with T9_BANK_FILE.

To go back, install the official OS. Clear patterns that use a machine that won't exist after the flash, or the MACHINES menu can freeze.

Notes

  • The voices go through Model-TG's track stage (Attack, Filter, Resonance, resampling).
  • The 6-channel USB tracks follow LEVEL, VOL and mute.
  • Fixes Model-TG #3: Attack/Filter/Resonance p-locks survive a save.
  • Model-TG's Sampler shares some knobs with these machines, so its End knob is limited to 0..1.

Layout

  • src/ firmware voices in integer C (t9_analog.inc: BD, SD, toms, rim, clap; t9.c: sample players)
  • src/t9_cal.h fitted constants, generated by proto/gen_cal.py
  • proto/ float prototypes, matcher and fitter, fits
  • research/909-circuits.md circuit notes with sources
  • host/render.c render a hit to WAV on a computer
  • tools/ sample bank encoder, table generator, Model:Samples packer

To refit to your own 909 recordings, put them in refs/ (names as in proto/fits/), run proto/fit_voice.py, then proto/gen_cal.py.

Licence

MIT. Written from scratch, no code from other 909 emulations. Circuit facts come from the Roland TR-909 Service Notes, network-909.de, Robin Whittle, Colin Fraser, Sound On Sound, and the measurements published in mw909 and schwung-9W9 (facts only, no code); full list in research/909-circuits.md. Built on Modded-Cycles and Model-TG (both MIT).

TR-909 is a trademark of Roland. Model:Cycles and Model:Samples are trademarks of Elektron. Not affiliated with either.