Using more than on Delta 1010 soundcard

(magnus de potatis) #1

Hi everyone.

I´m using Ubuntu studio (I think it´s the ubuntu studio 8.04 version) and M Audios Delta 1010 soundcard.
My set up works just great. The only problem is that my studio needs more recordingchannels.

I have an analouge 24 channel consol that I use cause dont really like to mix within the computer.

I would like to run one or two more delta 1010 cards on my computer using Ardour as my DAW.’

I don´t know if it´s possible to run more than one delta 1010 ?

I found some hope on M Audios homepage:

Q: How many Delta Series cards can be used in the same Computer?
A: In Windows, up to 4 Delta Series cards can be used at the same time. Up to 3 Delta Series cards can be used in Mac OS X when using the latest Delta Series driver. For Mac OS 9, a Multi-Card driver for up to 3 Delta Series cards is available. The Linux OSS-driver supports up to 8 cards, if the necessary resources are available. ”
This answer from the M audio staff gave me a lot of hope, but a while ago I read somewhere on the internet that it was not possible to use more than one Delta 1010 card on Linux.
So this is my question: Is it really possible to run more than one Delta 1010 pci card on Ubuntu Studio 8.04 using Ardour as DAW?

Thanx a lot

/ Magnus


(Support) #2

I believe it is possible to run multiple 1010’s - You may find some useful information / ask at the AV Linux site (or the AVLinux forum)

IIRC the AVlinux distro maintainer / developer, GMaq, who can also be found on this forum occasionally, runs a system with two 1010 cards in it. I think the main things to watch out for are syncing the cards together and some ALSA configuration is necessary in order to get them to appear in a sensible way to JACK.


(Peder Hedlund) #3

Here’s a config/howto for two 1010’s :
and here’s a walkthrough using that info :


(Info) #4


In addition a HowTO I did here for AV Linux, should have most relevant info for Ubuntu users as well:


(Btartsa) #5

Is there a way to get Ardour to start jack in the mode created by the command

jackd -R -d alsa -r 44100 -C multi_capture -P multi_playback

automatically? The only way I can get this going is to start Jack then Ardour separately I tried the settings in the initial Ardour start up and the settings in Qjackctl but all that seems to work is the command line…where does Ardour get store its initial startup values for jackd?


(Paul Davis) #6

@leadghost: there isn’t. Ardour’s own settings are stored in a file in ~/.ardour2 or ~/.config/ardour3 depending on which version you use. But Ardour’s dialog for this is intended mostly as a toy. Most Linux users will enjoy life more by using qjackctl (some linux distributions call this “jack control”).


(bassman_chris) #7

I have everything tried from the links above but I didn’t get the second delta worked.
when I use this command
jackd -R -d alsa -r 44100 -C multi_capture -P multi_playback
I got this answer:
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
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
self-connect-mode is “Don’t restrict self connect requests”
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_capture
control open “multi_capture” (No such file or directory)
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_playback
control open “multi_playback” (No such file or directory)
creating alsa driver … multi_playback|multi_capture|1024|2|44100|0|0|nomon|swmeter|-|32bit
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_playback
control open “multi_playback” (No such file or directory)
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM multi_playback
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM multi_capture
ALSA: Cannot open PCM device alsa_pcm for playback. Falling back to capture-only mode
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_capture
control open “multi_capture” (No such file or directory)
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_playback
control open “multi_playback” (No such file or directory)
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server


(Chris) #8

Check the output of aplay -l and aplay -L.
The first lists the hardware devices, that should make sure both cards are detected. The second lists the PCM devices, I think that should show your multi device. If both cards are not shown in the output of the first command obviously the multi can never work. If the cards are shown but there is no multi device you will have to find an error message somewhere to give more info on why.


(Len) #9

Also, A slightly easier way is to use zita-ajbridge to add the second delta. zita-ajbridge now has the -S option that can be used when the two cards are hardware synced.


(bassman_chris) #10

Thank you Len! I have zita-ajbridge on my machine

But what is the next step? I’m a newby in linux so for me it is not clear what I have to do.
So I have a word clock cable and a spdif cable. for zita I need the word clock, I think.

Ok, when I start ardour, new project, I got this screen.
I press start and only have 10 inputs.

So when I start first of all qjackctl and open the options, I have this options:

Is there everything right?

Can you explain me step by step? I am sorry but I came from windows and try to learn linux, but it’s not so easy for me.
Thank you so much


(Chris) #11

You should be able to use either, but you will need to use the configuration program (envy24control) to change the clock source from internal to word clock or from internal to S/PDIF on the second interface. You may have to install the alsa-utils package to get the envy24control program if it is not installed on your system already.
Connect the appropriate cable between the two devices, make sure to set one device to internal clock, connect the cable to the output of that interface, connect the cable to the input of the device using word clock or S/PDIF clock.
I have never had two of the same type of card installed in a computer, so I do not know how the two different cards will be identified so that you can make sure you are setting the appropriate device to external clock. See below.

