LegaSynth:

LegaSynth is an old chip/synthethizer emulator. It currently uses the ALSA sequencer API, but could easily be expanded to use others as well.
LegaSynth supports OSS/JACK wave output drivers.
Current engines proovide very precise emulation of:

-Yamaha DX7 FM
-MOS6581 Sound Interface Device (or best known as the good old C64 SID :)
-Yamaha YMH2K (Soundchip very popular in small Yamaha keyboards/Arcades and the Sega GENESIS)

LegaSynth Programming Framework:

LegaSynth is also a very powerful synthethizer programming framework, where, with only a few lines of code you can have your own engine.
A simple demo engine and some documentation are aviable within the source tarball.
The difference between LegaSynth and other programs such as Reaktor or Bristol, is that here the engines have to be actually programmed :).
LegaSynth proovides you with:
-Midi Driver Handling.
-Midi Event Handling.
-Voice Parameters Handling: You dont need to parse/write specific midi bank/controller/pitch/key code, legasynth takes care of all that.
-Smart "Voice" base class: Your voice is notified of noteon/noteoff, and then asked to mix into a buffer, at mix time you retrieve the frequency/volume and run your code. If you think the note finished its job, just change the status to "dead"
-Voice Allocation: LegaSynth does all voice allocation/handling job.
-Bank/Patch/Drums Config: Simply let LegaSynth know about what parameters does your voice use, and with simply that, LegaSynth will be able to create midi patches, banks, drumsets, an interface to configure patches, and ability of loading/saving them to disk.
-Effect Buffers: Voices can be Chorused/Reverbed, and will soon use custom output plugins.
-Wave Output: LegaSynth supports OSS/ALSA and JACK drivers.

