> For the complete documentation index, see [llms.txt](https://codalin.gitbook.io/nodalin-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codalin.gitbook.io/nodalin-docs/how-to.../live-audio-sync/advanced-routing.md).

# Advanced Routing

## Advanced Audio Routing

To capture audio from applications such as Spotify, YouTube, a DAW, or a game instead of a microphone, you need to route your computer’s audio through a virtual audio device that Nodalin can use as an input.

The easiest way to do this is with a virtual audio routing application. The options below range from simple virtual cables to full routing and mixing applications.

### macOS

#### Option 1: Loopback — Premium

Loopback by Rogue Amoeba provides a visual interface for creating virtual audio devices and routing audio between applications.

1. Install Loopback.
2. Create a new virtual device.
3. Add the applications or audio sources you want to capture.
4. Configure the device’s monitoring output if you want to hear the audio.
5. In Nodalin’s Audio Settings, select the Loopback device as the input.

Loopback is particularly useful when you need precise control over individual applications and more complex routing.

[Loopback](https://rogueamoeba.com/loopback/?utm_source=chatgpt.com)

#### Option 2: BlackHole — Free and Open Source

BlackHole is a free virtual audio driver that routes audio between applications.

1. Download and install BlackHole.
2. The 2-channel version is sufficient for stereo audio.
3. Open Audio MIDI Setup (`Applications → Utilities`).
4. Click + at the bottom left and select Create Multi-Output Device.
5. Enable both:
   * Your speakers or headphones
   * BlackHole 2ch
6. Select the Multi-Output Device as your system audio output.
7. In Nodalin’s Audio Settings, select BlackHole 2ch as the input.

Audio will now be sent both to your speakers/headphones and to BlackHole, allowing Nodalin to analyze it.

[BlackHole](https://existential.audio/blackhole/?utm_source=chatgpt.com)

#### Option 3: Wave Link 3.0 — Free

[\[Elgato Wave Link\]](https://www.elgato.com/us/en/s/wave-link-app?srsltid=AfmBOoqDncN6_vzGHvKi3r3PsUW2Y-E9xVGLxuIheOkxQmRt7ausJJcl)

Wave Link is a free audio routing and mixing application for macOS and Windows. It can capture audio from individual applications and route it through virtual outputs that can be selected by other applications, including Nodalin.

You do not need an Elgato microphone or other Elgato hardware to use Wave Link.

1. Download and install Wave Link.
2. During setup, allow the required audio permissions.
3. Add the applications you want to capture as inputs in Wave Link.
4. Route those inputs to a Wave Link output mix.
5. In Nodalin’s Audio Settings, select the corresponding Wave Link virtual output as the input device.

Wave Link also allows you to monitor the audio through your normal speakers or headphones while sending the same audio to Nodalin. [Wave Link Quick Guide](https://www.elgato.com/us/en/explorer/products/wave/wave-link-3-0-software-overview/?utm_source=chatgpt.com)

### Windows

#### Option 1: Wave Link 3.0 — Free and Recommended

Wave Link is available for Windows and can route audio from individual applications through virtual audio outputs.

1. Download and install Wave Link.
2. Install the Wave Link Audio Driver when prompted.
3. Add the applications you want to capture as inputs.
4. Route those inputs to a Wave Link mix.
5. In Nodalin’s Audio Settings, select the appropriate Wave Link virtual output as the input device.

Wave Link can also route audio to your headphones or speakers, allowing you to hear the audio while Nodalin analyzes it.

Wave Link 3.0 is free and works with third-party microphones and audio devices; an Elgato microphone is not required. ([Elgato](https://www.elgato.com/us/en/explorer/products/wave/wave-link-3-0-software-overview/?utm_source=chatgpt.com))

#### Option 2: VB-CABLE — Simple

VB-CABLE creates a virtual audio connection between applications.

1. Download and install VB-CABLE.
2. Set CABLE Input as the playback device for the application or system audio you want to capture.
3. In Nodalin’s Audio Settings, select CABLE Output as the input device.

Audio sent to CABLE Input is forwarded to CABLE Output, which appears as a recording/input device to other applications.

Because the cable does not automatically send the audio to your physical speakers, you will need a separate monitoring setup if you also want to hear the audio. ([VB-Audio](https://vb-audio.com/Cable/VirtualCables.htm?utm_source=chatgpt.com))

[VB-CABLE](https://vb-audio.com/Cable/?utm_source=chatgpt.com)

#### Option 3: Voicemeeter — Advanced

Voicemeeter provides a virtual audio mixer with routing, monitoring, and mixing controls.

1. Install Voicemeeter.
2. Set Voicemeeter Input as the Windows playback device.
3. In Voicemeeter, route the audio to your physical output (A1) so you can hear it.
4. In Nodalin’s Audio Settings, select the appropriate Voicemeeter virtual output as the input device.

Voicemeeter is useful when you need to combine multiple audio sources, control their levels independently, or create more complex routing setups.

[Voicemeeter](https://vb-audio.com/Voicemeeter/?utm_source=chatgpt.com)

### Linux

#### PipeWire / PulseAudio

Most modern Linux desktop distributions use PipeWire, often with PulseAudio compatibility. The basic approach is to create a virtual audio sink and use its monitor source as the input for Nodalin.

One way to create a virtual sink is:

```bash
pactl load-module module-null-sink sink_name=nodalin_sink sink_properties=device.description="Nodalin_Audio"
```

This creates a virtual playback device named Nodalin\_Audio. Audio sent to this sink is also available through its monitor source.

You can then:

1. Send the application you want to capture to Nodalin\_Audio.
2. Use an audio control application such as `pavucontrol` to route or monitor the audio.
3. In Nodalin’s Audio Settings, select the monitor source corresponding to Nodalin\_Audio as the input.

If you also want to hear the audio through your normal speakers or headphones, create a loopback to your default output:

```bash
pactl load-module module-loopback source=nodalin_sink.monitor sink=@DEFAULT_SINK@
```

The exact names of the devices may vary depending on your Linux distribution and audio configuration. PipeWire provides the same null-sink and loopback concepts through its PulseAudio compatibility layer. ([PipeWire](https://pipewire.pages.freedesktop.org/pipewire/page_pulse_module_null_sink.html?utm_source=chatgpt.com))

For more advanced PipeWire setups, `pw-loopback` can be used to create explicit connections between audio nodes. ([PipeWire](https://pipewire.pages.freedesktop.org/pipewire/page_man_pw-loopback_1.html?utm_source=chatgpt.com))

### Troubleshooting

#### No Audio Devices Found

Check that your browser supports the required Web Audio and audio input functionality.

Make sure Nodalin has permission to access audio input.

If the permission prompt did not appear, check your browser’s site permissions and allow microphone/audio access.

Refresh Nodalin after changing permissions.

Check your operating system’s audio settings and verify that the virtual audio device is available.

#### Can’t Hear System Audio After Setup

macOS: If using BlackHole, make sure you are using a Multi-Output Device containing both BlackHole and your speakers/headphones. With Wave Link or Loopback, make sure the appropriate monitoring output is configured.

Windows: If using VB-CABLE, the audio is sent to the virtual cable rather than directly to your speakers. Use Wave Link, Voicemeeter, or another monitoring method if you need to hear the audio at the same time.

Linux: Make sure the virtual sink is routed to your physical output, for example using `module-loopback` or an audio routing application.

#### Audio Node Not Responding

Check that the correct virtual input device is selected in Audio Settings.

Verify that the Audio Analyser shows activity.

Check the selected frequency range. If you are unsure which frequencies the source contains, temporarily use a wide range such as:

`minFreq: 20`\
`maxFreq: 20000`

Increase the output scale or multiplier if the detected values are too small.

#### Spectrum Shows No Activity

Check that the source application is actually playing audio.

Check that the application is routed to the virtual audio device.

Verify that Nodalin has selected the corresponding virtual input.

Check the selected frequency range.

Check your browser’s audio permissions.

#### Latency Issues

Virtual routing introduces some additional latency. To reduce latency:

* Close unnecessary audio applications.
* Avoid unnecessary routing stages.
* Use a simpler routing setup when possible.
* Check the buffer or latency settings of your routing application where available.

For most audio-reactive visual applications, a small amount of latency should not be problematic.

### Best Practices

Use separate Audio nodes for different frequency bands when creating complex audio-reactive visuals.

Keep Audio Settings open while configuring your routing so you can see whether Nodalin is receiving the expected signal.

Adjust the output scale or multiplier to match the property you are controlling.

Use the Gate control on Audio nodes to reduce the effect of very quiet sounds and create more pronounced transitions.

Test your setup with different types of audio. Different recordings and genres can have very different frequency distributions.
