ALSA backend has no inputs?

I noticed that when using ALSA as ardour backend the ardour tracks are not exposed to other applications via virtual input ports, whereas they are exposed via jack2.
Application ouput ports aren’t visible in ardour either.

So how do people connect other applications to ardour in ALSA?
The last time I tried with snd-aloop, these loopback devices weren’t visible in ardour either, i.e. I guess that’s not it.
Other applications appear to expose ALSA input ports.
So is my ubuntu install maybe buggy?

You cannot do inter-application routing with ALSA (*) - that is (part of) why JACK (and now PipeWire) exist.

(*) at least not in any sane way.

I’m pretty sure other applications do it though?

For example the rtmidi library is able to create virtual MIDI ALSA input and output ports.

MIDI is entirely different from audio. The ALSA sequencer API does inter-application MIDI routing, unlike the ALSA “raw MIDI” device which only provides hardware devices.

Are you talking about MIDI or audio?

1 Like

I was talking about both as having ports for either would be useful.

I guess your statement from above was about audio then, fair enough and thanks for the clarification!

Since I need external applications to be able to interact with ardour, I’ll have to stick with jack2 then even though I suspect it to cause increasing MIDI latency (the longer I play my MIDI drums, the worse it gets; a restart usually helps).

jack has no variable impact on audio or MIDI latency; jack2 when used in its default mode adds an extra buffer of latency but this does not change over time; jack2’s sync mode disables this.

You can choose which ALSA MIDI backend is used:

as

1 Like

Hello tripleh

Have you tried the LSP SEND and LSP RETURN plugins?

You can use ardour with pipewire-jack and then ardour can connect to applications that work with pipewire, but in some cases on some systems this does not work correctly.

For those cases there is a reasonably simple and elegant way to connect ardour with the “outside world”, that is, the sound of your pc in linux ubuntu.

Install the LSP plugins: Linux Studio Plugins Project, follow the instructions included in the readme to the letter.

These plugins in version 1.2.20. They offer the possibility of using the shared memory space of the system.

When you have installed the lsp plugins you will have seen several folders, one of them is called jack, which is the standalone version that works in pipewire, that is the one we will choose and look for in our system menu (it will be there if you have installed it correctly) the LSP SEND.

Once opened, open QPWGRAPH Or PATCHANCE, and inside you will see LSP waiting for you to connect it to something, you can open VLC or any other player, firefox, obs, etc and connect it to LSP SEND, you will probably have to lower the output volume of the plugin once you have verified that it is receiving a signal from vlc or the program you have used, as a sound source.

In the LSP SEND itself there is a space that says send, there you write a name for example vlc.

Then in Ardour create a track and insert the LSP RETURN plugin and in the space that says return you write the same name as in the send and in theory you should be able to listen in ardour what the send plugin sends, the only thing is that if you want to record what LSP return plays you will have to record it using another track connected to the LSP return track.

As I mentioned at the beginning, ardour works for me (linux) without much problem with the pw option, but I know that there are people for whom it does not work well or who do not want to make changes and modifications to the sound system, but do want to connect ardour with the rest of the sound on the PC.

Greetings

Why do you believe you need a plugin to do this?

I now explicitly tried to switch to ALSA sequencer for MIDI, but did not observe ardour to create any MIDI inputs nonetheless (I use aconnect -l).

Did I miss anything or should I create a feature request for this?

Imho this is unrelated as I’m interested in ALSA and not in pipewire.
The last time I tried pipewire for music production it caused me more issues than it solved. Possibly it improved in the meantime, idk.

And yes, I believe it should work without plugins.

There’s also a crude hardware workaround available for ALSA audio by just using the internal PC sound card for borwsing etc. and allowing ardour to handle the sound interface used for music production. Then you can put a cable from the internal PC sound card to an input of the external sound interface. It obviously has the disadvantage of having to mix everything together (most internal sound cards only have a single output port after all) and occupying one input port.

Hi, I clarify that I normally use ardour with ALSA, I don’t use pipewire for sound production, but sometimes I’m interested in connecting ardour with other applications on the system.

I use the “solution” of the lsp plugin sporadically when I connect online with a friend (with zoom) who travels frequently and who usually only has a laptop, I record a reference and he listens to the output of ardour to see if the idea convinces him and from there we develop the idea.

I do it this way so as not to have to make configuration changes in ardour because although I can use it with the pw-jack option in principle it works well but it is not a configuration that I can repeat quickly, repeatably and stably, at least with my knowledge.

I know there are other ways to connect ardour to the rest of the PC’s sound system. In fact, before pipewire and pulseaudio, jackctl was used (and I’ve played around with it a lot but it wasn’t very comfortable or easy to use at times), but today, for something sporadic and quick, the lsp plugin is useful to me.

