Software synthesizer that can be run on Particle 3rd gen devices (Argon, Boron or Xenon) as well as desktop. Inspired by MOS6581 and the Pocket Operator series.
This is a work in progress. You can follow the updates on:
See planned milestones and features.
This synth is designed to run both on embedded device but also to be compiled on a desktop (helps with debugging).
$ cmake .
$ make
$ ./build/ps_01
- Assemble the hardware.
- Open this repo in Particle Workbench
- Set
[email protected]
and the correct device you're using (xenon
,argon
orboron
) - Flash the project to the device
UI documentation and guidelines
Main sound synthesis code including voices, ADSR and effects.
Proposed features of the engine are:
- six independent audio oscillators with:
- four different waveforms per audio oscillator (sawtooth, triangle, pulse, noise)
- variable pulse width
- multi mode filter (low-pass, high-pass and band-pass)
- ADSR volume controls
- ability to specify channel (left, right or both)
- six ring modulators
This is similar to having two SID chips.
MIDI abstraction including:
- MIDI over USB-OTG interface
- MIDI over DIN5 connector
- QWERTY keyboard support
Code for controlling sound engine and generate actual music out of sounds. Does things like chords, arpeggio, note to frequency conversion.
User interface (physical buttons, leds and screen) code.
Vendored 3rd party libraries.