Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
src
 
 
 
 
 
 
 
 

README.md

PS-01 synthesizer

Build Status

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.

Abstract

This is a work in progress. You can follow the updates on:

See planned milestones and features.

Running

This synth is designed to run both on embedded device but also to be compiled on a desktop (helps with debugging).

Desktop (macOS/Linux/Windows)

$ cmake .
$ make
$ ./build/ps_01

Particle

  1. Assemble the hardware.
  2. Open this repo in Particle Workbench
  3. Set deviceOS@1.4.2 and the correct device you're using (xenon, argon or boron)
  4. Flash the project to the device

UI

UI documentation and guidelines

Code structure

/src/synth

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.

/src/midi

MIDI abstraction including:

  • MIDI over USB-OTG interface
  • MIDI over DIN5 connector
  • QWERTY keyboard support

/src/sequencer

Code for controlling sound engine and generate actual music out of sounds. Does things like chords, arpeggio, note to frequency conversion.

/src/ui

User interface (physical buttons, leds and screen) code.

/lib

Vendored 3rd party libraries.

References

About

šŸŽ¹ Software synthesizer running on Particle Xenon, inspired by MOS6581 and Pocket Operator

Topics

Resources

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.