Casading of two RME Digifaces in order to record 48 tracks simultaneous

Hi,

I want cascade my two RME Digifabes in order to record 48 tracks simultaneous. I synchronize the two Digifaces via Wordclock.

Operating System: Ubuntu Studio 15.10 Wily Werewolf, 64-bit version

DAW: Ardour 4

The HDSP control-Software and the HDSP-Mixer works very well, I can see both Digifaces and have access. I can do the settings on the Digifaces.

But I can’t see the second Digiface in Ardour, when I select the Inputs. I see only the first Digiface with the 24 Inputs and Input 25 and 26 (Spdif Stereo).

I have read about the .asoundrc-file in order to aggregate the twao Digifaces to a big “double-digiface”. I have make so a .asoundrc-file, you can further down
but it don’t work. I cant see the second Digiface in Ardor and in Jack-Control.

I have copied by root-rights this file in the home-directory of the audio-user.

After this expierience of no-function, I hafe remove this file from the computer.

I’m not ao programmer or software-engeneer, who can help me in oder to reach the aim to cascade the two digifaces in order to record 48 tracks.

Here the .asoundrc-file, what is wrong ?

Or I neet an other solution for this problem?

In my opinion have the impression, this is a software-problem.

Kind Regards

HoJa

Agregation of two RME-Digifaces to a “fake” Interface in order to use 48 Input-Channels".

0 [DSP ]: H-DSP - Hammerfall DSP

RME Hammerfall DSP + Digiface at 0xf7e00000, irq 17 PCI-Expresscard via PCIle-slot

1 [PCH ]: HDA-Intel - HDA Intel PCH Internal soundcard, not used for recordimg

HDA Intel PCH at 0xf7f00000 irq 28

2 [DSP_1 ]: H-DSP - Hammerfall DSP

RME Hammerfall DSP + Digiface at 0xf5400000, irq 16 PCI-PCMCIA-Karte via PCI slot

card1: Channel 1-26 PCI-Express

card2: Channel 27-52 PCI

pcm_slave.rme_digiface_s {
pcm digiface_0
}
pcm.rme_digiface_1 {
type hw
card 2
}
ctl.rme_digiface_1 {
type hw
card 1
}
pcm.rme_digiface_0 {
type hw
card 0
}
ctl.rme_digiface_0 {
type hw
card 0
}
ctl.rme_digiface_52 {
type hw
card 0
}
pcm.rme_digiface_52 {
type multi;
slaves.a.pcm rme_digiface_0;
slaves.a.channels 26;
slaves.b.pcm rme_digiface_1;
slaves.b.channels 26;
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;

Use rme_digiface_1

bindings.26.slave b;
bindings.26.channel 26;
bindings.27.slave b;
bindings.27.channel 27;
bindings.28.slave b;
bindings.28.channel 28;
bindings.29.slave b;
bindings.29.channel 29;
bindings.30.slave b;
bindings.30.channel 30;
bindings.31.slave b;
bindings.31.channel 31;
bindings.32.slave b;
bindings.32.channel 32;
bindings.33.slave b;
bindings.33.channel 33;
bindings.34.slave b;
bindings.34.channel 34;
bindings.35.slave b;
bindings.35.channel 35;
bindings.36.slave b;
bindings.36.channel 36;
bindings.37.slave b;
bindings.37.channel 37;
bindings.38.slave b;
bindings.38.channel 38;
bindings.39.slave b;
bindings.39.channel 39;
bindings.40.slave b;
bindings.40.channel 40;
bindings.41.slave b;
bindings.41.channel 41;
bindings.42.slave b;
bindings.42.channel 42;
bindings.43.slave b;
bindings.43.channel 43;
bindings.44.slave b;
bindings.44.channel 44;
bindings.45.slave b;
bindings.45.channel 45;
bindings.46.slave b;
bindings.46.channel 46;
bindings.47.slave b;
bindings.47.channel 47;
bindings.48.slave b;
bindings.48.channel 48;
bindings.49.slave b;
bindings.49.channel 49;
bindings.50.slave b;
bindings.50.channel 50;
bindings.51.slave b;
bindings.51.channel 51;
bindings.52.slave b;
bindings.52.channel 52;
bindings.53.slave b;
bindings.53.channel 53;

}

JACK and multiple audio interfaces.

Hi, I don’t know whether I get this too simple, but I assume you are using JACK with ardour and JACK can only deal with ONE audio-interface. In order to use more than one audio-interface, you need to do someting like alsa_in -d hw:[your-second-hdsp-alsa-device-id] -j [whatever-you-want-your-second-hdsp-device-to-be-named-in-jack].

Only then, you would see your second audio-interface.

There is more information here http://www.jackaudio.org/faq/multiple_devices.html

@robertaramar: the advice in the JACK FAQ concerns devices that do not share a sample clock.

Two paired RME Digifaces do share a sample clock (or can). That advice is not is not correct in this case.

@hoja: i don’t want to try to solve this problem on a web forum. It will take 10-20 times longer than on IRC. Please find us there. My nick there is “las”. I am generally online most of the daytime, US Eastern time, even more so on weekdays.

One issue with your files is that they assume that the order of PCI device detection is constant, which is not always true. I doubt, however, that this is your problem.

Thanks Paul for the note, I already had a kind of a guess that this just was too simple to be the solution.

Thanks Paul for the note, I already had a kind of a guess that this just was too simple to be the solution.

Hi Paul,

thanks to your hint. I have set fixed the internal Intel Soundcard as card 2, Digiface PCI-Express is card 0, PCI-Digiface is card 1.
I have copied the asoundrc by root-rights into the home-directory from the audio-user. Right-setting: all can read and write.

After this action: Reboot from the system

But the problem is still alive. I can’t se the second Digiface-Inputs in ardour. In Jack-Control I see both Digifaces and the internal intel-card.

Kind regards

HoJa

@HoJa: if your .asoundrc is working, JACK should see a single virtual device with 52 capture and 52 playback ports. What command are you using to start jackd? It won’t work unless you specify the virtual device in the command, eg:
jackd -d alsa -d rme_digiface_52

I’ll also add that I’ve been using multiple clock-synced sound cards for about 10 years now. You may find some useful info here:
http://www.jrigg.co.uk/linuxaudio/ice1712multi.html

That web page deals with using multiple Delta 1010s, which have the additional complication of different numbers of input and output channels (hence require separate virtual devices for input and output), but much of it should still be applicable.

jrigg: i went over this with him on IRC. He doesn’t want to start JACK from the command line and no JACK control GUI enumerate/discovers PCM names, only card names.

I’m going to add a 2-step hack to our ALSA backend that will allow (a) specifying the device name via an environment variable (b) enumerating all PCM names, not just all card names. Problem is time to get this done.

A workaround in the meantime could be to set up a menu item in whatever window manager the OP is using, to launch the required command (or script containing the command) to start jackd.