Integration

GoXLR

Control your TC Helicon GoXLR or GoXLR Mini directly from FaustBot. Manage faders, audio routing, effects presets, sample playback, and profiles.

Overview

FaustBot connects to GoXLR via the GoXLR Utility daemon, providing full control over your hardware mixer:

Volume Control

Adjust channel volumes and mute states programmatically.

Fader Assignment

Dynamically assign channels to physical faders.

Audio Routing

Control routing between inputs and outputs.

Effect Presets

Switch between voice effect presets (1-6).

Sample Playback

Play, stop, and manage samples from banks A/B/C.

Profile Loading

Load full profiles or color-only profiles.

GoXLR Utility Required

This integration requires GoXLR Utility to be running. The official TC Helicon software is not supported.

Setup

Connect to GoXLR Utility

1

Install GoXLR Utility

Download and install GoXLR Utility for your operating system. This works on Windows, macOS, and Linux.

2

Start GoXLR Utility

Launch GoXLR Utility and ensure it detects your GoXLR device. The utility runs a WebSocket server that FaustBot connects to.

Screenshot: GoXLR Utility connected
3

Connect from FaustBot

In FaustBot, go to GoXLR in the sidebar. Enter the WebSocket address (default: ws://localhost:14564) and click Connect.

Auto-Start

Configure GoXLR Utility to start with Windows/your system for seamless operation. FaustBot will automatically reconnect when the utility becomes available.

Triggers

Respond to GoXLR hardware events:

Fader Moved Physical fader position changed
Button Pressed Any GoXLR button was pressed
Mute State Changed Channel mute state toggled
Sample Started Sample playback began
Sample Stopped Sample playback ended
Profile Loaded Profile was loaded
Cough Button Cough button pressed/released

Effects

Volume Control

Set Volume

Set channel volume (0-100).

Adjust Volume

Increase/decrease volume by delta.

Set Mute

Mute or unmute a channel.

Toggle Mute

Toggle channel mute state.

Fader & Routing

Set Fader

Assign channel to fader (A-D).

Set Routing

Enable/disable audio routing.

Set Mic Gain

Adjust microphone gain (0-72dB).

Set Cough

Control cough button state.

Profiles & Effects

Load Profile

Load a GoXLR profile by name.

Load Color Profile

Load only colors from a profile.

Set Effect Preset

Switch voice effect preset (1-6).

Sample Control

Play Sample

Play sample from bank/button.

Stop Sample

Stop specific sample.

Stop All Samples

Stop all playing samples.

Scripting API

Control GoXLR programmatically from your scripts:

Connection & Status

# Check connection
if CPH.GoXLRIsConnected():
    status = CPH.GoXLRGetStatus()
    CPH.Log(f"Device: {CPH.GoXLRGetDeviceType()}")
    CPH.Log(f"Serial: {CPH.GoXLRGetDeviceSerial()}")

Volume Control

# Get available channels
channels = CPH.GoXLRGetChannels()
# Returns: ["Mic", "Game", "Chat", "Music", "Console", "LineIn", "System", "Samples"]

# Set channel volume (0-100)
CPH.GoXLRSetVolume("Mic", 75)
CPH.GoXLRSetVolume("Game", 60)

# Get current volume
vol = CPH.GoXLRGetVolume("Mic")

# Adjust volume by delta
CPH.GoXLRAdjustVolume("Music", -10)  # Decrease by 10
CPH.GoXLRAdjustVolume("Music", 5)    # Increase by 5

Mute & Routing

# Mute/unmute channels
CPH.GoXLRSetMute("Mic", True)   # Mute
CPH.GoXLRSetMute("Mic", False)  # Unmute
CPH.GoXLRToggleMute("Game")     # Toggle

# Check mute state
is_muted = CPH.GoXLRGetMute("Chat")

# Assign channel to fader
CPH.GoXLRSetFader("A", "Mic")
CPH.GoXLRSetFader("B", "Game")
CPH.GoXLRSetFader("C", "Music")
CPH.GoXLRSetFader("D", "Chat")

# Control audio routing
CPH.GoXLRSetRouting("Microphone", "BroadcastMix", True)
CPH.GoXLRSetRouting("Game", "Headphones", True)

# Get full routing table
routing = CPH.GoXLRGetRouting()

Profiles & Samples

# List available profiles
profiles = CPH.GoXLRGetProfiles()

# Load a profile
CPH.GoXLRLoadProfile("Streaming")

# Load only colors from a profile
CPH.GoXLRLoadColorProfile("NightMode")

# Set effect preset (1-6)
CPH.GoXLRSetEffectPreset(2)

# Play a sample (bank: A/B/C, index: 0-3)
CPH.GoXLRPlaySample("A", 0)  # Top-left button of bank A

# Stop a sample
CPH.GoXLRStopSample("A", 0)

# Stop all samples
CPH.GoXLRStopAllSamples()

# Set microphone gain (0-72 dB)
CPH.GoXLRSetMicGain(48)

# Cough button control
CPH.GoXLRSetCough(True)   # Engage cough
CPH.GoXLRSetCough(False)  # Release cough

See the full API reference for all available GoXLR methods.