Files
Scanning the repository...
Last update 5 years 1 month
by Charles Julian Knight
README.mdSynth
These are my custom modules for a from-scratch Eurorack analog synthesizer.
Format
- 3.5" mono patch cables
- 3U, 1HP
- 10 or 16-pin ribbon power - +/-12V, sometimes 5V digital
- Audio signals are typically a maximum of 10V peak-to-peak (i.e. between -5V and +5V)
- Control voltages can either be unipolar or bipolar. Bipolar control voltages are typically 5V peak-to-peak (i.e. from -2.5V to +2.5V), unipolar voltages between 0V and 8V. The V/Octave scale is used for pitch information
- Trigger, Gate or Clock signals are digital 0V-5V pulses typically used for timing and event signaling
- minimum 100K input impedance
- maximum 1K output impedance
- connecting rail voltages to signal inputs should not fry any components (although it doesn't have to perform correctly)
Pinout :
Design goals
- "Paraphonic" means multiple notes that share a filter stage, "Polyphonic" means a dedicated O->F->A for each note
- Tracking the filter cutoff to the note is super important, otherwise the tone varies with the pitch
- Neutron in paraphonic mode maps the note first note to both oscillators if only one is played. This seems like a bad design choice to me
- In addition to VCF cutoff, LFO can also reset with envelope, which is a very nice feature. Not sure how to make this Polyphonic without 4 LFOs...
- Neutron has "osc sync" button. I don't have a good mental model of what it does, but it seems to link the oscillator frequencies together for creating harmonies
- Choosing how you want to split the oscillators between polyphony, independent control, and sync/harmony is going to be a real control challenge, esp if keeping it modular is desired
- Shared cascading controls with overrides is still a good idea IMO
- Dedicating 1-2 oscillators to a rhythm with very good shared clocking seems important for making songs as opposed to just keyboard sounds. If not playing with others, need either that or a loop. Unfortunately with a loop you can't adjust the parameters later, you've probably reclaimed your oscillators for something else
Neutron sends envelope 1 to VCA and envelope 2 to the filter. You could accomplish a similar thing with the LFO in key sync mode, but you really only get attack
Overview:
- 4-channel polyphonic
- that means dedicated VCO/VCF/VCA streams
- "fully-modular with defaults"
- semi-modular-style sensible default paths connected under the hood
- all defaults overridden with patch cables
- "cascading controls"
- unless overridden, CVs propagate from previous channel, allowing control of all oscillators simultaneously, which is desired when using multiple voices
- specifically targeting support for several modes:
- 4 totally separate, independent synths, each controlled with constant VCO or sequencer
- 1-voice, MIDI-,sequencer-, or constant-controlled synth with 4 oscillators, e.g. harmonizing intervals, mixing shapes/timbres
- 4-voice MIDI-controlled synth
- 2-voice MIDI-controlled synth, with a pair of oscillators for each voice
- sub-combinations of the above, e.g.:
- 1-Voice MIDI-controlled synth with a pair of oscillators, 1 constant-source independent synth, 1 sequencer-controlled independent synth
- 1-Voice MIDI-controlled synth, 2-voice sequencer-controlled synths, with two oscillators for the first voice
- Ideally, one cascade switch between each signal path
- need to find a way to do this while still respecting modularity
- Perhaps defaults are controlled by a module which controls modes?
- LED feedback is critical
- Modules
- LM13700
- matched-pair PNP exponential converter
- CV of 5V -> Gain=1
- CV of <=0V -> Gain=\~0, 6 decades below Gain=1
- allow overdrive to 6V
- ideally this would begin to clip
- mixdown
- mono - full mix -> left and right
- stereo split - A+C->left B+D->right
- Direct output jack?
- mix arbitrary signal with mixdown
- e.g. for accepting signals from other synths
- 0-10V, 1V/octave, A0 to A10
- Square/Triangle core via LM13700
- Waveshapper for triangle -> sine
- PWM control
- triangle wave applied to comparator with CV controlling reference. Triangle wave means CV is linear
- abs(triangle) can be used for 2x square
- adds a lot of parts for little benefit
- blending shapes isn't useful here, since we could use other oscillators for that
- Option to sync with another osc?
- in theory, grounding osc at a regular interval would reset the osc over and over, effectively changing it's frequency
- CV control for shape?
- Room for more shapes
- white noise?
- PDS
- https://en.wikipedia.org/wiki/Phase_distortion_synthesis
- a bit of wild harmonics
- multiplication can be done with log/antilog or https://en.wikipedia.org/wiki/Gilbert_cell
- the hard part will be the "slightly higher frequency" bit
- perhaps instead you have another osc (555?) running at a fixed frequency and clipping the sine
- square PWM control could also adjust this clip frequency
- down ramp wave with just a JFET
- up ramp wave probably needs another JFET and an inverter
- MIDI-CV converter
- digital MIDI input to OSC CV
- DAC resolution:
- for 1 step = 1 cent on a 10V space with 1V/octave:
- 10V / 2^x = (1V/12/100) => log2(10/(1/12/100)) 13.55 bit minimum
- 16-bit DAC would be incredibly accurate, 0.18% resolution
- for 1 step = 1 cent on a 10V space with 1V/octave:
- up to 4 voices
- round-robin outputs on each key press
- use open output if available else replace oldest key pressed
- Modes:
- off
- 1-voice: A
- 2-voice: A + C
- 3-voice: A + B + C
- 4-voice: A + B + C +D
- 4-voice-split: A + B, C + D
- like standard 4-voice mode, but round robin is in 2 pairs of slots instead of 4 slots
- allows for 2-voice bass and 2-voice melody
- on mode selection, waits for a keypress to set the note to split at
- capable to expand to 8 voices?
- Filter
- 4P LP(/HP?)
- filter we designed for class
- standard vactrols are available on Thonk
- CV control of cutoff, resonance
- Default to track cutoff with VCO-CV
- 4 envelopes required for 4-voice polyphony
- wired to VCA by default
- could save surface area with 1 set of ADSR controls for a pair of envelopes
- fully modular means you could borrow one for VCF instead, or send to both VCA and VCF
- LFO
- 2x is plenty I think?
- OSC circuit, but adjusted to lower frequencies
- CV (+/- 5V) and digital out?
- ideally multi-shape: sine,tri,squ,ramp up,ramp down
- CV control for shape
- Trigger input (e.g. envelope or clock)
- Buffer, Sum, Attenuate, Invert, Gate
- Could be all-in one
- A input (default ground)
- B input (default ground)
- level knob attenuator
- gate digital CV in, default on
(A+B)*level*gate
output-(A+B)*level*gate
output- Constant CV out if A/B disconnected
- Future
- Sequencer
- clock source for LFO? Or LFO input as clock?
- divide down clocks?
- likely digital
- if MIDI output, can simplify duplicating VC outs for tuning, can leverage MIDI converter for this
- however, key-based offsets of patterns wouldn't work
- 7-segment display of BPM for source clock?
- sweep control option
- LFO or voltages to trigger and CV external LFO for 4-bar sweep
- e.g. automatic filter sweeps
- random note drop feature
- Could be externally controlled, e.g. iPad
- save space and iterate on features
- allow it to be used as a drum machine too
- White noise generator?
- Sample+Hold?
- combined with white noise creates RNG
- alternatively sequencer could do RNG digitally
- random is a lot more interesting if it can quantize
- S+H has little use to me outside of random
- Delay, overdrive, etc. are gimmicky and not useful, can be done via effects pedals
- For multiple options (like VCO shape), use a CV that is binned to options
- Easiest solution is probably an ATTiny driving an analog switch
- uC seems like overkill, but it's got an ADC and lots of digital pins
- Lots of specialty components would be required for a native IC solution
- Firmware code can easily provide hysteresis and arbitrary numbers of divisions, unlike CDXXXX series CMOS chips
TODO
- utility module
- [x] Verify on breadboard
- [x] design PCB
- [x] order parts
- [x] come up with a cute name
- [x] design front panel
- [x] assemble Rev. A PCB
- bend the regulators first
- plenty of 4066s
- flip orientation of power connector
- pot orientation - both channels:
- right side (facing) to inside of board (from top)
- left side (facing) to outside of board (from top)
- [x] test with Neutron
- constant output is only 9 to -7.8
- high noise when used as a buffer
- perhaps input signal is clipping?
- white noise when the gain is turned down
- [x] adjust design for Rev. B
- [x] assemble Rev. B proto board
- [x] test with Neutron
- sum pot is backwards
- a bit of noise on the constant output near the center
- verify output levels
- hard click on gate
- needs a LPF?
- [ ] assemble Rev. B PCB
- [ ] manufacture front panel
- [ ] assemble module
- VCA
- [x] Confirm amp on breadboard, finalize CV levels
- [ ] build PoC amp and test with real synth
- [ ] figure out where tuning trimmers are needed
- [ ] finish PCB schematic for complete amplifier
- [ ] Create PCB
- [ ] design front panel
- [ ] test with Neutron
- [ ] manufacture front panel
- [ ] assemble module
- VCO
- [ ] design core
- [x] core osc - square/triangle
- [ ] wave shaper (sine)
- [ ] shape selection
- [ ] Confirm amp on breadboard, finalize CV levels
- [ ] Build PoC osc
- [ ] PCB for oscillator
- Envelope
- [x] design in SPICE
- [ ] verify on breadboard
- [ ] assemble proto board
- [ ] test with neutron
- [ ] design PCB
- [ ] manufacture front panel
- [ ] assemble module
- MIDI
- TBD
- VCF
- TBD
- LFO
- TBD
- Sequencer
- TBD
- build tools
- [x] tiny Breakout pcbs for headphone jacks
- ~~transistor matcher circuit~~
- bought matched pair BJTs instead
License
Schematics, board layouts, documentation, etc. is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License .
If you're interested in commercial use, please ask first.
Any source code is licensed under MIT.