Generally, in an analog synth you can find lots of analog sources of modulations (LFOs, envelope generators, etc..). Providing multiple inputs for analog CV modulations is one of the requirements.
- Read SPI messages to change the base frequency (among other commands)
- Read analog input to modulate this frequency
- Generate the clock and slope signals, needed by the Saw generator.
- Handle a few other features, like
- Hard Sync
- Change coarse base frequency, as MIDI notes (semitones)
- Change fine base frequency, as MIDI notes + 1 to 99 cents detuning (semitones + cents)
- Set Global detune frequency (the frequency for A4 is default 440Hz, but it can be set to anything else).
- Portamento settings
- Mode: Constant time or constant speed (more about that in a dedicated post).
- Enable/Disable some features on the fly
- Hard sync
- Analog modulation
- Digital lowpass filter on modulation
I recently read this article on Make: Magazine about the “unspoken” rules of Open Hardware.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
I’ve been working on the Mixed Control Oscillator recently, it will be using an ATtiny 84 AVR chip from Atmel in the final form factor (so far it’s been running fine on my dev board using an ATmega644P, which is a bit overkill for such an application).
For the driver itself (the AVR chip):
- Precise control of the frequency via SPI. It is based on the MIDI note numbers, but with every cent between two semitones being accessible (1 cent precision), allowing frequency sweeps and continuous digital modulation.
- Analog input for modulations (1V/octave, 5 octaves range).
- Global detune (from reference A4@440Hz, with 1 cent precision).
- Portamento (work in progress), with two modes: constant time & constant slope.
- Hard sync input & output.
- Saw, Pulse and Triangle outputs.
- PWM inputs.
- Special triangle mode where the slope follows the PWM (work in progress). This would allow smooth transition from saw/ramp to triangle using PWM.