This is a very rudimentary synthesiser for use on Monotron.
It is #![no_std]
crate with no dynamic memory allocation. It's a small
structure containing four oscillators where each oscillator has a volume, a
frequency and a waveform. You can either modify the oscillators, or pull out
the next sample. Each sample is calculated as the sum of the output of each
oscillator, and the samples are signed 8-bit values.
It produces a pretty gritty noise, which if you're trying to simulate a late 1970s / early 1980s home computer is probably about right.
- Sine wave
- Triangle wave
- Square wave
- Noise (ish)
- ADSR envelopes
MIT or Apache 2 at your choice.