VAC creates a set of virtual audio devices. Each device simulates an audio adapter (usually named a "card") whose output is internally connected to the input, making an audio loopback. If an application plays audio to the output of such device, the sound will not be audible because the signal is looped back to the input. But if another application records from the input, it receives the sound produced by the first app.
Such virtual devices are named Virtual Cables. The term "Virtual Cable" is used only in the description of VAC product, as a placeholder. Actual names of virtual audio devices/endpoints that you will see in applications' menus, are different (for example, "Line 1", "Line 2" etc.).
Each side of any Virtual Cable can be used by several audio apps at the same time. If two or more apps play sounds to the same playback endpoint, these sounds are mixed, and the result is transmitted to the recording side. It two or more apps record from the same endpoint, each app gets a copy of the sound.
There is no quality loss (if no format conversion and/or volume control are involved). If all these conditions are met, audio transfer is bitperfect, suitable for audiophile applications. In well-tuned systems, signal latency is very low.
VAC just performs things what it is intended for: passes audio streams between applications, converting audio formats if necessary. It never guides you to advertising pages, nor pops up busily on the screen, nor installs hidden activities in your system. VAC does only actions that you explicitly demand for.
VAC driver and the supplied applications can only collect and use information directly related to their functionality. For example, VAC driver can query processor functions to optimize performance, request process/thread information to display it in a log, Audio Repeater applications request audio device/endpoint properties, etc. Since they do not work with personal, business, geographical, economic or political data, they do not access such data sources at all.
Yes, I think exclusively. It is expensive though.
Actually, it is a bit over-kill for just a streaming interface, but I do use the extra capabilities to do post-processing with EQ and mild compression / auto-volume. You can add any Au or Vst plug-in into the chain.
Hi @DJKenJ, this is not officially supported, but using a virtual audio cable on the booth out automatically creates an aggregate audio device. You can open Audio MIDI setup, select that aggregate audio device and enable drift correction for the virtual audio cable. I hope that helps. Thanks!
I've set as EAPO playback device VB-Cables Input B (see: -audio.pagesperso-orange.fr/Cable/VirtualCables.htm), and for the input of my Airplay streamer (Airfoil and Tuneblade) I set VB-Cables output B, but there is no sound (going through the cable).
VB-Cable A is working good between my System Audio and PEACE Equalizer. I'm sure VB-Cables A&B are working good, so I think the culprit might be EAPO not sending a signal through VB-Cables, which it indeed marks as "experimental" in the setup.
If I set only one capture device (VB Cable A out) and only one playback device (VB Cable B in), and if I set the processing stage to post-mix and capture, then I still get no sound at VB Cable B out. I also always get the following popup when running the Editor:
I don't know what exactly happened, but I did the following: I added the soundcard in- and outputs with Configurator. In the Editor though, I selected VB Cable A out and VB Cable B in. I still have VB Cable A in as system audio output. However, now it is the only one checked, where previously I could only check it with the audiocard checked also. So now, the audiocard is mysteriously unchecked.
One would say that the route would be System Audio -> VB Cable A in -> VB Cable A out -> Equalizer APO -> VB Cable B in -> VB Cable B out -> Streamer in. However, the streamer catches VB Cable A out and EAPO filters it.
I think the 'device' setting in PEACE is the output setting, although it is nowhere mentioned if it is ment to be an input or output setting. It would make sense though, because it works. The diagram would be: System Audio out -> PEACE -> VB Cable A in -> VB Cable A out -> Airplay streamer.
AFAIK, PEACE only writes commands for EqualizerAPO (to file peace.txt or something) which file is then included in config.txt (EqualizerAPO config file). You should see these command lines through Configuration Editor.
Actually, do you need that VB-Cable in your playback setup if you want your audio go through system audio to Airfoil or Tuneblade? EqualizerAPO is systemwide so if the Airplay streamer software takes its input from 'System audio' then it could work without VB-Cable. If it does not work that way then your connection is OK if it works as wanted but the diagarm you wrote is kind of wrong because of the nature of PEACE software ... its a GUI for EqualizerApo which means that the audio stream does not go through PEACE.
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:
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.
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).
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 launch the online player and it does not seem to be going through the Virtual Audio cable, the only output that currently works are my speakers. This was all working when i did the initial installation.
Ok I think I figured it out, I have to set the Virtual Cable as my default device. However, my headphones do not work normally when I do this, so I have to disable the Virtual Cable to get my headphones to play normally.
I own a copy of Virtual Audio Cable (VAC), which theoretically provides multiple virtual cables to route audio between applications on windows systems. I have been able to create 4 cables in VAC, and can use any two of them to route 2 stereo pairs from pd to Ableton. But it appears that pd will not output to more than two 2-channel outputs at once.
I finally figured out what was going on.
Came across a blog from Raspberry Pi folks posted early 2021 explaining that they had switched from ALSA sound system to PulseAudio, with a few ALSA plug-ins to maintain some compatibility.
Well, snd-aloop is just not supported - the underlying code is just not there.
The pulseaudio command starts the pulseaudio server.
The PulseAudio Commands (pacmd) each create an output device with the given name,
together with a corresponding input device (the loop back) called [the given name].monitor
Unfortunately this only is visible for me when running Qt audio as the audio system in wFview, and it would appear Qt audio may be why I am getting audio problems. The setup is an RPI over wifi direct to an IC-705. I believe Qt audio may have the wrong buffer size (for wifi udp audio streaming to a 705) when setup by wFview.
I would like to try PortAudio or RT Audio, but the official wFview virtual audio cables no longer work (RPI OS does not support them) and this great system you came up with is only visible to Qt Audio and not PortAudio or RT Audio.
Do you get different behavior if you open a program like wsjt-x, which uses the pulseaudio loopback first, and then open wfview? Some of these programs will set various parameters with the loopback and they often prefer to have their say before wfview is opened.
So here is a wfview log of the RPI connected by ethernet to the home LAN and the 7610 connected by ethernet to the home LAN. wfview was running Qt audio ulaw 1 channel 8 bit for tx and receive at 48000 sample rate. A sample rate of 8000 produced the same result. It would appear from WSJTX decodes that receive audio was fine, but transmit audio had the same problems (TX audio muting/dropouts) exhibited in the mobile configuration (RPI as hotspot and 705 connected over wifi to RPI). In addition, as was the case with wfview 1.58 there was a buzz/distortion on the tx audio. Previously in my testing with 1.6 I did not notice a buzz but that could be just me. see the 7610 all lan/ethernet connected log at
In Windows I have the program Virtual-Audio-Cable for this and I already read that pulse-audio should serve this functionality, but when I install pulse-audio I don't get this sound-redirecting to work and I get Bugs like my music is stopping when I start Teamspeak or any application with sound output.
So I wan't to have it (if possible) without using pulseaudio (I already removed it from my system).
Jack is certainly the de facto solution for advanced audio routing on Linux. Qjackctl provides a graphical control panel, exposes connections, and allows automatic connections through a virtual patchbay. However, for non-jack-aware apps, you need to use the alsa plugin. [1]
Then send sound to loop_sink and record from loop_source.
Edit: If you want to listen and record at the same time, then you should be able to use module-virtual-sink I think and record from the monitor channel for the virtual sink.
I have spent half a day Googling this and trying to resolve it. It seems that virtually no one has used virtual audio cable with Cubase as no search results come up. I assume it does not work for connecting other audio software to Cubase or people would have mentioned it.
ff7609af8f