Repository navigation
Features Playback and Sound
Chris Funderburg edited this page Oct 1, 2026
·
1 revision
The audio engine, the DSP chain, and loudness control. This page is part of the Feature List and describes shipped functionality only.
- Dual-decoder architecture. Apple's AVFoundation handles the natively supported formats; a bundled LGPL FFmpeg build handles everything else. A format sniffer picks the right decoder per file.
-
True gapless playback with sample-accurate scheduling: the next track's buffers are queued on the same audio node with nanosecond
AVAudioTimeanchoring. Classical transitions, live albums, and DJ mixes play with zero silence and zero clicks. Configurable pre-roll (1 to 15 seconds, default 5) and an opt-in toggle for gapless across different albums. - Configurable crossfade (0 to 10 seconds, equal-power). It is a true overlap: the next song fades in while the current one fades out. An option keeps transitions within an album gapless and crossfades only at album boundaries. Crossfade applies to songs stored on your Mac; streams and podcasts change over without it.
- Multichannel files fold to stereo. 5.1 and 7.1 mixes in Apple Lossless, AAC, FLAC, Dolby Digital Plus, TrueHD, or Matroska play with every channel mixed into stereo by one shared mixer, so the same mix plays at the same loudness however it was packaged. Dolby Atmos objects are not rendered.
- Anti-pop fades. A roughly 10 ms volume ramp before every stop, pause, seek, and track change, so nothing ever clicks.
- Playback speed from 0.5x to 2.0x with pitch correction, plus quick rates (0.75 / 1.0 / 1.25 / 1.5 / 2.0) in the Playback menu. Podcasts get their own default speed and per-show overrides.
- Sleep timer with presets from 15 to 120 minutes. It survives an app relaunch, handles system wake correctly, and can fade the volume gracefully over the final 30 seconds instead of cutting mid-note.
- Stop After Current (⌘⌥.), also available from the Dock menu.
- Output-device following. When the system default output changes (headphones plugged in, a DAC switched), the engine reconnects at the new hardware sample rate automatically.
- Stream resilience. Network streams get FFmpeg's own reconnect logic first, then up to three app-level decoder rebuilds, with the retry budget restored once playback has stabilised.
- CUE sheets as chapter markers. A single-file album rip keeps its track list: Previous and Next jump between cue points, the progress bar shows a tick at each boundary, and the player bar names the current cue's title and performer. Sheets attach automatically during scans; a Markers tab in Get Info lists every cue point. A CUE that is really just a playlist is treated as one instead.
- Volume control done properly: 10% keyboard steps, mute/unmute, and a trackpad haptic when you release the volume slider.
The full DSP chain lives in the Equaliser and DSP window (⌘⌥E):
- 10-band graphic EQ with plus or minus 12 dB per band and a bypass toggle.
- EQ scopes. Apply settings globally, to the current album, or to the current track, with per-scope save and a Clear Override button.
- Presets. Ten built-ins (Flat, Rock, Jazz, Classical, Electronic, Vocal Boost, Bass Boost, Treble Boost, Loudness, Spoken Word) plus user presets with rename, duplicate, and delete.
- Bass Boost: a low-shelf filter at 80 Hz, 0 to 12 dB.
- Headphone crossfeed: a Bauer stereo-to-binaural matrix, adjustable 0 to 100%.
- Stereo width: mid/side processing from 0.5x to 2.0x.
- Peak limiter and gain staging at the end of the chain.
- ReplayGain applied at playback time, in Off, Track, Album, or Auto mode, with a pre-amp of plus or minus 12 dB and a clipping guard that holds peaks at or below -0.5 dBFS. Missing tags are analysed in the background using EBU R128 loudness, for album gain as well as track gain, so Album and Auto modes keep an album's quiet and loud songs in proportion. Batch actions can compute missing values or recompute everything.
bocan.app · Source · Report an issue · Releases · Apache 2.0
Features
- Overview
- Playback and Sound
- Formats
- Library
- Browsing and Playlists
- Interface
- Sources and Sync
- Privacy and Engineering
User Guide
In-App Help
- Getting Started
- Podcasts
- Internet Radio
- Subsonic Servers
- Keyboard Shortcuts
- Mouse Buttons
- Supported Formats
Developer Documentation
Design Notes
Links