Integration

Voicemeeter

Control Voicemeeter virtual audio mixer with full support for strips, buses, routing, gain control, macro buttons, and recording.

Overview

FaustBot integrates with Voicemeeter, the popular virtual audio mixer for Windows, allowing you to control all aspects of your audio routing through automation:

Strip Control

Mute, gain, pan, and solo for all input strips.

Bus Control

Mute and gain control for all output buses.

Audio Routing

Route strips to any combination of buses.

Macro Buttons

Trigger Voicemeeter macro buttons (0-79).

Recording

Start, stop, and monitor recording status.

Audio Engine

Restart audio engine to fix issues.

Setup

Requirements

Voicemeeter must be installed and running on your system. FaustBot communicates with Voicemeeter through its native API.

1

Install Voicemeeter

Download and install Voicemeeter from vb-audio.com. Choose the version that fits your needs: Standard, Banana, or Potato.

2

Launch Voicemeeter

Start Voicemeeter before connecting from FaustBot. Configure your audio devices and routing as desired.

3

Connect from FaustBot

In FaustBot, go to Voicemeeter in the sidebar and click Connect. FaustBot will automatically detect your Voicemeeter version and available strips/buses.

Auto-Connect

Enable Auto-Connect to automatically connect to Voicemeeter when FaustBot starts. Ensure Voicemeeter is already running.

Voicemeeter Types

FaustBot supports all three Voicemeeter versions, each with different capabilities:

VersionType IDStripsBuses
Voicemeeter13 (2 hardware + 1 virtual)2 (A1, B1)
Voicemeeter Banana25 (3 hardware + 2 virtual)5 (A1-A3, B1-B2)
Voicemeeter Potato38 (5 hardware + 3 virtual)8 (A1-A5, B1-B3)

Strip vs Bus

Strips are inputs (microphones, applications via virtual inputs). Buses are outputs (speakers, headphones, stream output). Use routing to control which strips go to which buses.

Triggers

Respond to events from Voicemeeter:

Connected Successfully connected to Voicemeeter
Disconnected Disconnected from Voicemeeter
Strip Mute Changed A strip's mute state changed
Bus Mute Changed A bus's mute state changed
Recording Started Recording began
Recording Stopped Recording ended

Effects

Strip Control

Mute Strip

Mute an input strip.

Unmute Strip

Unmute an input strip.

Toggle Strip Mute

Toggle strip mute state.

Set Strip Gain

Set strip volume (-60 to +12 dB).

Set Strip Pan

Set strip pan (-1.0 to +1.0).

Bus Control

Mute Bus

Mute an output bus.

Unmute Bus

Unmute an output bus.

Toggle Bus Mute

Toggle bus mute state.

Set Bus Gain

Set bus volume (-60 to +12 dB).

Routing & System

Set Strip Routing

Route a strip to a bus.

Press Macro Button

Trigger a macro button.

Start Recording

Begin Voicemeeter recording.

Stop Recording

Stop Voicemeeter recording.

Restart Audio Engine

Restart the audio engine.

Scripting API

Control Voicemeeter from your scripts using the CPH API:

Connection Management

Connection management
# Connect to Voicemeeter
CPH.VoicemeeterConnect()

# Check connection status
if CPH.VoicemeeterIsConnected():
    vmType = CPH.VoicemeeterVoicemeeterType()
    CPH.Log(f"Connected to Voicemeeter type: {vmType}")

# Disconnect
CPH.VoicemeeterDisconnect()

Strip (Input) Control

Strip control
# Get strip count and list all strips
count = CPH.VoicemeeterStripCount()
strips = CPH.VoicemeeterGetStrips()

# Mute/unmute strip 0 (first input)
CPH.VoicemeeterSetStripMute(0, True)   # Mute
CPH.VoicemeeterSetStripMute(0, False)  # Unmute
CPH.VoicemeeterToggleStripMute(0)      # Toggle

# Set gain (-60 to +12 dB)
CPH.VoicemeeterSetStripGain(0, -6.0)

# Set pan (-1.0 left to +1.0 right)
CPH.VoicemeeterSetStripPan(0, 0.0)  # Center

Bus (Output) Control

Bus control
# Get bus count and list all buses
count = CPH.VoicemeeterBusCount()
buses = CPH.VoicemeeterGetBuses()

# Mute/unmute bus 0 (first output)
CPH.VoicemeeterSetBusMute(0, True)   # Mute
CPH.VoicemeeterSetBusMute(0, False)  # Unmute
CPH.VoicemeeterToggleBusMute(0)      # Toggle

# Set bus gain (-60 to +12 dB)
CPH.VoicemeeterSetBusGain(0, 0.0)  # 0 dB

Strip Routing

Strip routing
# Route strip 0 to bus 0 (A1)
CPH.VoicemeeterSetStripRouting(0, 0, True)

# Remove strip 0 from bus 1 (A2)
CPH.VoicemeeterSetStripRouting(0, 1, False)

# Example: Route mic to stream output only
mic_strip = 0
stream_bus = 2  # B1 typically
CPH.VoicemeeterSetStripRouting(mic_strip, stream_bus, True)

Recording and Macro Buttons

Recording and macros
# Recording control
if not CPH.VoicemeeterIsRecording():
    CPH.VoicemeeterStartRecording()
else:
    CPH.VoicemeeterStopRecording()

# Press a macro button (0-79)
CPH.VoicemeeterPressMacroButton(0)

# Restart audio engine (fixes audio issues)
CPH.VoicemeeterRestartAudioEngine()

See the full API reference for all available Voicemeeter methods.