Finding hardware inputs

No. Two devices connected to a USB hub is still two devices, as far as the OS is concerned.

Robin has already given an excellent answer for this but, for a little more info, on Windows, there are two types of driver:

The standard Windows desktop driver provides the same sort of capabilities (actually quite a bit less) as PulseAudio does on Linux. But it’s not really good for “pro-audio” use, for a number of reasons.

For “pro-audio”, the standard used on Windows is ASIO. You would, typically, download the specific ASIO driver for your Audi device from the vendor.

The ASIO drivers for the Focusrite will only allow you to use one device at a time, for the reasons Robin described. The same is true for ASIO drivers for most other audio interfaces.

Cheers,

Keith

Robin, what I’m seeing here is that the ARDOUR_ALSA_EXT shell variable appears to set the interface rather than add it. In other words, when I choose “hw:1” I get the first focusrite device and when I choose “hw:2” I get the second one (regardless of which one I choose via the GUI when Ardour starts).

I tried to search for something that talks about what shell variables Ardour uses, but I couldn’t find anything. I notice when it starts up it appears to look at various config files. Would any of these help me?

I didn’t actually download the Ardour source. I just got the binaries for Linux and Windows (and mostly planned to use it on Linux). I didn’t really think I’d be up to the task of trying to build it.

Using more than one sound card is in the “advanced user” category.

The main question is why you need more than one? Are you recording a drum kit and want to use more than two microphones or something similar?

I think you should follow Mr Gareus’s insights because he is a real professional.
If you want to use two sound cards, you have got to have a master clock.
Maybe you can use the additional ins and outs of the second device and connect them to your main sound card, via adat or spdif ( jack or optical connexions) I think the focusrite does not have AES connexions.

I had one 2-input Focusrite, and I bought a 2nd one, not realizing the ramifications of using 2 separate devices (should have asked here first!) I’ll probably return the 2nd one and get a 4 input Focusrite. But as long as I’ve got the two of them I would like to see if they can be made to work.

Hello Mike,
I’m a newbie in multiple audio interfaces configuration but I’ve managed to make my 2 soundcards (PCI and USB) work together. In fact, I’ve created another topic wondering if I could verify the sync of both of them because I’m not completely sure that they were 100% sync…

In order to see the new INPUTS and OUTPUTS, I’ve done this…

1- List the availables soundcards…

In my case, Nº3 is my main PCI card and I want to add the audio interface Nº4.

2- Start Ardour in a terminal window, specifying the secondary soundcard…
ARDOUR_ALSA_EXT=“hw:4” Ardour8

3- In the Audio/MIDI setup dialog choose ALSA as Audio System and the main audio interface as input and output device.

02. Audio-MIDI_setup