You will need to start jackd using the primary card, then start zita-a2j for the recording side and also zita-j2a for the playback side. should be something like (not exactly, see notes below):
zita-a2j -S -d HW:M1010LT-2 -r 44100 -c 8
zita-j2a -S -d HW:M1010LT-2 -r 44100 -c 8

Note that I just made a guess for “M101LT0-2”, and assumed that if the cards are usually called M1010LT then there would be something to distinguish the first card from the second. I do not know how the two cards will actually be named. Look in /proc/asound/cards and see what names are there in the [ ] bracket characters.
The -r argument is of course the sample rate, it will need to match what you set for the primary card, and you will have to change it if you change the sample rate of the main card.
The -c argument sets the number of channels to use, I assumed 8, but I think maybe you can use 10 if you want the 8 analog inputs and the S/PDIF also.

Note that you can run the cards without synchronizing the clocks by removing the “-S” argument for the zita programs, but in that case it will cause the audio to be sample rate converted to account for the very slight mismatch in sample rates when using unsynchronized clocking devices in two cards. Assuming you can find the correct place to change the clock configuration there should be a slight theoretical advantage to synchronizing the card clocks. Whether that is audible enough to be worth the effort of connecting and configuring the two cards you will have to decide for yourself.
If you want to try running without synchronizing you still need to check /proc/asound/cards to find the correct names, but then with no configuration changes to the cards you can start jackd using the first card, then load the zita programs:
zita-a2j -d HW:M1010LT-2 -r 44100 -c 8
zita-j2a -d HW:M1010LT-2 -r 44100 -c 8

Whether the cards are synchronized or not, loading zita-a2j and zita-j2a will cause new devices named zita-a2j and zita-j2a to show up in the jack ports list, you can use the connections window of qjackcontrol to connect them just like the primary card which shows up as “system” .

If that works and you like to use the two card configuration always, you can have qjackcontrol start the zita programs for you automatically. In the Options tab of QJackcontrol check the box for execute script after startup, and put the two commands into that box with a ; character separating the two programs, and a & character after the end. The ; separates two commands so that they can be distinguished from one long command, and the & character means keep running after starting a program, do not wait for it to finish before going to the next task. So in the execute script after startup box you would put something like:
zita-a2j -d HW:M1010LT-2 -r 44100 -c 8; zita-j2a -d HW:M1010LT-2 -r 44100 -c 8 &

Then in the execute script on shutdown you can put this to stop the zita programs:
killall zita-a2j; killall zita-j2a

I do not have two of these cards myself, so some of the information I am having to make my best guess based on how it should work, but if you get stuck you can post back here and someone should be able to help.


(Chris) #12

If you are not familiar with using qjackcontrol, there is a connections window that lets you connect the audio input ports to Ardour tracks and busses, and Ardour tracks and busses to audio output ports, but you do not have to use that. In Ardour there is a window for audio connections that I think is easier to use, so once you have both cards running it is probably easier to just use Ardour for making connections.


(Len) #13

I normally also use the -j name switch (like -j D1010-out and -in) so that the device shows up as D1010-* rather than zita. Also, setting -c100 will give 10 outputs and 12 inputs without having to worry about how many are actually there, don’t worry about the error that it could not find 100 channels :slight_smile:
I use zita-ajbridge quite a lot (for testing) and have a script that detects USB devices and auto connects then to jack, so having them named by the device name is less confusing.


(bassman_chris) #14

Thank you very much for your response.
For me the name of the card is not clear.
when I open the card file, the name is M1010LT_1 and when I use the string, the name is wrong


(Chris) #15

I made a mistake in the naming, try with hw: as the prefix (lower case) instead of HW:
I thought either would work, but I found after experimenting that using HW results in an error, hw will work, no prefix also results in an error.

I do not know of a way to determine which physical interface is M1010LT and which is M1010LT_1 other than experimenting, try connecting a source to an output port and see which physical interface the sound comes from.


(J Rigg) #16

Just saw this thread. FWIW I’m still using three Delta 1010s set up as described here (and linked in an older reply to the thread):

I’ve used this method since 2006 and it’s still working perfectly on Debian 9.
Note that it won’t work with qjackctl as that doesn’t recognize virtual devices using ALSA pcm_multi.


(J Rigg) #17

@bassman_chris: “I have everything tried from the links above but I didn’t get the second delta worked.
when I use this command
jackd -R -d alsa -r 44100 -C multi_capture -P multi_playback
I got this answer:
ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL multi_capture
control open “multi_capture” (No such file or directory)”

Check your .asoundrc. If you haven’t specified the multi_capture and multi_playback devices in that file correctly alsa-lib won’t recognise them.


(bassman_chris) #18

Hi Len, now it works! I only use the first string
zita-a2j -S -d hw:M1010LT_1 -r 44100 -c 8

and In Qjack I see the inputs from both cards

At the moment I have not so much time, but next week I will try to record.

In ardour I can see 12 capture from card 0 and 8 from zita card 2
Now I am happy and I think it will work.
Update next week!
Thank you guys
All the best