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-onlybranch 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.
| Slot | Machine | SHAPE (909 / 808 / 606) |
|---|---|---|
| KICK | BD | 0 909, 1 808, 2 606 |
| SNARE | SD | 0 909, 1 808, 2 606 |
| METAL | Hats | 0 / 1 909 closed / open (your samples), 2 / 3 808, 4 / 5 606 |
| PERC | RS/CP | 0 / 1 909 rim / clap; 808: 2 rim, 3 clap, 4 claves, 5 maracas, 6 cowbell |
| TONE | Toms | 0..2 909 low / mid / high; 808: 3..5 low / mid / high tom, 6..8 low / mid / high conga; 606: 9 / 10 low / high |
| CHORD | Cymbal | 0 / 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.hfitted constants, generated byproto/gen_cal.pyproto/float prototypes, matcher and fitter, fitsresearch/909-circuits.mdcircuit notes with sourceshost/render.crender a hit to WAV on a computertools/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.
