This project tries to implement a monophonic synthesizer using the Arty_A7-xc7a100tcsg324-1 board.
All source files are located in src/, except for the WavetableLUT source code which is generated from the Block Memory Generator (Single port ROM, Port width 4096 and data/waveforms/wavetable_16bit.coe as the memory generation file, everything else is the default options) Vivado ip.
Main features:
- 4 different waveforms to choose from using
sw[1:0]("00": sine, "01": triangle, "10": sawtooth, "11": square) - adjustable ADSR (attack, decay, sustain, release) parameters via buttons connected to Pmod JB.
- midi input support (for now only via pre-written python script)
To try it:
- run
audio_test.py(additional parameters depend on operating system, check the file for more info)
Additional files:
waveform_generator.py: generates the.coefiles, containing the waveforms, that will be uploaded to theWavetableLUTcircuit.jpgis a still photo of the overall circuit. The buttons are associated to each parameter by color (red: attack, green: decay, blue: sustain, yellow: release) and the left ones decrease the corresponding value, while the right ones increase it.
You can check a quick (and badly recorded at 1:30am) demo at this link.