I've been a loyal BTT user for over 13 years and it's my primary tool for managing control workflows during live events, including concerts and livestreams. I use it every day on my production Mac and it has completely replaced other utilities for event-specific setups.
What I absolutely love about BTT is that it gives me a single interface to configure and manage all kinds of devices I use:
Mouse & trackpad gestures
Keyboard remaps (including numpad as custom control keys)
Stream Deck buttons
Presentation remotes
I also frequently change setups on the fly, which is incredibly easy with BTT. This flexibility allows me to adapt quickly to each production or event I'm working on.
One of my most used features is the ability to send a specific keyboard shortcut to a specific app – this is something that tools like Companion or Touch Portal do not support properly, and it's a major reason I stick with BTT for advanced workflows.
I regularly purchase 2-year licenses even when I could renew shorter, because I want to keep supporting this amazing project.
Feature Request
I'd love to see native OSC (Open Sound Control) support in BTT, or a bridge/integration option with Bitfocus Companion. Many users in live production use OSC-enabled gear (like Behringer XAIR/X32, video switchers, media servers, or DMX controllers).
Right now, I’m using shell scripts and tools like oscsend (via liblo) to send OSC from BTT – which works! But:
It lacks feedback/input
It gets hard to maintain and scale
Having native OSC send/receive (and perhaps even a simple visual state system) would open BTT to the entire AV/streaming world.
Thank you for considering this! I'm happy to provide example workflows or help with testing.
sounds very interesting, however I’ll need to look i to it as I don’t have any experience in this area. Any links/ documentation / examples would be appreciated!
I wanted to share a few more practical thoughts on how OSC support could work in BetterTouchTool, and what it could unlock, especially in live event environments.
The ability to receive OSC messages, in addition to sending them, would make BTT incredibly powerful for live feedback and dynamic workflows. Here are two real-world examples:
1. Mute status from a mixer (e.g. Behringer XAIR)
XAIR (and X32) mixers expose their full control interface over OSC. For example:
Sending /ch/01/mix/on with value 0 mutes channel 1
Sending /ch/01/mix/on with value 1 unmutes it
the mixer sends back current states when queried, or on certain triggers (e.g. scene recall)
This means BTT could:
Send OSC to mute/unmute channels
Receive OSC and update Stream Deck buttons in real time to reflect mute status (e.g. red = muted, green = live)
It’s a huge deal when you're mixing and triggering cues from the same surface and need fast, reliable feedback.
2. QLab integration
QLab has a fully documented OSC API and can send live status updates if you enable them by sending /updates 1. After that, it will continuously broadcast messages like:
/cue/selected/number
/cue/selected/name
/cue/selected/armed
/cue/selected/hasStarted
With that, BTT could:
Show the currently selected or next cue on a button
Change button color/state based on cue type or progress
Act as a lightweight cue monitor directly on a Stream Deck
The OSC dictionary for QLab is here:
Why it matters
This kind of responsive interface is invaluable in live shows, where milliseconds matter and you often operate under pressure. BTT already makes last-minute adjustments super easy (which is why I rely on it so much during events), and adding even basic OSC I/O would make it even more flexible and reliable.
If you ever consider exploring this further, I’d love to help with testing or sharing some real-world configs. Even just sending OSC would already be super helpful—but receiving and reacting would really open things up.