DX7-Supercollider
Aziz Ege Gonul’s accurate Yamaha DX-7 clone. Extended to run on Organelle M/S.
Demo video
Note from Dessertplanet (Dune)
Yes there are already awesome DX7’s out there for Organelle but when I heard that there was this incredibly deep one written in supercollider and I heard that Organelle in theory supported Supercollider I had to have a go at making it work.
The hook here is that this is a DX7 with ALL interesting presets, that you don’t need to program yourself. Just journey into the 16,384 built in presets, save the ones you like, and play
For the geeks out there, this patch DOES install a different version of SC than the one in the box in OS 4.2 (it adds a second installation, not replacing the one that is there). That is because the one built in doesn’t include Supernova for multithreading but more importantly it is a non-headless build which introduces all kinds of weirdness and performance woes. Ultimately I could support more than 4x as many voices polyphony wise by installing a new version. Those who have icarus installed should note that after installing this, Icarus will run smoother, no more need for the weird VNC dance.
Requirements
- Organelle M or S
- Organelle OS 4.2
Features
- 16-voice DX7 FM synth emulation with 16,384 real DX7 presets from across the internet
- Presets are very wide ranging in sound and can have large timbral variation based on note velocity
- Monophonic mode
- Organelle pedal input support for sustain pedal
- MIDI input for notes (including velocity), sustain pedal, pitchbend with configurable range, and mod depth
- MIDI configuration is as simple as plugging in your usb of 3.5mm TRS midi device and relaunching the patch
- Save presets that you like to your own curated list, persisted for next time you open the patch
- Easy to use interface
Intro from Aziz’s README
This is a super-exact clone of DX7 in SC environment. This project began with my (Aziz’s) internship at the STEIM during the last year; I was able to get my hands on an original DX7 synth and eventually found out that this instrument has this mystic / unusual sound. So I started fiddling with it and did some experiments with Supercollider. After a while, it became an obsession to play with it and started to copy parts of its synth mechanism just to flex my DSP muscles. Sooner, I found myself in this vast project to clone the entire thing. After 2-3 months of implementing process and lots of sleepless nights. I was able to clone the entire DX7 engine with very high accurate results. Other than the DX7’s vintage sound hiss, it is hard to distinguish between the clone and the original one on the same presets. For my use, I collected some 16384 (2^14) DX7 Sysex bank presets from the internet and converted it to some integer sequences to read it from Supercollider. I am also combining this clone with this 16384 preset package. Have fun!
Installation
Upload the .zop file to your patches directory under the folder you would like to install the patch. Then launch the installer from the organelle UI itself using the screen and encoder. The installer will only work on Organelle M or Organelle S, since multi-core processing is required for this patch. As of version 1.01 an internet connection is not required for installation.
This installation will install the following prerequisites if they are not already present (these are included in the .zop file):
- Jackd2 (and dependencies) for audio interface purposes
- Supercollider 3.11.2 (headless installation including Supernova)
- FM7 Ugen for Supercollider, pulled from the SC3-plugins
Interface
The patch is designed so that instead of programming the patches directly (DX7 was notiriously difficult to program), you navigate through a vast set of presets and choose to save the ones you like for easy access. Controls are enumerated below.
- Long-press encoder to return to patch menu
- Aux button acts as shift key, changing knob, encoder, and encoder button behaviors
- Three ways to navigate through the library of 16384 presets
- Encoder cycles through presets one at a time
- Aux (shift) + encoder cycles through presets one bank at a time (32 presets at a time)
- Knob 1 coarsely scans through all of the preset. preset index 0 at far left, 16383 at far right
- Pressing encoder button loads the currently displayed preset (Asterisk at the left indicates that currently shown preset is loaded)
- Aux + Encoder button loads a random preset (this can be done many times in short succession)
- Knobs adjust the currently shown parameters
- Velocity parameter only affects organelle accordion key input. (all other parameters affect sounds regardless of internal or external control)
- Changing the polyphony parameter silences all notes, if you ever encounter a preset that drones forever that you need to silence
- Aux button shows secondary parameters (aux + knob 1 = pitchbend)
- Aux + Longpress of the encode launches the save menu
- In save menu selecting a saved preset with the encode button loads it
- Long pressing the encoder button in the save menu allows you to delete saved presets from this list (they remain in the main list of presets)
Notes to the synthesist
The names of the patches are often (and sometimes hilariously) incorrect. They are a memory aid for you on your travels to help locate yourself. Aziz mentioned in docs that he had to recompile the preset text file after compiling the pdf doc of preset names that was used to produce the names displayed in this patch.
A few notes about the huge preset list to keep in mind (these only apply to a small minority of what is in there):
- Some of the presets sound identical
- Some of the presets that are named the same sound nothing alike
- Some of the presets make no sound at all
- Some of the presets have no name at all
- Some of the presets have no velocity sensitivity and therefore sound the same for all velocities
A few really cool things I have discovered in my own navigation of these presets, very interested in what others find:
- There are a bunch of different LFO shapes - at least sine, triangle, random step, square, saw…
- While there are no built-in effects, some presets REALLY sound like they have reverb or delay, I am not 100% sure how that works, perhaps with envelopes and FM feedback??
- Some presets appear to have key-tracking/splitting where different notes at the same velocity have large differences in timbre
- Presets have individually configured sensitivities to lfo modulation and velocities so each one responds to these differently in terms of both amplitude and pitch
- Some of the presets are VERY chaotic by design
- This claims to be a very accurate emulation- what is more important than accuracy for me is that it scratches all the right nostalgia itches that you would expect for DX7 sounds
- Don’t sleep on the bass sounds in here. Try monophonic mode in a low octave. You won’t regret it.
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details
Code link
Acknowledgments
- Aziz Ege Gonul for the amazing synth model
- TheTechnoBear for getting things started for Supercollider on Organelle
- Critter & Guitari for the awesome open-source platform
- Hat tip to John Chowning
- STEIM for letting Aziz use their DX7 and espresso machine.
- and all the anonymous preset makers for the Yamaha DX7 (unsung heroes/angels).