
Clemens Ladisch wrote:
Steve Longerbeam wrote:
I'm embarking on a big task: writing a new synthesizer driver. My device
Which one?
it's an embedded SOC, the LSI Zevio 1020, here's a link:
http://www.lsi.com/consumer_home/products_home/standard_product_ics/applicat...
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.)
ok, that's what it looked like.
Steve