* a new synthesizer driver
@ 2007-07-19 1:28 Steve Longerbeam
2007-07-19 6:32 ` Clemens Ladisch
0 siblings, 1 reply; 3+ messages in thread
From: Steve Longerbeam @ 2007-07-19 1:28 UTC (permalink / raw)
To: ALSA devel
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!).
Steve
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: a new synthesizer driver
2007-07-19 1:28 a new synthesizer driver Steve Longerbeam
@ 2007-07-19 6:32 ` Clemens Ladisch
2007-07-19 18:18 ` Steve Longerbeam
0 siblings, 1 reply; 3+ messages in thread
From: Clemens Ladisch @ 2007-07-19 6:32 UTC (permalink / raw)
To: Steve Longerbeam, ALSA devel
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.)
Regards,
Clemens
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: a new synthesizer driver
2007-07-19 6:32 ` Clemens Ladisch
@ 2007-07-19 18:18 ` Steve Longerbeam
0 siblings, 0 replies; 3+ messages in thread
From: Steve Longerbeam @ 2007-07-19 18:18 UTC (permalink / raw)
To: Clemens Ladisch; +Cc: ALSA devel
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/application_processors/zevio1020/index.html
>
>> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-07-19 18:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-19 1:28 a new synthesizer driver Steve Longerbeam
2007-07-19 6:32 ` Clemens Ladisch
2007-07-19 18:18 ` Steve Longerbeam
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.