Howdy,
I am currently trying to get two HDSPM cards working with ALSA and JACK. I can use each
card individually from each other using -Dhw:0 or -Dhw:1. However I need to get both cards
to look like one card for a program that we are developing in house. From what I have read
I need either a .asoundrc or a /etc/alsa.conf file. For the time being I have chosen to
work with .asoundrc.
Here is the problem. I build the .asoundrc file according to the help page in the ALSA
documentation, however when I execute any program that calls that virtual card, I get the
following error. (This output is from the PCM test program in Alsa-Lib)
opteron:/usr/src/alsa-lib-1.0.9/test # ./pcm -Dplug:hdspmbig -c112
Playback device is plug:hdspmbig
Stream parameters are 44100Hz, S16_LE, 112 channels
Sine wave rate is 440.0000Hz Using transfer method: write
pcm: pcm_multi.c:811: snd_pcm_multi_open: Assertion
`!slave_map[sidxs[i]][schannels[i]]' failed.
Aborted
If I reduce the number of channels contained in the virtual card named hdspm_112 to 64
channels, the test will work fine. I have a suspicion that the problem lies in the fact
that the virtual card holds more channels than are physically available to the first sound
card (hw:0). I am sure that there is something painfully obvious that I am missing but I
haven't been able to locate it in the last four days.
I am including my .asoundrc file for reference.
Any help would me much appreciated.
Thanks,
Matthew Simmons
--------------begin .asoundrc ---------------------- pcm_slave.hdspm_s {
pcm hdspm_0
}
pcm.hdspm_1 {
type hw
card 1
}
ctl.hdspm_1 {
type hw
card 1
}
pcm.hdspm_0 {
type hw
card 0
}
ctl.hdspm_0 {
type hw
card 0
}
ctl.hdspm_112 {
type hw
card 0
}
pcm.hdspm_112 {
type multi;
slaves.a.pcm hdspm_0;
slaves.a.channels 56;
slaves.b.pcm hdspm_1;
slaves.b.channels 56;
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave a;
bindings.1.channel 1;
bindings.2.slave a;
bindings.2.channel 2;
bindings.3.slave a;
bindings.3.channel 3;
bindings.4.slave a;
bindings.4.channel 4;
bindings.5.slave a;
bindings.5.channel 5;
bindings.6.slave a;
bindings.6.channel 6;
bindings.7.slave a;
bindings.7.channel 7;
bindings.8.slave a;
bindings.8.channel 8;
bindings.9.slave a;
bindings.9.channel 9;
bindings.10.slave a;
bindings.10.channel 10;
bindings.11.slave a;
bindings.11.channel 11;
bindings.12.slave a;
bindings.12.channel 12;
bindings.13.slave a;
bindings.13.channel 13;
bindings.14.slave a;
bindings.14.channel 14;
bindings.15.slave a;
bindings.15.channel 15;
bindings.16.slave a;
bindings.16.channel 16;
bindings.17.slave a;
bindings.17.channel 17;
bindings.18.slave a;
bindings.18.channel 18;
bindings.19.slave a;
bindings.19.channel 19;
bindings.20.slave a;
bindings.20.channel 20;
bindings.21.slave a;
bindings.21.channel 21;
bindings.22.slave a;
bindings.22.channel 22;
bindings.23.slave a;
bindings.23.channel 23;
bindings.24.slave a;
bindings.24.channel 24;
bindings.25.slave a;
bindings.25.channel 25;
bindings.26.slave a;
bindings.26.channel 26;
bindings.27.slave a;
bindings.27.channel 27;
bindings.28.slave a;
bindings.28.channel 28;
bindings.29.slave a;
bindings.29.channel 29;
bindings.30.slave a;
bindings.30.channel 30;
bindings.31.slave a;
bindings.31.channel 31;
bindings.32.slave a;
bindings.32.channel 32;
bindings.33.slave a;
bindings.33.channel 33;
bindings.34.slave a;
bindings.34.channel 34;
bindings.35.slave a;
bindings.35.channel 35;
bindings.36.slave a;
bindings.36.channel 36;
bindings.37.slave a;
bindings.37.channel 37;
bindings.38.slave a;
bindings.38.channel 38;
bindings.39.slave a;
bindings.39.channel 39;
bindings.40.slave a;
bindings.40.channel 40;
bindings.41.slave a;
bindings.41.channel 41;
bindings.42.slave a;
bindings.42.channel 42;
bindings.43.slave a;
bindings.43.channel 43;
bindings.44.slave a;
bindings.44.channel 44;
bindings.45.slave a;
bindings.45.channel 45;
bindings.46.slave a;
bindings.46.channel 46;
bindings.47.slave a;
bindings.47.channel 47;
bindings.48.slave a;
bindings.48.channel 48;
bindings.49.slave a;
bindings.49.channel 49;
bindings.50.slave a;
bindings.50.channel 50;
bindings.51.slave a;
bindings.51.channel 51;
bindings.52.slave a;
bindings.52.channel 52;
bindings.53.slave a;
bindings.53.channel 53;
bindings.54.slave a;
bindings.54.channel 54;
bindings.55.slave a;
bindings.55.channel 55;
# Use hdspm_1
bindings.56.slave b;
bindings.56.channel 0;
bindings.57.slave b;
bindings.57.channel 1;
bindings.58.slave b;
bindings.58.channel 2;
bindings.59.slave b;
bindings.59.channel 3;
bindings.60.slave b;
bindings.60.channel 4;
bindings.61.slave b;
bindings.61.channel 5;
bindings.62.slave b;
bindings.62.channel 6;
bindings.63.slave b;
bindings.63.channel 7;
bindings.64.slave b;
bindings.64.channel 8;
bindings.65.slave b;
bindings.65.channel 9;
bindings.66.slave b;
bindings.66.channel 10;
bindings.67.slave b;
bindings.67.channel 11;
bindings.68.slave b;
bindings.68.channel 12;
bindings.69.slave b;
bindings.69.channel 13;
bindings.70.slave b;
bindings.70.channel 14;
bindings.71.slave b;
bindings.71.channel 15;
bindings.72.slave b;
bindings.72.channel 16;
bindings.73.slave b;
bindings.73.channel 17;
bindings.74.slave b;
bindings.74.channel 18;
bindings.75.slave b;
bindings.75.channel 19;
bindings.76.slave b;
bindings.76.channel 20;
bindings.77.slave b;
bindings.77.channel 21;
bindings.78.slave b;
bindings.78.channel 22;
bindings.79.slave b;
bindings.79.channel 23;
bindings.80.slave b;
bindings.80.channel 24;
bindings.81.slave b;
bindings.81.channel 25;
bindings.82.slave b;
bindings.82.channel 26;
bindings.83.slave b;
bindings.83.channel 27;
bindings.84.slave b;
bindings.84.channel 28;
bindings.85.slave b;
bindings.85.channel 29;
bindings.86.slave b;
bindings.86.channel 30;
bindings.87.slave b;
bindings.87.channel 31;
bindings.88.slave b;
bindings.88.channel 32;
bindings.89.slave b;
bindings.89.channel 33;
bindings.90.slave b;
bindings.90.channel 34;
bindings.91.slave b;
bindings.91.channel 35;
bindings.92.slave b;
bindings.92.channel 36;
bindings.93.slave b;
bindings.93.channel 37;
bindings.94.slave b;
bindings.94.channel 38;
bindings.95.slave b;
bindings.95.channel 39;
bindings.96.slave b;
bindings.96.channel 40;
bindings.97.slave b;
bindings.97.channel 41;
bindings.98.slave b;
bindings.98.channel 42;
bindings.99.slave b;
bindings.99.channel 43;
bindings.100.slave b;
bindings.100.channel 44;
bindings.101.slave b;
bindings.101.channel 45;
bindings.102.slave b;
bindings.102.channel 46;
bindings.103.slave b;
bindings.103.channel 47;
bindings.104.slave b;
bindings.104.channel 48;
bindings.105.slave b;
bindings.105.channel 49;
bindings.106.slave b;
bindings.106.channel 50;
bindings.107.slave b;
bindings.107.channel 51;
bindings.108.slave b;
bindings.108.channel 52;
bindings.109.slave b;
bindings.109.channel 53;
bindings.110.slave b;
bindings.110.channel 54;
bindings.111.slave b;
bindings.111.channel 55;
bindings.112.slave b;
bindings.112.channel 56;
}
pcm.hdspmbig {
type route
slave.pcm "hdspm_112"
ttable.0.0 1
ttable.1.1 1
ttable.2.2 1
ttable.3.3 1
ttable.4.4 1
ttable.5.5 1
ttable.6.6 1
ttable.6.6 1
ttable.7.7 1
ttable.8.8 1
ttable.9.9 1
ttable.10.10 1
ttable.11.11 1
ttable.12.12 1
ttable.13.13 1
ttable.14.14 1
ttable.15.15 1
ttable.16.16 1
ttable.17.17 1
ttable.18.18 1
ttable.19.19 1
ttable.20.20 1
ttable.21.21 1
ttable.22.22 1
ttable.23.23 1
ttable.24.24 1
ttable.25.25 1
ttable.26.26 1
ttable.27.27 1
ttable.28.28 1
ttable.29.29 1
ttable.30.30 1
ttable.31.31 1
ttable.32.32 1
ttable.33.33 1
ttable.34.34 1
ttable.35.35 1
ttable.36.36 1
ttable.37.37 1
ttable.38.38 1
ttable.39.39 1
ttable.40.40 1
ttable.41.41 1
ttable.42.42 1
ttable.43.43 1
ttable.44.44 1
ttable.45.45 1
ttable.46.46 1
ttable.47.47 1
ttable.48.48 1
ttable.49.49 1
ttable.50.50 1
ttable.51.51 1
ttable.52.52 1
ttable.53.53 1
ttable.54.54 1
ttable.55.55 1
ttable.56.56 1
ttable.57.57 1
ttable.58.58 1
ttable.59.59 1
ttable.60.60 1
ttable.61.62 1
ttable.63.63 1
ttable.64.64 1
ttable.65.65 1
ttable.66.66 1
ttable.67.67 1
ttable.68.68 1
ttable.69.69 1
ttable.70.70 1
ttable.71.71 1
ttable.72.72 1
ttable.73.73 1
ttable.74.74 1
ttable.75.75 1
ttable.76.76 1
ttable.77.77 1
ttable.78.78 1
ttable.79.79 1
ttable.80.80 1
ttable.81.81 1
ttable.82.82 1
ttable.83.83 1
ttable.84.84 1
ttable.85.85 1
ttable.86.86 1
ttable.87.87 1
ttable.88.88 1
ttable.89.89 1
ttable.90.90 1
ttable.91.91 1
ttable.92.92 1
ttable.93.93 1
ttable.94.94 1
ttable.95.95 1
ttable.96.96 1
ttable.97.97 1
ttable.98.98 1
ttable.99.99 1
ttable.100.100 1
ttable.101.101 1
ttable.102.102 1
ttable.103.103 1
ttable.104.104 1
ttable.105.105 1
ttable.106.106 1
ttable.107.107 1
ttable.108.108 1
ttable.109.109 1
ttable.110.110 1
ttable.111.111 1
}
ctl.hdspmbig {
type hw;
card 0;
}