1
0
mirror of https://github.com/sjlongland/atinysynth.git synced 2025-09-13 10:03:15 +10:00
Go to file
Stuart Longland d9bfcb7991
adsr: Support "infinite" delay and sustain.
This is useful if you don't know how long a given note will be held for…
you can just trigger the note upon pressing the button and have it
progress to the "sustain" state, at which point it'll hold the note.

You can then call `adsr_continue` to "release" that note when you detect
the button release and have it decay.
2017-05-27 15:19:40 +10:00
ports main: timer: Invert button states 2017-05-27 15:01:41 +10:00
.gitignore gensine: Add in sine wave generator. 2017-04-25 17:43:51 +10:00
adsr.c adsr: Support "infinite" delay and sustain. 2017-05-27 15:19:40 +10:00
adsr.h adsr: Support "infinite" delay and sustain. 2017-05-27 15:19:40 +10:00
debug.h debug.h: Add debug helper 2017-04-08 20:26:45 +10:00
gensine.py gensine: Add in sine wave generator. 2017-04-25 17:43:51 +10:00
LICENSE ADSR-based synthesizer for microcontrollers 2017-04-08 18:57:37 +10:00
Makefile Makefile: Make object list configurable. 2017-05-01 17:36:56 +10:00
README.md ADSR-based synthesizer for microcontrollers 2017-04-08 18:57:37 +10:00
synth.h synth: Make enable/mute bits volatile. 2017-04-09 10:17:09 +10:00
voice.h voice: Add test for voice channel done. 2017-04-09 10:07:10 +10:00
waveform.c waveform: Fix logic errors in triangle synthesis 2017-04-09 07:26:16 +10:00
waveform.h waveform: Increase step to 16-bits. 2017-04-09 07:19:04 +10:00

ADSR-based Polyphonic Synthesizer

This project is intended to be a polyphonic synthesizer for use in embedded microcontrollers. It features multi-voice synthesis for multiple channels.

The synthesis is inspired from the highly regarded MOS Technologies 6581 "SID" chip, which supported up to 3 voices each producing either a square wave, triangle wave or sawtooth wave output and hardware attack/decay/sustain/release envelope generation.

This tries to achieve the same thing in software.

Code is presently a work-in-progress.