[alsa-devel] Alsa mixer interface limitations?

Ctirad Fertr c.fertr at volny.cz
Sun Jun 17 21:50:51 CEST 2007


I'm currently in phase of adding support for higher sample rates into e-mu 
1212m/1820m driver. These cards have a lot of physical inputs and outputs and 
also a bunch of internal buses used for capture, playback and internal 
routing between physical inputs and outputs. Both physical I/O and internal 
buses are shown in alsamixer, so one can set routing easily. It's a lot of 
switches, anyway.

The card has three modes. The standard (or "single speed") mode is the only 
mode currently supported in emu10k driver. It is capable of 44.1/48kHz sample 
rate only. If we need higher sample rates, we have to switch the card into 
either "double speed" (for 88.2/96kHz) or  "quadruple speed" (for 
176.4/192kHz) mode. 

The problem is that the number of inputs, outputs and especially internal 
buses significantly changes at higher speed modes. The reason is that 
internal buses are 44.1/48kHz only and thus we must use two (or four) of them 
per channel. Also some physical I/O ports disappear at double and quadruple 
speeds (e.g. ADAT has 4 channles at 96k and 2 at 192k, S/PDIF is completely 
disabled at 192k).

The question is how to deal with that in alsamixer? IMHO the best way would be 
to change the number of switches in alsamixer on the fly. Unfortunatelly, I'm 
afraid it's impossible. Another way would be to make a particular swiches 
inactive, though I don't know if it is a good idea and it wold require a lot 
of code anyway.  Any ideas? Please help!



More information about the Alsa-devel mailing list