Audio Devices & MIDI
The System tab → Audio Devices panel is where you assign audio devices to br\u016bhi’s buses and configure MIDI controller mapping.
Audio Buses
Section titled “Audio Buses”br\u016bhi uses four independent audio buses, each routed to its own device:
| Bus | Purpose | Default |
|---|---|---|
| Output | Master broadcast mix — what listeners hear | First detected output device |
| MON (Monitor) | Studio speakers or monitor speakers in the room | Same as Output |
| PFL (Pre-Fader Listen) | Headphones for cueing tracks privately | Same as Output |
| Mic 1 / 2 / Remote | Physical microphone inputs | First detected input devices |
You can assign any system-visible audio device to any bus. Buses are independent — you can route the broadcast output to your audio interface while routing PFL to a separate headphone amplifier.
Selecting Devices
Section titled “Selecting Devices”Click the device selector dropdown for each bus and choose from the list of available devices. br\u016bhi enumerates all devices visible to the OS:
- macOS: CoreAudio devices (built-in, USB, Thunderbolt, Aggregate)
- Windows: WASAPI devices (exclusive and shared mode)
- Linux: ALSA devices and JACK ports (if JACK is running)
Changes take effect immediately without restarting the app or interrupting broadcast.
Device Hot-Plug
Section titled “Device Hot-Plug”When you connect or disconnect an audio device (USB audio interface, for example), br\u016bhi detects the change automatically:
- A newly connected device becomes available in the dropdown menus immediately.
- If a device that is in use is disconnected, br\u016bhi falls back gracefully to the next available device and shows a warning notification. It does not crash or drop the stream.
To switch back to your preferred device after reconnecting it, select it again from the dropdown.
JACK Audio (Linux)
Section titled “JACK Audio (Linux)”On Linux, if JACK is running when br\u016bhi launches, JACK ports appear alongside ALSA devices in the device selectors. br\u016bhi uses CPAL’s JACK backend.
# Start JACK before launching br\u016bhijackd -d alsa -r 48000 -p 256 &MIDI Mapping
Section titled “MIDI Mapping”MIDI mapping lets you control br\u016bhi parameters from a hardware MIDI controller — a DJ controller, fader bank, or any MIDI device.
Supported Targets
Section titled “Supported Targets”| Target | Description |
|---|---|
| Crossfader | Main crossfader position (CC, absolute) |
| Deck A volume | Deck A post-fader gain |
| Deck B volume | Deck B post-fader gain |
| Master gain | Master output level |
| Deck A play/pause | Toggle play/pause on Deck A (note on) |
| Deck B play/pause | Toggle play/pause on Deck B (note on) |
| Pad trigger | Trigger a cart wall pad by bank + pad number |
| Mic 1/2/Remote mute | Mute toggle for a microphone slot |
MIDI Learn
Section titled “MIDI Learn”The fastest way to create a mapping:
- Open System → MIDI Mapping.
- Click MIDI Learn.
- Click the control in br\u016bhi’s UI that you want to map (crossfader, volume knob, etc.).
- Move or press the corresponding control on your MIDI hardware.
- The mapping is created and shown in the table.
- Click Done to exit Learn mode.
Manual Mapping
Section titled “Manual Mapping”In the MIDI Mapping table, click + Add Mapping:
| Field | Description |
|---|---|
| Channel | MIDI channel (1–16, or “Any”) |
| Type | CC (continuous controller) or Note |
| Number | CC number (0–127) or note number |
| Target | The br\u016bhi control to drive |
Port Selection
Section titled “Port Selection”br\u016bhi auto-enumerates all MIDI ports visible to the OS. The activity LED flashes when MIDI data is received on any port.
On startup, br\u016bhi attempts to reconnect to the MIDI ports used in the last session. If a port is unavailable, the mappings are retained and will activate when the device is reconnected.
Persistence
Section titled “Persistence”MIDI mappings are stored in midi_mappings.json alongside the SQLite database. They persist across restarts.