[alsa-devel] a new synthesizer driver

Steve Longerbeam stevel at embeddedalley.com
Thu Jul 19 03:28:26 CEST 2007

Hi all,

I'm embarking on a big task: writing a new synthesizer driver. My device 
has all the ingredients for a MIDI wavetable sythesizer: 64 voices, each 
voice with envelope, pitch, and LFO controls. Also global effects like 
reverb. It's similar to the emu10k1.

So my first question would be, is the synth code under synth/emux/ 
general enough to use for a different synthesizer chip? Ie, can I 
implement my own operators in 'struct snd_emux_operators' and pass that 
to snd_emux_register() ?

Would it be a simple matter to make synth/emux/ a generic synth layer, 
by moving all the source in synth/emux/ up one level to synth/, and then 
rename all functions and data structures starting with "snd_emux" to 
"snd_synth" ? For instance, snd_emux_operators becomes 
snd_synth_operators, snd_emux_control() becomes snd_synth_control(), etc.

It seems this path is already partially completed, since 
synth/emux/soundfont.c is a generic soundfont loader.

The thing I want to avoid doing is creating a synth/my_synth/ directory 
and duplicating lots of code from synth/emux/ (including just copying 
soundfont.c verbatim!).


More information about the Alsa-devel mailing list