From HoloWiki
Jump to: navigation, search

A Shared FPGA modularized Scalable PM Music Synthesizer with midi input (written In Verilog).

Code launched at bitbucket
VEEK(tPad) and NEEK screen pic


Preview Samples





--- Written in Verilog(2005) + Systemverilog

--- Directly compilable (Altera Quartus II v_11.1 sp1) with 3 different (Terasic) hardware developer kits. (Altera NEEK, DE2-115 with TRB LTM LCD touchscreen and the TPAD/VEEK)( http://www.terasic.com.tw/en/ ).

-- Dx-7 style envelope generators 2 pr. OSC voice.

-- is (currently) tested compilable & playable with from 1 - 4 osc's and up to 32 voices (DE2-115 + LTM).

-- feedback & modulation matrix.(also implementable for 2nd env gen)(inspired from here: http://home1.gte.net/res0658s/FPGA_synth/8opFM16voice.html)

-- pitchbend.

-- interresting harmonic overdrive distortion feature.

-- working touch LCD display of most parameters (possible to use to change parameters instead of using sysex).

-- working MIDI panic button

-- Based upon 1/4 of a sine LUT and signed integers. (No floats)(shared by: http://www.fpga4fun.com/ (zero cross corrected)).

-- Adjustable pitch scaling.

-- Coarse & finetune.

Can be used as a template to get quickly up and running to experiment with FPGA based sound synthesis ideas.

Especially for newbies.

Status: rev 0.8, ready for publication and mostly playable and editible via midi sysex strings.

 rev 0.8.001: DE2-115 LTM + VEEK(tPad) + NEEK versions online and working with both sysex and CC controllers.

Based upon functional programming via logical concepts + trial & error.

No simulation used and tested mostly by ear.

a blend of verilog 2001 & systemverilog.

2n'd osc env gen destination matrix (is not yet implemented).

Project now on bitbucket.org

The synthesizer is now stable.

Now using ubuntu 12.04 for development + win 7

Todo list:

--- Make quickstart usermanual with midi implementation for synth users...

   up so it can give a stable structure without degrading the synthesize engines sonic quality.

---> Get dogygen based documentation to work(problem with the generates). (Now working, needs to be added to online code)

--- Make a description of the concepts, ideas and functionality behind each logic module and the overall construction.

--- add a internal memory to add a 3rd vectormath based dimension in the synth engine.(moved to wishlist)

---> need feedback from viewers.

Wish list: --- add a internal memory to add a 3rd vectormath based dimension in the synth engine.

--- implement a Openhardware Xilinx soundsynthesis port maybe via connecting to the Milkymist project.

--- Construct better (Android based) Gui , currently experimenting with Beagle board/bone and Pandaboard