https://github.com/suda/ps-01
🎹 Software synthesizer running on Particle Xenon, inspired by MOS6581 and Pocket Operator
https://github.com/suda/ps-01
chiptune-synthesizer dac midi particle synthesizer xenon
Last synced: about 1 year ago
JSON representation
🎹 Software synthesizer running on Particle Xenon, inspired by MOS6581 and Pocket Operator
- Host: GitHub
- URL: https://github.com/suda/ps-01
- Owner: suda
- Created: 2016-05-21T00:50:50.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-12-20T15:38:08.000Z (over 6 years ago)
- Last Synced: 2025-03-20T15:09:45.036Z (about 1 year ago)
- Topics: chiptune-synthesizer, dac, midi, particle, synthesizer, xenon
- Language: C++
- Homepage: https://hackaday.io/project/167405-ps-01
- Size: 10 MB
- Stars: 4
- Watchers: 6
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PS-01 synthesizer
[](https://travis-ci.org/suda/ps-01)
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:
* [Hackaday](https://hackaday.io/project/167405-ps-01)
* [Instagram stories](https://www.instagram.com/stories/highlights/18089019253003770/)
* [YouTube playlist](https://www.youtube.com/playlist?list=PLW9dSXWX1cLJcqKuNrfPg6BXtz2fbAJwX)
[See planned milestones and features](docs/ps-01.pdf).
## 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](docs/hardware.md).
2. Open this repo in [Particle Workbench](https://www.particle.io/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](docs/ui.md)
## 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](https://en.wikipedia.org/wiki/MOS_Technology_SID#Features).
### `/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
* https://ccrma.stanford.edu/software/stk/
* [VICE - C64 emulator with multiple SID implementations (reSID, FastSID)](http://vice-emu.sourceforge.net/index.html#download)
* [NES Audio - series of videos explaining some chiptune effects](https://www.youtube.com/playlist?list=PLW9dSXWX1cLKxzAsxP4dfWyhK3B1bAzJg)
* [wavepot - tool for live sound synthesis](http://wavepot.com/)
* [SID chip datasheet](http://www.waitingforfriday.com/index.php/Commodore_SID_6581_Datasheet)