[alsa-devel] Patchmix-style application for EMU cards
Hello I am working on a graphical mixing/routing application for the Emu10k series of semi-pro soundcards, but I am having trouble figuring out the routing mechanism of the driver, specially the "Multichannel PCM" part. Is there any technical documentation on this card I could read (I haven't found any), or maybe the driver developer can help me out?
Thanks, Camilo.
Dne Tuesday 15 of April 2008 10:26:06 Camilo Polymeris napsal(a):
Hello
I am working on a graphical mixing/routing application for the Emu10k series of semi-pro soundcards,
That is great! I planned to try to write one, but never have enough time to do that.
but I am having trouble figuring out the routing mechanism of the driver, specially the "Multichannel PCM" part. Is there any technical documentation on this card I could read (I haven't found any),
I'm afraid there is no documentation at all. The emu10k1.h and emumixer.c are quite self explanatory, though. Especially the first one.
The basic idea is that we have two chips. One is custom FPGA, where all the physical inputs and outpusts are connected. The second chip is the emu10k which is conected to FPGA by a bunch of 32bit buses. There are 32 buses from emu10k to FPGA called DSP0 to DSP31 used for playback and 21 buses in other direction called DSP0 to DSP15 (hexa numbering!) used for capture. 1 bus = one audio channel except for higher sample rates (e.g. 96kHz and 192kHz), where multiple buses are used to transfer one channel. The FPGA can assign any physical input (or playback DSP channel) to any capture DSP channel and same for outputs (see alsamixer). The multichannel capture on hw:0,2 captures the first 16 channels (DSP0 to DSPD). The multichannel playback on hw:0,3 is routed to DSP0 to DSP15. I hope it helps.
or maybe the driver developer can help me out?
Well, I'm not quite a driver developer, but I think I know E-mu cards well to answer any questions important for mixer appliacation ;) So please ask. I'd like to help you to imporve alsa suport for these excellent cards.
Best Regards,
Ctirad
Hello
The basic idea is that we have two chips. One is custom FPGA, where all the physical inputs and outpusts are connected. The second chip is the emu10k which is conected to FPGA by a bunch of 32bit buses. There are 32 buses from emu10k to FPGA called DSP0 to DSP31 used for playback and 21 buses in other direction called DSP0 to DSP15 (hexa numbering!) used for capture. 1 bus = one audio channel except for higher sample rates (e.g. 96kHz and 192kHz), where multiple buses are used to transfer one channel. The FPGA can assign any physical input (or playback DSP channel) to any capture DSP channel and same for outputs (see alsamixer). The multichannel capture on hw:0,2 captures the first 16 channels (DSP0 to DSPD). The multichannel playback on hw:0,3 is routed to DSP0 to DSP15. I hope it helps.
That is more or less what I had figured out, but it how are playback_1 to _16 channels routed to DSP0-15? It seems that it depends on the setting of Front, Surround, LFE, etc. mixer controls. If they are turned up, I don't understand what happens, sound to playback channels appears on various DSP buses, at different levels. If I turn the Front/Surround/LFE/etc. faders down, I can mix playback channels to DSP using the "Multichannel PCM Send/Routing/Volume" faders, in a more or less intuitive way, besides that routing values do not map directly to DSP buses (i.e. 14-15 map to DSP0-1, but 2-3 map to DSP2-3). There is also a set of mixer controls called "EMU10k Routing", or similar, which I haven't even looked at.
or maybe the driver developer can help me out?
Well, I'm not quite a driver developer, but I think I know E-mu cards well to answer any questions important for mixer appliacation ;) So please ask. I'd like to help you to imporve alsa suport for these excellent cards.
Best Regards,
Ctirad
Thanks for your help, and sorry everyone for double-posting
Camilo
participants (2)
-
Camilo Polymeris
-
Ctirad Fertr