/wavetable-synthesizer

A polyphonic wavetable synthesizer written to run bare-metal on a ~100MHz-scale microprocessor. Contains quarter-cycle wavetables for sine and triangle waves, a mixer, and a filter bank. For development purposes, wavetable & audio I/O uses fopen() and fwrite(). In a target context, the GenerateSamples() call is intended to be registered as the "buffer available" callback in the audio driver.

Primary LanguageC

=====================================================================

WAVETABLE SYNTHESIZER V0.1
CALVIN GIDDENS

1) build tables
 $ ./build_tables.sh
 $ ./generate_tables

2) build synth
 $ ./build_synth
   or
 $ ./build_optimized (optimizes for code size)

3) run synth
 $ ./synth

4) rendered audio is in output.raw
   - Audio is 16 bit, mono, little-endian, 48kHz
   - Best viewed in Audacity. File->Import->Raw Data...

To edit / add synthesizer voices, look at main() in synth.c

=====================================================================