Together with a team, I am working on a multiseat project for which we need to access more than 32 sound cards on a Linux system (not all used simultaneously).
We are running Ubuntu with a modified version of the 3.6.3 kernel. We used the code from Takashi Iwai's sound repository to patch the original 3.6.3 source to allow ALSA to recognize and name more than 32 devices (since there was a bug introduced in the 3.8 kernel which threw a kernel panic when connecting more than 28 cards, we could not use the latest kernel). Currently, we can detect more than 36 sound cards, they have ids and names given in /proc/asound/cards. Before applying Takashi's patches, they would stop being named at id = 31. So this seems to be working all right.
The problem comes when trying to access the cards using pyalsa. We downloaded the pyalsa 1.0.26 tar from ftp://ftp.alsa-project.org/pub/pyalsa/pyalsa-1.0.26.tar.bz2. We need to know how to compile pyalsa with the latest alsalib that supports more than 32 cards. If we run pyalsa.alsacard.asoundlib_version() from the python interpreter, we get '1.0.25'. We know the latest version is 1.0.27 and we have put the alsa headers in pyalsa-1.0.26/pyalsa/alsa/ dir before compiling, but it doesn't seem to compile using these files and keeps saying version is 1.0.25.
You need to install alsa-lib 1.0.27.2
http://git.alsa-project.org/?p=alsa-lib.git;a=commit;h=2f43b66c06ece64529e48...