Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

What other apps and distros do you use to round out your studio?

Moderators: MattKingUSA, khz

Post Reply
billyzillski
Established Member
Posts: 5
Joined: Mon Mar 24, 2014 3:35 pm

Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by billyzillski »

Hello.

I am trying to get my 2 M-Audio Delta soundcards working together in KXstudio. I have a Delta 1010lt and a Delta 44. I am using the full KX distro, not as an add-on. I am not new to Linux but new to audio setup with it. I can set up either card individually and get them working with Jack/Cadence. I can start and monitor envy24control with the following commands:

envy24control -c3 (for the 44)
envy24control -c4 (for the 1010lt)

I am trying to add a custom .asoundrc file as described here: http://www.jrigg.co.uk/linuxaudio/ice1712multi.html
I have attached the modified version of that .asoundrc that I am trying to use.
I am not sure that my hardware addresses are right, or how to find the right ones to use. The Cadence drop-down shows both cards as hw:0. Otherwise I do not know what is wrong. When trying to start jack this is what I get:

Code: Select all

x@x:~$ jackd -d alsa -C multi_capture -P multi_playback
jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2013 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
audio_reservation_init
Acquire audio card Audio3
creating alsa driver ... multi_playback|multi_capture|1024|2|48000|0|0|nomon|swmeter|-|32bit
jackd: pcm_multi.c:876: snd_pcm_multi_open: Assertion `schannels[i] < schannels_count[sidxs[i]]' failed.
Aborted
x@x:~$ 
I have tried many different variations on the .asoundrc file and almost all of them fail on getting the right number of channels. I have no need for non Jack apps to have sound on this PC. I think what I should be seeing when I get the correct .asoundrc working is a new sound card in my Cadence drop-down. Is that right? Can anyone help me out? Is there a better way to do this? I hope this is in the right forum, as it's not a specific KX issue, yet.

Any help is greatly appreciated,
Billy

My .asoundrc:

Code: Select all

# .asoundrc for two Delta 1010s
#
# Create virtual devices out of multiple soundcards.
# JACK will need MMAP_COMPLEX support to use this. 
# 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.

pcm.multi_capture {
	type multi
	slaves.a.pcm hw:3 
	slaves.a.channels 4
	slaves.b.pcm hw:4
	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

    
# 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 section. Uncomment bindings if required.

# 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 3
}

pcm.multi_playback {
	type multi
	slaves.a.pcm hw:3
	slaves.a.channels 4
	slaves.b.pcm hw:4
	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


# 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 section. Uncomment bindings if required.

# 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 3
}
billyzillski
Established Member
Posts: 5
Joined: Mon Mar 24, 2014 3:35 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by billyzillski »

I noticed I had the channel mappings wrong in the .asoundrc file I posted. Here is the updated one with an updated error:

Code: Select all

# .asoundrc for two Delta 1010s
#
# Create virtual devices out of multiple soundcards.
# JACK will need MMAP_COMPLEX support to use this. 
# 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.

pcm.multi_capture {
	type multi
	slaves.a.pcm hw:3 
	slaves.a.channels 4
	slaves.b.pcm hw:4
	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

    
# First 8 channels of second soundcard (capture)
 	bindings.4.slave b
 	bindings.4.channel 0
 	bindings.5.slave b
 	bindings.5.channel 1
 	bindings.6.slave b
 	bindings.6.channel 2
 	bindings.7.slave b
 	bindings.7.channel 3
 	bindings.8.slave b
 	bindings.8.channel 4
 	bindings.9.slave b
 	bindings.9.channel 5
 	bindings.10.slave b
 	bindings.10.channel 6
 	bindings.11.slave b
 	bindings.11.channel 7

}

ctl.multi_capture {
	type hw
	card 3
}

pcm.multi_playback {
	type multi
	slaves.a.pcm hw:3
	slaves.a.channels 4
	slaves.b.pcm hw:4
	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


# First 8 channels of second soundcard (playback)
 	bindings.4.slave b
 	bindings.4.channel 0
 	bindings.5.slave b
 	bindings.5.channel 1
 	bindings.6.slave b
 	bindings.6.channel 2
 	bindings.7.slave b
 	bindings.7.channel 3
 	bindings.8.slave b
 	bindings.8.channel 4
 	bindings.9.slave b
 	bindings.9.channel 5
 	bindings.10.slave b
 	bindings.10.channel 6
 	bindings.11.slave b
 	bindings.11.channel 7

}

ctl.multi_playback {
	type hw
	card 3
}

Code: Select all

x@x:~$ jackd -d alsa -C multi_capture -P multi_playback
jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2013 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in realtime mode with priority 10
audio_reservation_init
Acquire audio card Audio3
creating alsa driver ... multi_playback|multi_capture|1024|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: no playback configurations available (Invalid argument)
ALSA: cannot configure capture channel
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server
x@x:~$ 
billyzillski
Established Member
Posts: 5
Joined: Mon Mar 24, 2014 3:35 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by billyzillski »

So I've been able to get Jack going using the attached .asoundrc and running:

jackd -d alsa -C multi_capture -P multi_playback -i 16 -r 44100 -p 128 -X seq

Jack eventually crashes with CheckRead and CheckSize errors and constant XRuns, but it looks like all of my channels are there, even if there are a few extra ones. I still need to go through and test them all and figure out the crashing issue.

Here is the .asoundrc that is currently working for me.

Code: Select all

# .asoundrc for two Delta 1010s
#
# Create virtual devices out of multiple soundcards.
# JACK will need MMAP_COMPLEX support to use this. 
# 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.

pcm.multi_capture {
	type multi
	slaves.a.pcm hw:M44 
	slaves.a.channels 12
	slaves.b.pcm hw:M1010LT
	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


}

ctl.multi_capture {
	type hw
	card M44
}

pcm.multi_playback {
	type multi
	slaves.a.pcm hw:M44
	slaves.a.channels 10
	slaves.b.pcm hw:M1010LT
	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

}

ctl.multi_playback {
	type hw
	card M44
}
Here is the output of Jack just before it crashes.

Code: Select all

CheckSize error size = -1 Size() = 4
CheckRead error
CheckSize error size = 32 Size() = 12
CheckRead error
CheckSize error size = -1 Size() = 4
CheckRead error
CheckSize error size = 0 Size() = 12
CheckRead error
Unknown request 4294967295
CheckSize error size = 0 Size() = 12
CheckRead error
Unknown request 4294967295
CheckSize error size = 32 Size() = 12
CheckRead error
CheckSize error size = 32 Size() = 12
CheckRead error
CheckSize error size = -1 Size() = 4
CheckRead error
CheckSize error size = -1 Size() = 4
CheckRead error
CheckSize error size = 0 Size() = 12
CheckRead error
CheckSize error size = 3 Size() = 12
CheckRead error
Unknown request 0
Unknown request 0
jackd: ../common/JackGraphManager.cpp:44: void Jack::JackGraphManager::AssertPort(jack_port_id_t): Assertion `port_index < fPortMax' failed.
Aborted
billyzillski
Established Member
Posts: 5
Joined: Mon Mar 24, 2014 3:35 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by billyzillski »

