Skip to content

Dual-Deck Player

br\u016bhi uses a classic two-deck broadcast layout. Deck A plays while you cue up the next track on Deck B, then you cross over. The transition can be manual, automatic, or rule-driven.

Drag and drop: Drag any track from the Content Library or queue list directly onto a deck.

Queue advance: Each deck has a queue. When the current track ends, the deck automatically loads and plays the next item in its queue (auto-advance). See Playlists.

From the menu bar (Desktop): Playback \u2192 Load to Deck A / Load to Deck B, or use \u2318+1 / \u2318+2.

ControlFunction
Play / PauseStart or pause playback
StopStop and return to the cue point
CueSet the current position as the cue point
SeekDrag the waveform scrubber or click to jump

MP3, FLAC, WAV, OGG, AAC (M4A), AIFF, Opus.

All files are resampled to 48 kHz at load time using a 256-tap windowed-sinc resampler (Blackman-Harris window). This means the output sample rate is always stable regardless of the source file.

The waveform shows the peak envelope of the loaded track. The current play-head position and the cue point are marked as vertical lines.

Each deck has a post-fader gain control (0–200%). This is in addition to the crossfader position. Use it to level-match tracks with different recorded volumes.

Each deck shows two meters:

  • Peak meter — instantaneous peak level with a 2-second hold for the highest peak seen.
  • RMS meter — loudness average over a 300 ms window (IEC 60268-17 compliant).

The master bus shows combined peak + RMS after all DSP processing.

Automated Crossfading & CrossfadeVisualizer

Section titled “Automated Crossfading & CrossfadeVisualizer”

brūhi includes an automated crossfade engine and visualizer component (CrossfadeVisualizer):

  • Visualizer: Displays the real-time gain curve and crossover point during automated deck transitions.
  • Read-Only / Lock State: When automated crossfading or Auto DJ is active, the crossfader enters a read-only state with refined visual styling to reflect system automation.

The Gap Killer automatically eliminates silent gaps at the beginning (cue-in) or end (cue-out) of queued tracks:

  • Silence Threshold: Configurable threshold (dB value, e.g. -48 dB to -30 dB) to detect silent intro/outro tails.
  • Duration Setting: Configurable trigger duration threshold before initiating a segue transition.
  • Seamless Segue: Ensures tight radio-style playback without dead air between consecutive music tracks.

To eliminate latency and deck loading pauses:

  • When Deck A is playing and its queue indicates a subsequent track, the idle Deck B automatically preloads the next track in the background.
  • Preloading parses metadata, primes the audio buffer, and calculates silence cue points prior to playback onset.