All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.