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
Install GoXLR Utility
Download and install GoXLR Utility for your operating system. This works on Windows, macOS, and Linux.
Start GoXLR Utility
Launch GoXLR Utility and ensure it detects your GoXLR device. The utility runs a WebSocket server that FaustBot connects to.
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 changedButton Pressed Any GoXLR button was pressedMute State Changed Channel mute state toggledSample Started Sample playback beganSample Stopped Sample playback endedProfile Loaded Profile was loadedCough Button Cough button pressed/releasedEffects
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 5Mute & 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 coughSee the full API reference for all available GoXLR methods.