So it looks like using a sample rate of 48000 stops the crashes, at least lowers the frequency of them. Still need to do more testing. The next step will be to get the custom command to work in Cadence if possible. But I will move that to the KX people.
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by GMaq »

Hi,

I also occasionally use 2 1010LT's so I think I may know what is going on...

I don't use Cadence but AV Linux uses a little piece of it called the 'aloop-daemon' which requires a custom .asoundrc of it's own, so if I have this correct on KXStudio you can either run Cadence OR you can use your 1010LT's with their required custom .asoundrc. On AV Linux any existing .asoundrc on the system is automatically backed up when using the aloop-daemon and then replaced when it shuts down. I don't think Cadence actually handles an existing .asoundrc this way which may explain some of the issues you're seeing. Also if memory serves 48K is the max samplerate you can use for clock sync to work, I always use 44.1K which has never had an issue.

Just a couple of thoughts that come to mind..
Last edited by GMaq on Wed Mar 26, 2014 9:21 pm, edited 1 time in total.
billyzillski
Established Member
Posts: 5
Joined: Mon Mar 24, 2014 3:35 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by billyzillski »

Yes, well now I guess the issue is that I overlooked bitwig's requirement of PortAudio. Which kind of screws everything up and leaves me clueless as to the approach to take.
Stef123
Established Member
Posts: 7
Joined: Sat Apr 12, 2014 11:38 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by Stef123 »

If i may add some information to this rather old thread: I had the same issue with two Hoontech-Cards (they use also a ICE1712 Chipset), tons of "checksize" errors before jackd finally crashed. Once it is quite important to Sync one card via SP/DIF to the other one (by using a cinch cable on their SP/DIF ports, set card 0 in Envy24control to a fixed sample rate in hardware settings (for example 44100 and set the other one to Sp/DIF). if you start JackD in the terminal be sure to use exact the same sample rate you had set up in Envy24Control("-r 44100"). Something i overlooked was the fact that, after a reboot, the settings for syncing via SP/DIF in Envy24Control were lost again. So once it worked, and after a reboot, it didn't work again.

Best regards
Stef
progdrums
Posts: 2
Joined: Sun Jan 15, 2017 8:00 pm

Re: Help: Multiple M-Audio Deltas in KXStudio w/ .asoundrc

Post by progdrums »

Hey guys I know this is an old thread but I am about to try to get 3 Edirol da-2496 cards on Ubuntu Studio Have the multicard issues since been resolved?
Post Reply