4- If you add a new track, you’ll be able to see the new external inputs (from your added soundcard) and the system inputs (from your main soundcard.

5- Same as before with the outputs.

Well, I hope I helped you.

Hi L_Pro,

Thanks for posting this. It sounds like the ARDOUR_ALSA_EXT shell variable worked for you. I wonder if the PCI / USB vs 2 USBs makes a difference. I’ll try it again following the steps you did. I went through a slightly different sequence of steps when I tried it.

Mike

One difference is probably that the two interfaces have easily distinguished names. If you have two of the same interface there will be two selections in the Ardour device selection, but they probably have the same name. I do not have two identical interfaces to try to check whether there is a number prefix or suffix to help you tell them apart.

I noticed that in the clock sync question that @L_Pro asked, @x42 mentioned that device names could be separated by a semicolon. So I tried this:

ARDOUR_ALSA_EXT="hw:1;hw:2" Ardour8

That “almost” works. I see both the Focusrite devices and I can record from them both. As far as I can tell they’re in sync. From the other discussion I’m not sure if I’ll have problems with the separate clocks at some point, but it appears to be OK.

The only remaining problem is that, when I start a session this way, I can’t figure out how to get any output when I play it back. However if I import the tracks into a new session then they play fine.

As far as I can tell, by output device is zero:

cat /proc/asound/cards

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf1620000 irq 33
 1 [USB            ]: USB-Audio - Scarlett Solo USB
                      Focusrite Scarlett Solo USB at usb-0000:0d:00.0-1, high speed
 2 [USB_1          ]: USB-Audio - Scarlett 2i2 USB
                      Focusrite Scarlett 2i2 USB at usb-0000:00:1a.0-1.2, high speed

But adding that to the EXT variable doesn’t seem to help.

Without the ARDOUR_ALSA_EXT variable you’re probably seeing an “USB” entry in Ardour’s Audio/MIDI Setup, right?
If so I’d try setting ARDOUR_ALSA_EXT to “hw:2”. That way you should have a “system” entry in the Master output and an “extern”.

If the Audio/MIDI Setup is showing USB_1 you’ll have to set the variable to “hw:1”.

Then it’s just a matter of figuring out which of the “system” or “extern” to connect Master to, to get sound from the Focusrite you have connected to your speakers.

I think that is adding the two USB devices as both “extra” interfaces, using the resampling software.
What do you set as the input and output device in the Audio/MIDI setup window in Ardour?
The intention with the ARDOUR_ALSA_EXT environment variable is that you select one device as usual in the Audio/MIDI setup window, and the device set in the environment variable is added as an additional device using resampling to keep the audio data in sync with the device you select in the setup window.
For example set ARDOUR_ALSA_EXT=hw:2 and then in the Audio/MIDI setup window you would pick Scarlett Solo USB as the primary interface. Or you could do the reverse, set hw:1 in the environment variable, then pick Scarlett 2i2 USB as the primary interface in the Audio/MIDI setup window.

The Audio Connections dialog in the Window menu is the location to verify that the master bus is connected to the audio output you intend to use. As L_Pro pointed out above the device selected in the Audio/MIDI setup dialog window is going to be labeled as “System” with the expectation that is the main interface you want to use.
On a new session the master bus output will be connected so System outputs 1 and 2, but an existing session opened with a different audio device configuration than the last time it was opened will wait for you to manually select the connections you want, and will then attempt to connect automatically the next time the session is opened.

@peder,

I’m not sure what you’re saying. As I mentioned above I am doing:

ARDOUR_ALSA_EXT="hw:1;hw:2"

There is no Focusrite connected to speakers, the only issue I have left is playing the result, through my normal computer output (which I have selected with the Audio/MIDI window.) It seems like using the shell variable to add the other interfaces somehow “disables” what I’ve selected with the GUI. This is why I have to specify both hw:1 and hw:2 with the shell variable rather than selecting one of them with the GUI.

At least that’s what’s happening as far as I can tell. But it’s certainly possible that I’m confused somehow.

Note that a session that does play back has the same setup in the GUI as a session that doesn’t.

OK, so you are in fact using three sound cards: the built-in HDA Intel PCH as “system” and the two Focusrites as “externs”?
When you import the tracks into a new session and they play fine; are you also using the variable to get access to your Focusrites?

It could be that the variable only really works for one extra card. In that case you have to connect your speakers to one of your Focusrites and set one in the Audio/MIDI Setup and the other one in the variable.

If it does indeed work with two extras you should be able to connect the Master bus to the “system” (aka your Intel PCH card) and get audio.

I have to admit it never occurred to me that you might intentionally use the PCH for output when you have two Focusrite interfaces sitting on the desk. I think with that additional information then your inclusion of both hw:1 and hw:2 in the environment variable is the correct approach.

The rest of what I wrote previously still applies, you need to go into the audio connections window and verify that the master bus is connected to the correct system outputs. Usually 1 and 2, but sometimes it could be wired in surprising ways, like 1 and 2 is headphone output, and 3 and 4 are the standard outputs, or reversed. If routing audio to 1 and 2 does not give you the output you expect you may have to try others (assuming that there are additional output channels listed).

2 Likes

Sorry about the confusion. Maybe I should have written more about my … workflow? There are no Focusrites on my desk. They’re in another part of the house connected to the instruments and microphones. I take a laptop in there when we record stuff. I don’t do any playback, editing, or anything else in there. There isn’t even room to sit down.

According to what everybody says, I should be selecting the first device in the startup menu and then the 2nd one with the shell variable. But that simply doesn’t appear to work for me.

This is what I see when I start Ardour normally and select the Solo as input:

Screenshot at 2023-12-16 15-40-26

I see exactly the same thing when I start it with ARDOUR_ALSA_EXT=hw:2 also selecting the Solo in the startup screen.

But when I do: ARDOUR_ALSA_EXT=“hw:1;hw:2” and then select either the Solo or None I see:

Screenshot at 2023-12-16 15-48-25

So it appeared to me that I needed to specify both devices with the EXT variable. But it seems that, according to what everybody is saying, that’s not the right way to do it.

Now, as I was just trying this once again, I noticed something new. When I select the Solo with the startup screen and the 2i2 with the EXT variable, I actually get this error message:

ardour-request-device: Failed to acquire device: ‘Audio2’
Device or resource busy

I didn’t notice this before because it only shows up in the terminal window that I started Ardour from. It doesn’t appear in the Ardour Log window, which was what I was keeping an eye on.

Regarding the outputs … Yes, I did finally get that fixed. I was not “understanding” exactly what needed to be connected the first time I tried it. Once everything is hooked up properly it does play back just fine. I do get a flashing “no align” light, which I assume is because I’m not able to select the devices in the proper way.

So (maybe) my only problem is to figure out why I can’t select one device via the startup and a 2nd one via the EXT variable. I assume that “Failed to acquire audio 2” is related to that.

I’m sorry if I’ve appeared a bit dense. I realize that I’m trying to do “advanced” things with Ardour as a new user. But the only reason I’m attempting to switch to Ardour is so that I can do these things :slight_smile:

Can you post a screenshot with the tabs Hardware selected? Those in your screenshot above are not the physical input and outputs available, but Tracks and Busses: they may or may not correspond to the inputs/outputs available in your session.

I tried starting an empty session with the ALSA_EXT variable, and this is what I see (I have just one USB and the computer internal card):

image

Two inputs from the USB-Card and two from the internal one, same for the outputs.
Maybe you just have to manually connect the channels?

2 Likes

Hi Mike, I’ve been following this topic which, by the way, found very interesting.

This is a short topic about the “no align” blinking led warning. I think is worthwhile reading it and go deeper in case you need.
Have a nice day!

I just wanted to thank everyone who has helped my on this question. Unfortunately I got too busy with work to spend any time on this in the last week or so, and I think I’m probably going to return the two input Focusrite before the return period expires so that I can get the 4 input one.

I guess I’d better try to verify first, with Focusrite, that all four of these inputs really are on one clock, since I see there are two separate monitor outputs and monitor volume knobs. Hopefully it’s not just two individual “devices” in one box.

In any event, I’ve learned a lot from this thread and I now feel motivated to try to build Ardour from source so that, in the future, I’ll have more options to figure what’s going on under the hood.

I really appreciate all the time everyone has taken to help me on this!

3 Likes

That isn’t a problem, Focusrite multichannel devices are used frequently, I don’t think I have ever heard of any problems with them. Seem to be a good choice.

Hi
Im also finding this topic very interesting.
I have got my two interfaces (Lexicon Alpha and Roland UA22) set up and working, with no error messages and no No Align light.
When I test record myself singing into two adjacent microphones, one plugged into each device, they both record nicely,but the there is a small offset between the recorded tracks which causes phasing.
Can you tell me, would this be because of different latencies of the two interfaces?
image
Is that what this message in the terminal indicates:
tart clocking
Setting time domain
locate to 0 took 2411 usecs for 6 tracks = 402 per track
start clocking
locate to 0 took 6425 usecs for 6 tracks = 1071 per track
locate to 0 took 5851 usecs for 6 tracks = 975 per track
locate to 1234800 took 4432 usecs for 6 tracks = 739 per track
locate to 1223775 took 5008 usecs for 6 tracks = 835 per track
locate to 0 took 4969 usecs for 6 tracks = 828 per track
removed /home/mel/Music/Audio/Untitled-2023-12-31-13-50-13/Untitled-2023-12-31-13-50-13.pending
Graph::drop_threads() sema-counts: 0, 0, 1
PluginWindow deleted for 0x564639427ec0
AlsaSeqMidiOut: MIDI OUT THREAD STOPPED
Slave Process: Playback Buffer Underflow, have 50 want 4096
ALSA SLAVE-device latency play=4112 capt=16 changed:1
AlsaSeqMidiIn: MIDI IN THREAD STOPPED
Slave Process: Playback Buffer Underflow, have 50 want 4096
ALSA SLAVE-device latency play=6160 capt=16 changed:1

If so, would it be likely that using two of the same interfaces would reduce/remove this issue?
Many thanks