# .asoundrc for two Delta 1010s # # Create virtual devices out of multiple soundcards. # ICE1712 chip has 12 capture channels and 10 playback channels. # No. of channels in slaves must equal 12 for capture and 10 for playback # otherwise "invalid argument" errors result. # If you're using JACK without MMAP_COMPLEX support (are you sure you want to do this?) # you need the ttable devices shown below. # To start jackd with ttable devices, use this command: # jackd -d alsa -C ttable_cap -P ttable_play # with additional options as required. # This will really screw up low latency operation, so it's much better # to use JACK with the MMAP_COMPLEX patch. # Capture pcm.multi_capture { type multi slaves.a.pcm hw:0 slaves.a.channels 12 slaves.b.pcm hw:1 slaves.b.channels 12 # First 8 channels of first soundcard (capture) 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 # First 8 channels of second soundcard (capture) bindings.8.slave b bindings.8.channel 0 bindings.9.slave b bindings.9.channel 1 bindings.10.slave b bindings.10.channel 2 bindings.11.slave b bindings.11.channel 3 bindings.12.slave b bindings.12.channel 4 bindings.13.slave b bindings.13.channel 5 bindings.14.slave b bindings.14.channel 6 bindings.15.slave b bindings.15.channel 7 # S/PDIF first soundcard (capture) #bindings.16.slave a #bindings.16.channel 8 #bindings.17.slave a #bindings.17.channel 9 # S/PDIF second soundcard (capture) #bindings.18.slave b #bindings.18.channel 8 #bindings.19.slave b #bindings.19.channel 9 } ctl.multi_capture { type hw card 0 } # Interleave capture channels pcm.ttable_cap { type route slave.pcm "multi_capture" 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.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 # S/PDIF channels (capture) #ttable.16.16 1 #ttable.17.17 1 } ctl.ttable_cap { type hw card 0 } # Playback pcm.multi_playback { type multi slaves.a.pcm hw:0 slaves.a.channels 10 slaves.b.pcm hw:1 slaves.b.channels 10 # First 8 channels of first soundcard (playback) 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 # First 8 channels of second soundcard (playback) bindings.8.slave b bindings.8.channel 0 bindings.9.slave b bindings.9.channel 1 bindings.10.slave b bindings.10.channel 2 bindings.11.slave b bindings.11.channel 3 bindings.12.slave b bindings.12.channel 4 bindings.13.slave b bindings.13.channel 5 bindings.14.slave b bindings.14.channel 6 bindings.15.slave b bindings.15.channel 7 # S/PDIF first soundcard (playback) #bindings.16.slave a #bindings.16.channel 8 #bindings.17.slave a #bindings.17.channel 9 # S/PDIF second soundcard (playback) #bindings.18.slave b #bindings.18.channel 8 #bindings.19.slave b #bindings.19.channel 9 } ctl.multi_playback { type hw card 0 } # Interleave playback channels pcm.ttable_play { type route slave.pcm "multi_playback" 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.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 # S/PDIF channels (playback) #ttable.16.16 1 #ttable.17.17 1 } ctl.ttable_play { type hw card 0 }