With the plugin I mentioned before, ardour works with alsa, while these plugins send is working with pipewire and return is inside ardour receiving the signal.

It’s a better option than using a cable connecting the output of the motherboard’s audio card to the input of the audio card used with ardour (with ALSA).

Paul, if the plugin question is for me, I know there are other ways. I do it this way simply because it is something quick and I don’t have to change anything in ardour. For the moment, given something specific, I haven’t started to investigate how to do it in a more “adequate” way or better in terms of audio quality.

In any case, what would be your option today to connect ardour (with alsa) with another program? How was it done before (and is it still done, whoever has it configured like that), with jackctl? With certain lines in the console?

And triplet, I have intervened in the conversation because you asked how to communicate ardour with the system sound. I now do it this way, but not for music production.

My system, like some (not all), today comes with pipewire. In the past I used jcakctl, but it was a bit cumbersome at times and not always stable. Today, pipewire simply works, but if you use ardour with ALSA, you have to do it another way.

There are a few ardour users who occasionally need to connect ardour to the system sound and not all of them get pw-jack working, my approach is using the lsp plugin.

But for something more serious and complex, I would like to know how to communicate ardour with other programs apart from the pw-jack option, and keeping pipewire in the system, in a simple and stable way.

greetings

I think I understand your approach now:
You use two ardour instances, one with a pipewire backend and the other with an ALSA backend and connect them over the aforementioned LSP plugins. That’s an interesting and backend independent approach to connect applications, thanks for mentioning it!

I contest this. Well, on my vanilla Fedora.
ALSA engine goes over 100 all the time, while Jack keeps it at 50-60.

I found ALSA to be unusable, well, if you count the debug build.

ALSA is also coupled with Pipewire, which gives it a multiplexing feature.

Jack always did that.

With Jack, you could, essentially, quit the plugin workflow, and just interconnect standalone, plugin hosts and other apps. Built in plugins and out/in ports help also.

The problem with that is additional overhead. There is a context switch when using standalone apps. This is significant (even on modern machines). Also you’ll have to keep the state/settings of those external apps in sync. Plugin state is directly saved with the hosts’s session.

Also keep in mind that pipewire can resample audio (which may or may not lower the quality) without the DAW knowing about it. The same is true for effective I/O buffersize (which changes latency).

One of the main benefits of Ardour requiring exclusive access to the soundcard(s) is that no other application can change the soundcard’s hardware settings while Ardour is using it.

2 Likes

This is odd since JACK uses ALSA under the hood.

Keep in mind that Ardour/ALSA reports worst case DSP load, while JACK reports average. It’s one of the things that JACK got wrong. It doesn’t matter if sound I/O only works reliably on average.

With the identical settings Ardour/ALSA will have a lower average load compared to JACK, but average load does not matter. Check the dropout (xrun) count with JACK.

1 Like

Did you mean QjackCtl or jackctl?

Because QjackCtl by Rui gives you a load-on-start Patchbay.

With regexp matches.

It is odd. If I find some time, I’ll make a showcase vid.

Hi triplet

I use one (or you can use several if you need to) LSP SEND plugin in its standalone version (which in the installation instructions they call jack), you can also use the vst version with CARLA HOST, although it has given me some problems.

The LSP SEND works with pipewire so it appears in the qpwgraph or Patchance connection managers or in Carla host (the latter configured to use pipewire).

For example, in my particular case, I connect zoom with LSP SEND.

On the other hand, I have Ardour (A SINGLE INSTANCE) running with ALSA and I have a channel with the LSP RETURN inserted in it.

In both LSPs I write the same word, for example zoom, in both in the space that both have to write what will be used in the shared memory space of the system.

This functionality is available in LSP SEND, LSP RETURN and LSP MIXER, in the most recent versions as of today (March 2025).

For my particular case, which is sporadic, it is more than enough. For more complex configurations I have not tried it, although in that case you might be interested in using it with Carla host.

Anyway, to find out more about these plugins, in this forum there is their creator Vladimir Sadovnikov, SadKo, who can surely clarify any doubts you may have about their use.

Regards

1 Like

hello ppqn

I meant QjackCtl

You can use the QjackCtl pathbay, but I don’t use QjackCtl because if you modify things in it you can unconfigure the system sound (if you don’t know how to do it, you can).

Also, the QjackCtl pathbay is the same as qpwgraph , personally I prefer Patchance, its display is clearer, more organized.

I have played a lot with QjackCtl, in the past it was almost obligatory to use it to have “pro” audio on Linux systems before pulseaudio and especially pipewire, but the configurations did not always work as expected and sometimes it was a bit frustrating, nowadays pipewire just works, it is not a rocket but it does its job, even so Ardour is better with ALSA.

I am not a software programmer, or anything like that, I speak as a Linux system user for some time now.

greetings

1 Like