05-15-2021, 03:05 PM | #1 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Using more than one RME card?
I've finally taken a more committed plunge in to migrating to linux for the studio machine, on the whole today's start has gone pretty well and I think this could happen but for one major showstopper and some snags.
The (potential) major showstopper is that the studio is built around two Hammerfall cards (a Digiface and a Multiface), they are I/Od up to the gunnals 32 channels of ADAT and 8 audio IO on the Multiface + at least one of the spdif in use too. I use a lot of ReaInsert! I've got both cards working, but I can't work out how to address them both from Reaper (I can only select one card at a time). With ASIO in windows I select the first input/output of the first card and the list goes all the way down to the last input/output of the second card, job is a good'un. How do I recreate this functionality under linux? Of course having waited multiple years for Klinke to fix recording send automation on the MCU plug he's done it in the week where I've just found out it only works in windows :-/ none of the other implementations do folder paging anywhere near as good, has anyone managed to recompile his MCU controller to work with linux? All assistance gratefully received!
__________________
http://theponycollaboration.bandcamp.com/ |
05-15-2021, 03:52 PM | #2 |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
You might need to use JACK. I used to use two M-Audio PCI cards and to get both accessable to REAPER I used qjackctrl which has a patchbay where I was able to make both cards show up as one JACK device. I haven't used that setup in a long time, but I remember it was reliable.
|
05-15-2021, 04:01 PM | #3 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks Glennbo,
I just saw another of your posts that suggested I might have to go that way (eugh, as if rebuilding all my I/O aliases wasn't enough already...) On that note, does aliasing the names of the IO work ok when using Jack? Am I going to be able to end up with stuff called useful things 'compressor 1 input L' 'Reverb 2 Output R' etc?
__________________
http://theponycollaboration.bandcamp.com/ |
05-15-2021, 04:51 PM | #4 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
https://forum.cockos.com/showthread.php?t=210218 I've forgotten most of it, but I remember having a script that would fire up qjackctrl which I had set to load my routing in it's patchbay, and then it would launch REAPER all in succession so that by the time REAPER came up, all the connections had been laced up with qjackctrl. |
|
05-15-2021, 11:42 PM | #5 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks again Glennbo,
Looks like I've got to take 2 steps back for 1 forward here, by getting involved with .asoundrc to 'merge' the cards first so I can then build the patchbay in JACK. Just looking ahead a bit, I see (in jack Patch) alsa and Jack have created midi i/o how do I thin this down?
__________________
http://theponycollaboration.bandcamp.com/ |
05-15-2021, 11:59 PM | #6 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
So if anyone can give me a nudge in the right direction with what my .asoundrc needs to look like that would be very helpful.
As a starter for 10 I've got: Code:
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: DSP [Hammerfall DSP], device 0: RME Hammerfall DSP + Digiface [RME Hammerfall DSP + Digiface] Subdevices: 0/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4] Subdevices: 1/1 Subdevice #0: subdevice #0 card 4: DSP_1 [Hammerfall DSP], device 0: RME Hammerfall DSP + Multiface [RME Hammerfall DSP + Multiface] Subdevices: 0/1 Subdevice #0: subdevice #0 And the contents of the .asoundrc file in my home folder are: Code:
defaults.pcm.!card DSP_1 defaults.ctl.!card DSP_1
__________________
http://theponycollaboration.bandcamp.com/ |
05-16-2021, 05:09 AM | #7 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Anyone got any experience using either ALSA_IN and ALSA-OUT (https://jackaudio.org/faq/multiple_devices.html)
or Zita? (http://kokkinizita.linuxaudio.org/li...uickguide.html) Looks like it could be the droid I'm looking for?
__________________
http://theponycollaboration.bandcamp.com/ |
05-16-2021, 05:16 AM | #8 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
From the Zita man page it certainly looks like what I need (especially as the whole lot is tied together with word clock so I don't need resampling), but I don't know what to use for the ALSA device or the Jack client name....
Code:
OPTIONS -h Print command line and options summary. -j <name> Jack client name [zita-a2j or zita-j2a]. -d <device> ALSA device [none]. -r <rate> Sample rate [48000]. -p <period> Period size [256]. -n <nfrags> Number of fragments [2]. -c <nchannels> Number of channels [2]. -Q <quality> Resampling quality [auto]. -S Word clock sync, disable resampling. -I <samples> [0] (zita-a2j only) Latency correction. The value is added to the latency property set on the Jack ports. -O <samples> [0] (zita-j2a only) Latency correction. The value is added to the latency property set on the Jack ports. -L Force 2 channels and 16-bit sample format. -v Print tracing information. EDIT: Found a few tips here: https://forums.cockos.com/showthread.php?t=229045
__________________
http://theponycollaboration.bandcamp.com/ Last edited by rothchild; 05-16-2021 at 06:13 AM. |
05-16-2021, 06:42 AM | #9 |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
One additional bit I remember is that to make the connection in the patchbay of qjackctrl, REAPER needs to be running because you drag and drop the inputs from your sound cards over to REAPER, and then you can save that setup as a patch.
|
05-16-2021, 06:43 AM | #10 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Feels like I'm close, but I'm missing something
Code:
$ zita-a2j -d hw:DSP_1 -r 44100 -S -p 256 -n 2 Can't open ALSA capture device 'hw:DSP_1'. Code:
@audio - rtprio 90 # maximum realtime priority EDIT: Slightly more verbose output Code:
$ zita-a2j -d hw:DSP_1 -r 44100 -S -p 256 -n 2 -v Alsa_pcmi: Cannot open PCM device hw:DSP_1 for capture. Can't open ALSA capture device 'hw:DSP_1'.
__________________
http://theponycollaboration.bandcamp.com/ Last edited by rothchild; 05-16-2021 at 07:25 AM. |
05-16-2021, 07:38 AM | #11 |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Don't know if this will help, but this is the script I had qjackctrl run when it started. The half second sleep commands were to allow the connections to be established before the next command. With this script, midi gets linked to JACK, then zita-a2j linked my second card, and finally REAPER got launched. All this happened by just running qjackctrl.
Code:
a2jmidid -e & sleep .5 zita-a2j -d hw:3 & sleep .5 /home/glennbo/.local/share/reaper_linux_x86_64/REAPER/reaper & Code:
<!DOCTYPE patchbay> <patchbay version="0.4.5" name="4-Channel-Patch"> <output-sockets> <socket type="jack-audio" exclusive="off" client="system" name="system 1"> <plug>capture_1</plug> <plug>capture_2</plug> </socket> <socket type="jack-audio" exclusive="off" client="zita-a2j" name="zita-a2j 1"> <plug>capture_1</plug> <plug>capture_2</plug> </socket> </output-sockets> <input-sockets> <socket type="jack-audio" exclusive="off" client="REAPER" name="REAPER 1"> <plug>in1</plug> <plug>in2</plug> </socket> <socket type="jack-audio" exclusive="off" client="REAPER" name="REAPER 2"> <plug>in3</plug> <plug>in4</plug> </socket> </input-sockets> <slots/> <cables> <cable type="jack-audio" output="system 1" input="REAPER 1"/> <cable type="jack-audio" output="zita-a2j 1" input="REAPER 2"/> </cables> </patchbay> |
05-16-2021, 07:41 AM | #12 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks Glennbo,
I'll have a look through this and see how I might be able to adapt it.
__________________
http://theponycollaboration.bandcamp.com/ |
05-16-2021, 09:00 AM | #13 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
It's always the simple stuff, you have to stop PulseAudio first...
Now it's running I only get two ajbridge IO in Jack, how do I scale it to provide all the IO on the second card? Edit, Sorry, answering my own question, channels is set with the -C flag....
__________________
http://theponycollaboration.bandcamp.com/ Last edited by rothchild; 05-16-2021 at 09:20 AM. |
05-16-2021, 09:27 AM | #14 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
https://jackaudio.org/faq/multiple_devices.html My M-Audio cards were only 2 channels each, so I didn't have the issue you are seeing. Anyway, that doc describes a way to create a pseudo device that is a composite of multiple hardware devices, and they use RME stuff in their examples. |
|
05-17-2021, 11:10 AM | #15 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
I'm starting to think I'm fighting some deeper reliability / config issue here.
I've managed to make it work a couple of times with zita-jbridge and I can reliably make it 'appear' to work, but not actually! (and each time I did get it to work the whole machine ended up crashing) The general recipe is: kill pulse - with pactl -exit launch qjackctl and run Jack (128 frames 2 buffers 44.1) kill pulse - with pactl -exit launch zita a2j (zita-a2j -d hwSP_1 -r 44100 -S -p 128 -n 2 -c 18) launch zita j2a (zita-j2a -d hwSP_1 -r 44100 -S -p 128 -n 2 -c 18) when i look in 'graph' in qjackctl I can see all the necessary zita IO launch Reaper (looking in graph it all gets mapped up sensibly and I can see the zita I/O and the Reaper IO) in Reaper I select the pair I want as my main outs (first 2 channels of the second card) When I play a file in Reaper all the meters play but (more often than not) no sound - when I look at the HDSP mixer app I can see the playback in the second row of meters (which would confirm it's getting out of Reaper and to the card but try as I might I can't get it to the analogue out on the bottom row of the HDSP mixer. Nevertheless, a couple of times (with no seeming rhyme or reason) it has worked and the output meter in HDSP mixer reflected this. The last time it was working I managed to load a more complex project and it was playing ok, there were a couple of stops and the zita instances said something about losing sync and pausing for 10 seconds. Then after a while the interface of the whole machine froze (although the mouse cursor still moved about) although it was still playing audio ok, then a little while after than the audio went to a looping buzz and I hard reset the machine. Since then, with the same start up routine I've not been able to get a noise out of it again. Do I potentially need to try a different distro? I picked this one for an easy RT kernel, I generally would prefer something Debian derived but I'm not picky beyond that.
__________________
http://theponycollaboration.bandcamp.com/ |
05-17-2021, 11:12 AM | #16 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Incidentally I've also tried merging the cards in ALSA and ended up with this as an asoundrc.conf
Code:
pcm.merge { type multi; slaves.a.pcm hw:0 slaves.a.channels 26; slaves.b.pcm hw:1 slaves.b.channels 18; 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; #Multiface 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; } ctl.merge { type hw card 0 }
__________________
http://theponycollaboration.bandcamp.com/ |
05-17-2021, 12:43 PM | #17 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
Note: You have to click the down arrow buttons on the input/output selection lists or REAPER will put a cursor in those panels as if you were going to type in a device name. |
|
05-17-2021, 12:54 PM | #18 |
Human being with feelings
Join Date: May 2021
Posts: 8
|
According to the output of aplay -l, your Digiface is card 0, and your Multiface is card 4. So, it should be:
slaves.a.pcm hw:0 slaves.b.pcm hw:4 Everything else looks right. |
05-17-2021, 01:03 PM | #19 | |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Quote:
Code:
pcm.merge { type multi; slaves.a.pcm hw:DSP slaves.a.channels 26; slaves.b.pcm hw:DSP_1 slaves.b.channels 18; 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; #Multiface 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; } ctl.merge { type hw card DSP_1 } On some of the guides there are also lines in asoundrc.conf using 'ttable' do I need these? (I've not yet seen an understandable explanation of what they do) There's also this version (https://alsa.opensrc.org/RME_Hammerfall_.asoundrc) which has a bit more config before the multi section starts, do I maybe need some of that?
__________________
http://theponycollaboration.bandcamp.com/ |
|
05-17-2021, 01:07 PM | #20 | |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Quote:
__________________
http://theponycollaboration.bandcamp.com/ |
|
05-17-2021, 02:34 PM | #21 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
This last page of that thread, Jack Winter was having me try things to create an ALSA merged device might have some commands or techniques worth skimming over. https://forum.cockos.com/showthread.php?t=210218&page=3 |
|
05-18-2021, 06:02 AM | #22 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks Glennbo,
Yes I do keep referring back to that thread, there's a bit of unpicking to do but it's been helpful so far. Still can't get ALSA to put 'mulit' in the list of cards that Reaper can see though. Am I correct in my understanding that with the merged card approach I shouldn't need JACK? (I should just get one 'card' presented via ALSA that's addresable in Reaper).
__________________
http://theponycollaboration.bandcamp.com/ |
05-18-2021, 08:27 AM | #23 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
https://alsa.opensrc.org/MultipleCards Too bad Jack Winter doesn't frequent this forum as much as he used to. He loves solving puzzles like this. |
|
05-18-2021, 09:30 AM | #24 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
There's some good stuff on there, this is the closest to what I need yet: https://alsa.opensrc.org/RME_Hammerfall_.asoundrc
It's this bit at the beginning that I'm having trouble deciphering, I think I need some of these defs before the 'multi' section Code:
pcm_slave.rme9652_s { pcm rme9652_0 } pcm.rme9652_1 { type hw card 1 } ctl.rme9652_1 { type hw card 1 } pcm.rme9652_0 { type hw card 0 } ctl.rme9652_0 { type hw card 0 } ctl.rme9652_48 { type hw card 0 } pcm.rme9652_48 { type multi; slaves.a.pcm rme9652_0;
__________________
http://theponycollaboration.bandcamp.com/ |
05-19-2021, 08:37 AM | #25 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
https://alsa.opensrc.org/Asoundrc |
|
05-20-2021, 05:34 AM | #26 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
I really appreciate you sticking with me through this Glennbo, that last link has some useful insight, at least I feel like I'm starting to have a better handle on how the alsa conf works.
I'm starting to think that my configuration is actually correct (at least enough that I should be seeing some options for a 'merge' card somewhere), so I'm starting to wonder if it might be more profound. I think I'm going to try some different distros and see if that shakes anything out. Next stop will probably be ubuntu studio but if there are any others that are recommended I'll take a look.
__________________
http://theponycollaboration.bandcamp.com/ |
05-20-2021, 08:25 AM | #27 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
So I found this QaS Config app and it seems it can see my 'Merge' card (as defined in asoundrc.conf (image attached) which is what's making me think the issue might be further downstream than the ALSA configuration?
I can also see the merge card listed with aplay -L Code:
$ aplay -L default Playback/recording through the PulseAudio sound server null Discard all samples (playback) or generate zero samples (capture) jack JACK Audio Connection Kit pulse PulseAudio Sound Server merge sysdefault:CARD=DSP Hammerfall DSP, RME Hammerfall DSP + Digiface Default Audio Device dmix:CARD=DSP,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Digiface Direct sample mixing device dsnoop:CARD=DSP,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Digiface Direct sample snooping device hw:CARD=DSP,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Digiface Direct hardware device without any conversions plughw:CARD=DSP,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Digiface Hardware device with all software conversions usbstream:CARD=DSP Hammerfall DSP USB Stream Output hdmi:CARD=NVidia,DEV=0 HDA NVidia, HDMI 0 HDMI Audio Output hdmi:CARD=NVidia,DEV=1 HDA NVidia, HDMI 1 HDMI Audio Output hdmi:CARD=NVidia,DEV=2 HDA NVidia, HDMI 2 HDMI Audio Output hdmi:CARD=NVidia,DEV=3 HDA NVidia, HDMI 3 HDMI Audio Output hdmi:CARD=NVidia,DEV=4 HDA NVidia, HDMI 4 HDMI Audio Output dmix:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct sample mixing device dmix:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct sample mixing device dmix:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct sample mixing device dmix:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct sample mixing device dmix:CARD=NVidia,DEV=10 HDA NVidia, HDMI 4 Direct sample mixing device dsnoop:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct sample snooping device dsnoop:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct sample snooping device dsnoop:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct sample snooping device dsnoop:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct sample snooping device dsnoop:CARD=NVidia,DEV=10 HDA NVidia, HDMI 4 Direct sample snooping device hw:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Direct hardware device without any conversions hw:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Direct hardware device without any conversions hw:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Direct hardware device without any conversions hw:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Direct hardware device without any conversions hw:CARD=NVidia,DEV=10 HDA NVidia, HDMI 4 Direct hardware device without any conversions plughw:CARD=NVidia,DEV=3 HDA NVidia, HDMI 0 Hardware device with all software conversions plughw:CARD=NVidia,DEV=7 HDA NVidia, HDMI 1 Hardware device with all software conversions plughw:CARD=NVidia,DEV=8 HDA NVidia, HDMI 2 Hardware device with all software conversions plughw:CARD=NVidia,DEV=9 HDA NVidia, HDMI 3 Hardware device with all software conversions plughw:CARD=NVidia,DEV=10 HDA NVidia, HDMI 4 Hardware device with all software conversions usbstream:CARD=NVidia HDA NVidia USB Stream Output sysdefault:CARD=DSP_1 Hammerfall DSP, RME Hammerfall DSP + Multiface Default Audio Device dmix:CARD=DSP_1,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Multiface Direct sample mixing device dsnoop:CARD=DSP_1,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Multiface Direct sample snooping device hw:CARD=DSP_1,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Multiface Direct hardware device without any conversions plughw:CARD=DSP_1,DEV=0 Hammerfall DSP, RME Hammerfall DSP + Multiface Hardware device with all software conversions usbstream:CARD=DSP_1 Hammerfall DSP USB Stream Output sysdefault:CARD=U25 Default Audio Device usbstream:CARD=U25 USB Axiom 25 USB Stream Output sysdefault:CARD=M4U Default Audio Device usbstream:CARD=M4U ESI M4U USB Stream Output Code:
$ aplay -D merge dnbsamples_break33.wav ALSA lib pcm_multi.c:1349:(_snd_pcm_multi_open) Invalid or missing schannel for channel 26 aplay: main:828: audio open error: Invalid argument
__________________
http://theponycollaboration.bandcamp.com/ |
05-20-2021, 06:26 PM | #28 |
Human being with feelings
Join Date: Aug 2019
Posts: 646
|
There are some pretty intense coders in the hardware forums at linuxmusicians.com
You might get some tips there. |
05-21-2021, 08:26 AM | #29 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks PMan,
I've posted over there too, hopefully someone has the chops to help me!
__________________
http://theponycollaboration.bandcamp.com/ |
05-21-2021, 09:07 AM | #30 |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Good luck getting whatever the final piece is. I tried a few variations creating a merged device, but since qjackctrl and zita-a2j were already able to do it, I just used that. IIRC, my primary audio card showed up like hardware and the other showed up as zita-a2j virtual in qjackctrl's patchbay.
|
05-21-2021, 09:48 AM | #31 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Yeah, Zita was also a 'nearly but not quite' solution too.
I may end up going back to it if I can't crack this problem, it's just that for my use the merged solution is much tidier and a lower overhead. Do we know that Reaper can actually see merged devices, someone has suggested that it might "only enumerate hw devices using snd_card_next instead of pcm devices using snd_device_name_hint()" I've no way of knowing this I guess!
__________________
http://theponycollaboration.bandcamp.com/ |
05-21-2021, 10:38 AM | #32 | ||
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
The startup that Jack Winter had me try launching jackd with the following command (goes in the command line box when REAPER is set to JACK), and the merged name was honored by JACK which satisfied REAPER set to JACK, but I still wasn't getting audio from the second card. Quote:
|
||
05-21-2021, 01:53 PM | #33 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
I saw that but to be honest I'd been avoiding it as it seems to be the version that disconnects (or doesn't connect) the clocks
https://jackaudio.org/faq/multiple_devices.html If you're saying that MIDI and ALSA don't play nice (without jack) then I probably ought to re-evaluate whether I'm going the JACK route anyway. The merged card thing seems to be slipping away (I've asked here, on the RME linux board and at Linux musicians and simple answers are not forthcoming) so I may have to try a different tack.
__________________
http://theponycollaboration.bandcamp.com/ |
05-21-2021, 03:47 PM | #34 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
When I was using two PCI cards I started out with JACK to get them both working for inputs and midi, but I think I tweaked some startup file such that ALSA saw it as being in use. When I got my new interface I did a new clean OS install and chose ALSA right off the bat and everything worked. As for clocks, I've since added an ADA8200 and have both units using ADAT in and out such that the audio device is the clock for the expansion mic pre unit on one ADAT cable, and the mic pre is sending it's data back over the second ADAT cable. In my case, the hardware is taking care of the clocks and the two units look like a single 18 input 20 output device. You should also be able to set clock options in alsamixer. You can see the option on the left side of alsamixer, once you have chosen a sound device with F6. Code:
Card: UMC1820 ¦ Chip: USB Mixer ¦ View: F3:[Playback] F4: Capture F5: All ¦ Item: UMC1820 Clock Selector Clock Source [Internal Clock] ¦ ¦ ¦ ¦ +--+ +--+ +--+ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ ¦¦¦¦ ¦¦¦¦ ¦¦¦¦ ¦ Internal Clock +--¦ +--¦ +--¦ ¦ ¦OO¦ ¦OO¦ ¦OO¦ ¦ +--+ +--+ +--+ ¦ 100<>100 100<>100 100 ¦<UMC1820 Clock Sel> UMC1820 Output UMC1820 Output UMC1820 Ou ¦ Front Rear Center ¦ |
|
05-21-2021, 11:48 PM | #35 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Thanks again Gennbo,
I've not really got as far as thinking about MIDI but it's true that my setup in that department is also somewhat complicated (there's 3 io on the two RME cards, a 4 port ESI interface on USB, an Axiom 25 on USB and a TR8 on USB too - all in use) i'm actually just parking another link here for now (will dig in later, off for a bike ride now!) but there's some really good tips in here for RME users https://www.linuxjournal.com/article/7024
__________________
http://theponycollaboration.bandcamp.com/ |
05-22-2021, 12:11 PM | #36 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Quote:
I'm betting that the commands I found for the gear I'm using would work on other gear, as it appears they are just un-muting the first 16 input and output channels, then setting them all to 127. The -c 1 is the audio device number from alsamixer when you hit F6 to select an audio device. Last line saves the setup. Code:
amixer -c 1 cset numid=1 on,on,on,on,on,on,on,on,on,on,on,on,on,on,on,on amixer -c 1 cset numid=3 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127 amixer -c 1 cset numid=9 on,on,on,on,on,on,on,on,on,on,on,on,on,on,on,on amixer -c 1 cset numid=11 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127 amixer -c 1 cset numid=8 0 alsactl store |
|
05-23-2021, 01:58 PM | #37 |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Huge leaps forward today!
Seem to have it working now (using zita-a2j / j2a) just had a session of renaming IO to sensible things and fixing up all my reinsert presets + midi instrument track presets. I've not stress tested it yet and I'm still getting some odd aliasing etc (still getting a bit of 'Detected excessive synchronisation errors' messages from zita which seem to go with the sound going wonky. This is moving in the right direction at least (so much so that now the most significant bummer I'm facing is that Kinke's CSurf plugin doesn't work on linux (and the feedback from the good people in the dev board (and Klinke) is that it's not all that easy :-( I guess I'm going to have to hope that CSI gets round to a more advanced foldering structure... Glennbo (and others) thanks again for your persistence and patience with me! Looks like I might be sticking around. Next step I think is to script the start up recipe so that the machine boots ready to go (still prodding commands in manually at the moment) but it's just nice to have the studio back for now.
__________________
http://theponycollaboration.bandcamp.com/ |
05-23-2021, 03:29 PM | #38 |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
Very cool! Glad you are making some progress. Some tweaks that might help get the performance up are to increase your user limits to allow 98% priority and unlimited memory usage. Also rtirq can be tweaked to give the IRQs servicing the audio hardware higher priority.
|
05-24-2021, 08:08 AM | #39 | |
Human being with feelings
Join Date: Oct 2007
Posts: 784
|
Quote:
I've just got off work and am playing with this some more, taking the -S switch out of the zita start seems to be helping - I may have to revisit how my clocks are organised! Pleasingly I now get to move on to more prosaic questions like 'in xfce how do I get 'Alt' back to use in Reaper?' and 'how do I set it up so I can scroll a preset list in ReaMidicontrol with the mouse wheel (so I don't have to drop the list down and pick an entry each time)?'
__________________
http://theponycollaboration.bandcamp.com/ |
|
05-24-2021, 08:29 AM | #40 | |
Human being with feelings
Join Date: Mar 2008
Location: Planet Earth
Posts: 9,055
|
This old post from Jack Winter outlines it. I'm running Xubuntu and just issued the command "sudo apt-get install linux-lowlatency" in a terminal which installed the lowlatency kernel. Then I followed his steps to set the user limits for my logon.
https://forum.cockos.com/showpost.ph...04&postcount=6 Quote:
https://forum.cockos.com/showpost.ph...74&postcount=4 Last edited by Glennbo; 05-24-2021 at 08:37 AM. |
|
Thread Tools | |
Display Modes | |
|
|