This is a simple dual DCO that I developed this afternoon after being fedup with these so called developer libraries that allow you to build a DCO but within their constraints and no way to change things. I kept it simple, MIDI control and PWM outputs. It listens to notes on channel 1 and controllers, pitchbend and aftertouch (just realized I never Implemented the aftertouch) on channel 9.
Ive spent the morning refining this a bit, the LFO bug which is present in the video as noise has been fixed and I’ve added portamento, hard and soft sync, aftertouch and an ADSR to sweep DCO2 for the sync.
Expanded the functions further, it now has two LFOs for FM and PWM, plus a cross mod function and the second DCO has a saw added.
-
DCO1 — 5-voice multisaw + pulse + sub + all modulation
-
DCO2 — saw + pulse + sub, ±24 semitones, ±100 cents detune
-
Hard/soft oscillator sync
-
ADSR sweep envelope → DCO2 pitch + DCO1/DCO2 PWM
-
LFO1 → FM vibrato with aftertouch depth
-
LFO2 → PWM animation independently per DCO
-
X-MOD (DCO2 → DCO1 frequency)
-
Portamento
-
Pitchbend with configurable range
-
Gate, velocity, keytrack and aftertouch CV outputs
-
Full MIDI voice/control channel architecture
I finally got around to building a real one and testing it, useful as I was able to debug the PWM voltage outputs and fix them.
I must say I’m watching this with great interest.
I’m curious what the analog section will look like, as it seems to be taking a very different approach than my somewhat hypothetical dco hybrid poly ideas. I was starting to use PWM to output CV for VCF Cutoff & Res and VCA.
edit: Noticed you switched from PWM audio to I2S? PWM too noisy? or did you just want better bit depth?
It was quite noisy and the PWM filters dulled the sound too much so I thought a DAC would be better.
I’ve also swapped DCO1 sub to a triangle and added delayed LFO that can be controlled in a polyphonic setup.
I haven’t decided yet, I will probably go with an Arduino R4 mini connected to 3x 8 channel DACs, these will generate the CVs for the analogue filters and envelopes. Plus about 16 channels of shift registers to give me switching. These will sit on a board with 6 of these DCOs, 6 analogue filters/VCAs, 12 envelope generators, an LFO and a noise source. This will feed an digital effects processor like the FV-1. I will build 2 for 12 note polyphony and dual and split setups.
