macOS · Apple Silicon · Open Source

Bòcan

A music player for people who still own their music.

Requires macOS 15 Sequoia or later. Free. Notarised. No account needed.

Remember when you owned your music? When the player was a program on your computer, not a portal to a marketplace? When skipping a track took zero seconds, not three? Yeah. That.

Bòcan is a native macOS music player built for the kind of person who alphabetises their FLACs, has opinions about replay gain, and quietly judges anyone whose library is "in the cloud". It's free. It's fast. It plays almost everything. And it never, ever, tells anyone what you're listening to - unless you want it to.

What it does

Gapless. Properly gapless.

Nanosecond-anchored scheduling on the same audio node. Live albums and DJ mixes flow without that little hiccup other players sneak past you.

Plays the awkward stuff.

FLAC, ALAC, MP3, AAC, OGG, Opus, WavPack, Monkey's Audio, DSD, WMA, AC-3, DTS, and more. Bit-perfect output to whatever DAC you've got plugged in. See the full formats list.

Smart playlists with teeth.

Real predicates, not hand-wavy ones. "Played fewer than three times since 2019, rated four stars or higher, not in any other smart list." Done.

Tags it knows; tags you don't.

AcoustID fingerprinting hands you MusicBrainz IDs for that 64 kbps Limp Bizkit b-side from 2003 your friend insists is yours. Pick the exact release you own, then write Picard-compatible IDs, ISRC and totals back to the file.

Mini-player that doesn't lie.

Stays on top, sized like a Winamp window, with a real spectrum analyser. No fake Apple-Music-style "oscilloscope". Reads the actual signal.

Visualisers that watch the signal.

Six GPU visualisers on Metal: spectrum bars, oscilloscope, a breathing Halo ring, a Cascade spectrogram, a Starfield warp field, and a Nebula gas cloud that churns with the bass and ripples on every beat. Moving them onto the GPU frees the CPU for the audio and keeps them smooth at Retina resolution, so Nebula's churn is a live shader, not a looping texture. Dockable or full-screen, six colour palettes, locked to the audio you're actually hearing. Hover to switch mode or palette right on the visualiser.

Lyrics, scrolling, synced.

LRC files, embedded lyrics, or fetched from Last.fm. Karaoke-style line highlight. Toggle a translucent lyrics pane next to the queue.

Cross-fade the mood.

Per-genre fade durations. Equal-power curves. The dance set blends, the classical doesn't. You set the rules once.

Scrobbles only when you say so.

Last.fm and ListenBrainz, opt-in, batched, signed. No background telemetry, no "anonymous usage stats". Bòcan never phones home.

Plays your other library too.

Subsonic, Navidrome, Airsonic. Up to nine servers, federated search across all of them, per-server status dots, offline banners with one-tap retry, and ⌘⇧1⌘⇧9 to jump straight to a server. Streams through the same gapless engine as your local files.

Podcasts that keep up.

Subscribe by URL or search Podcast Index and Apple. Grab one episode, a batch for the flight, or auto-download new ones per show. Podcasting 2.0 where the feed bothers: clean show notes from the player bar, jump-to chapters, transcripts, host and guest credits, and publisher-recommended shelves. Variable speed, skip buttons, and it remembers exactly where you stopped.

Radio, without the tab clutter.

A proper station catalog: add streams by hand, or hand Bòcan a .m3u or .pls dial and it lifts every station out, names and all. Now-playing titles arrive live from the stream, and the info button tells you what you're really hearing: codec and profile, sample rate, channels, claimed bitrate. Streams reconnect on their own, and station idents never touch your scrobbles.

Your library, pocket edition.

Pair an Android phone with a six-digit code and Bòcan serves your music over your own Wi-Fi. Everything or just the playlists you pick, podcasts optional. Mutual pinned TLS, read only, one way, no cloud in sight. How Phone Sync works.

The Homer of music players.

Every cool feature from iTunes 9, Winamp 5, Foobar2000, and Cog. Without the bloat, without the spyware, without the cloud.

A log console you can actually read.

Open Help → Log Console (⇧⌘L) to tail every debug, info, warning, and error line since launch. Filter by level or category, search free-text, pause, copy, and export to a .log file. No terminal required.

Feels like it belongs on a Mac.

A tiny trackpad tick when you love a track, set a rating, land a seek, or release the volume slider. The Mini Player cross-fades with the main window instead of blinking. Control Center's Now Playing card shows the real album art. Honours Reduce Motion and your trackpad's haptic settings.

Browse the way you think.

Sort Albums, Artists, Genres, Composers, and Podcasts by name or by the count that matters: songs, albums, year, unplayed episodes. Flip Artists, Genres, and Composers between a list and a grid of cover-art cards, and browse any genre or composer by its albums. Filter Artists down to album artists only, and a thousand one-song guest credits get out of your way. Double-click any album cover and it just plays; single click opens it. Start typing anywhere and the first letter lands in the search box, query already underway. Your choices stick across launches, and every list remembers its place: scroll halfway down, open an album, hit back, and you land exactly where you left off.

A library that audits itself.

Tools → Library Summary: six tabs of honest answers. How big it all got, what needs fixing (every offender one click from its album), a spectral scan that catches "FLACs" laundered from lossy sources, the decades you own laid against the decades you actually play, your Last.fm history matched into skip rates and a when-you-listen heatmap, and a podcast backlog reckoning with one confirmed click to clean it up. Everything computed locally. Nothing leaves your Mac.

What it doesn't do

Get it.

Download Bòcan

Or browse all releases on GitHub.

Or install with Homebrew:

brew tap bocan/bocan
brew install bocan