[alsa-devel] a new synthesizer driver

Clemens Ladisch cladisch at fastmail.net
Thu Jul 19 08:32:37 CEST 2007

Steve Longerbeam wrote:
> I'm embarking on a big task: writing a new synthesizer driver. My device 

Which one?

> 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() ?

Probably not.  The sound font loading code is somewhat generic, but that
is because the sound font format was designed to be the equivalent of
the Emu chips' hardware capabilities.

All that code has been written for Emu hardware.  How much it must be
changed depends on how different your hardware is.

> 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" ?

I think it is possible to reuse some of that code, but it wouldn't be
as easy as just renaming some things.

(The generic synth code is supposed to be in core/seq/seq_midi_emul.c.
The synth/emux directory just exists to factor out common code of the
Emu8000 and Emu10k1 drivers.)


More information about the Alsa-devel mailing list