12

I am looking for a Virtual Audio Cable program to pipe audio through. Surely there must be a Linux version or something similar to these awesome Windows programs...

I looked and found one called vsound for Linux...

But it hasn't been updated in almost 11 years so yeah.

I had thought JACK was the answer, but it is rather difficult to use. I mainly want a virtual soundcard that works in conjunction with a hardware soundcard.

Zanna
  • 70,465

5 Answers5

12

One virtual audio cable (VAC), that's free, open source and works on Linux, Windows and OSX is jackaudio.

You can download the source code from here on the jackaudio website

You can install it via apt-get:

sudo apt-get install jack

A GUI tool to use with it is qjackctl

sudo apt-get install qjackctl

See also this blog post for more information

Zanna
  • 70,465
Maythux
  • 84,289
  • I am starting to think JACK will not do what I need. All I really want is to have a virtual audio input and audio output device listed when I go to Sound Settings. I'll play with JACK some more and see if it will do this or not later today. – Buford T. Justice Jun 08 '15 at 11:44
  • try gladish or patchage that will show connections between jack and other things – Mateo Jun 08 '15 at 23:58
10

To make virtual audio devices that work like virtual audio cables, you can use PulseAudio commands. I make a pair of them to allow two software defined radio apps (eg: WSJT-X or JS8Call) to communicate bidirectionally with each other for testing purposes without needing any hardware:

pactl load-module module-virtual-sink sink_name=VAC_1to2
pactl load-module module-virtual-sink sink_name=VAC_2to1

The device names after sink_name are arbitrary, just make them unique.

In app1:

  • Input device: VAC_2to1.monitor
  • Output device: VAC_1to2

In app2:

  • Input device: VAC_1to2.monitor
  • Output device: VAC_2to1
PolyTekPatrick
  • 278
  • 3
  • 6
3

Create a Virtual Microphone on Linux with Pulseaudio...

0

You can do this with an alsa loopback device, which Ubuntu uses Alsa as its primary back end. The effect trickles down to PulseAudio, so it's 100% compatible.

It's just one command:

sudo modprobe snd-aloop

Tada, from there you will have a virtual audio device. Playing to it as input will result in its output, just as VAC does. However, in pulse audio, it will also show up named as, "Built-in Audio Analog Stereo" - this is probably a bug needing to be fixed in pulse audio. But you'll notice there are two of them, one will be your virtual/loopback device.

This is just temporary, but if you want to make it permanent, then add it to your /etc/modules files.

Deki
  • 645
0

It's possible to create a virtual audio cable on Linux. Setting it up is very different, but it will function somewhat the same way as on Windows.

PulseAudio

If you use PulseAudio, you'll need to use pacmd to create a loopback interface and set its monitor as an input interface to your application: pacmd load-module module-null-sink sink_name=VAC. This doesn't work with every application (they don't always detect monitor devices).

You then need to create a combined output channel to listen to your desktop audio while splitting this to your new VAC: pacmd load-module module-combine-sink sink_name=MAIN slaves=<PREFERRED SINK>,VAC.

Then, you can add your microphone input to this channel: pacmd load-module module-loopback sink=VAC source=<MIC> latency_msec=1. The latency is really up to you. If you sound choppy, go higher.

Cadence

Cadence is another option, and you'll probably need it with realtime permissions.

It can create a virtual audio connector using JACK as its backend. It allows you to save your patchbay and Studio session, which can save a lot of time. Especially if you need to launch additional shell commands. All you need to do is configure your microphone at Configure -> Driver -> Device.

I have a more elaborate explanation on GitHub.