Docs
Bòcan is meant to be obvious. If you're reading this, it probably wasn't obvious enough. Sorry. We'll fix that.
Getting started
- Drag Bòcan into
/Applications. - Open it.
- Choose Library → Add Folder… and point at your music.
- Wait while it scans, fingerprints, and reads tags. Watch the spectrum analyser bounce.
- Listen.
Keyboard shortcuts
| Shortcut | What it does |
|---|---|
| Space | Play / Pause |
| → | Next track |
| ← | Previous track |
| ↑ / ↓ | Volume up / down |
| ⌘F | Search library |
| ⌘L | Toggle lyrics pane |
| ⌘M | Toggle mini-player |
| ⌘I | Get info / tag editor |
| ⌘, | Preferences |
| ⌘⌥S | Sleep timer |
| ⌘⇧L | Log Console |
Supported formats
FLAC, ALAC, WAV, AIFF, MP3, MP2/MP1, AAC/M4A, OGG Vorbis/Speex/FLAC, Opus, WavPack, Monkey's Audio (APE), Musepack, AC-3, DTS, WMA, Wave64, RF64, Matroska/MKV/WebM, AU/SND, DSD (DSF/DFF). Bit-perfect output up to 32-bit / 384 kHz. DSD via DoP. See the full formats page for the breakdown by decoder engine and supported extensions.
Browsing by album
The Artists, Genres, and Composers views each toggle between a plain list and a grid of cover-art cards, where each card shows a 2x2 mosaic of that collection's album covers. The toggle sits next to the sort button, is mirrored in the View menu, and is remembered separately for each section.
Open a genre or composer and you get the same choice for its contents: view the songs as a flat list, or switch to a grid of that genre's or composer's albums and click straight through to any album. That preference is remembered per section too, and Songs stays the default.
Playlists
Manual playlists keep the order you arrange by dragging. Click a column header to sort a playlist for browsing; your hand-arranged order is kept underneath, and a "Playlist Order" button returns to it. Drag-to-reorder pauses while a column sort is active, so the saved order is never scrambled.
Smart playlists
Smart playlists support nested groups, all standard fields (artist, album, year, BPM, rating, play count, last played, date added, key, …), and a "limit by" clause. Sort by several keys with priorities, for example artist, then track number, then title, with an ascending or descending direction per key. In the track list you can also click a column header to re-sort on the fly. Shuffle is reproducible per session, no "shuffle" that mysteriously plays the same five tracks.
Viewing logs
Bòcan has a built-in log console you can open without leaving the app. Choose Help → Log Console (⇧⌘L) or go to Settings → Diagnostics → Open Log Console.
The console shows every debug, info, warning, and error line emitted since the app started, up to a 5,000-line ring buffer. You can:
- Filter by minimum log level (Trace through Fault) or by category.
- Search the message text (case-insensitive, updates live).
- Tail new lines automatically as they arrive, or pause to freeze the view.
- Copy the visible lines to the clipboard.
- Export the visible lines to a
.logtext file for attaching to a bug report. - Clear the view, or clear the underlying ring buffer via the overflow menu.
Capture can be turned off under Settings → Diagnostics
if you need to stop the buffer from filling while the app runs unattended.
Disabling capture has no effect on the system log (log stream).
Troubleshooting
Audio drops out for half a second
Almost always a sample-rate mismatch with the output device. Open Audio MIDI Setup and set the device to a fixed rate that matches most of your library (often 48 kHz or 96 kHz). Bòcan resamples on the fly when it has to, but switching rates on the device is what causes the gap.
"Bòcan can't be opened because Apple cannot check it for malicious software"
You probably downloaded an unsigned development build, or Gatekeeper's cache is stale. Right-click the app and choose Open; confirm once. After that it'll launch normally.
Library scan is slow on a NAS
Mount with SMB3 over a wired connection where possible. The first scan fingerprints every file, which means reading every byte. Subsequent scans only look at modified files.
It crashed
Logs land in ~/Library/Logs/Bocan/. Open one and zip it.
File an issue on
GitHub with
the zip attached, and a description of what you were doing.
More
For the full architecture, build instructions, and how to contribute, see the README and CONTRIBUTING.md.