About this project
Bòcan Music is an Apache-2.0 licensed native macOS application for owning, organizing, and playing a local music and podcast library. It requires macOS 15 or later and is built with Swift 6 and SwiftUI rather than Electron or Catalyst. The project is oriented around local files, with no subscription or cloud library requirement.
Playback features include gapless playback using AVAudioTime anchoring, crossfades of up to 10 seconds, playback speed from 0.5x to 2x with pitch correction, and a fading sleep timer. The DSP chain provides a 10-band graphic equalizer, bass boost, stereo expander, binaural crossfeed, and peak limiter. ReplayGain is applied at playback time, and missing values can be analyzed with EBU R128 loudness measurement.
The player supports AVFoundation formats such as FLAC, ALAC, AAC, MP3, WAV, AIFF, CAF, and M4A. An integrated FFmpeg bridge adds support for Ogg Vorbis, Opus, Monkey's Audio, WavPack, DSD, DTS, AC-3, E-AC-3, TrueHD, Matroska, and other streams without separate plug-ins. Surround audio is folded down to stereo, while Dolby Atmos objects are not rendered. CUE sheets can appear as chapter markers, and the play bar can display codec, bitrate, sample rate, bit depth, and channel layout.
Library management is folder-based and non-destructive. A filesystem watcher detects changes, and deduplication uses modification times and fingerprints. AcoustID fingerprinting can identify tracks through MusicBrainz, show proposed tag changes beside existing values, and let users select fields to apply. Users can choose specific releases and optionally write ISRC and MusicBrainz identifiers. An optional Deep Dive feature retrieves MusicBrainz and Wikipedia summaries for artists, albums, and tracks. The app also includes batch tag editing, embedded and sidecar artwork support, undo, and an Exclude from Shuffle flag.
The interface provides album, artist, track, genre, composer, podcast, and recent views, with persisted sorting, search filters, scroll positions, and browser-style back/forward navigation. Smart playlists are built with a rule editor and update automatically. Manual playlists support live queue updates, sorting without losing saved order, and M3U, PLS, and XSPF import/export with fuzzy matching. Six GPU-rendered Metal visualizers are available docked or full screen, along with mini-player layouts and an experimental immersive mode.
Bòcan supports Last.fm, ListenBrainz, and Rocksky scrobbling with offline queuing and Keychain authentication. Subsonic-compatible servers including Navidrome and Airsonic can be added as sources alongside the local library. The podcast section supports RSS and Atom subscriptions, Podcast Index and iTunes search, resume points, episode downloads, auto-downloads, show notes, Podcasting 2.0 chapters and transcripts, credits, recommendations, variable speed, and skip intervals. Internet radio stations can be added manually or imported from playlist URLs and files, with ICY metadata, stream details, automatic reconnection, and exclusion from scrobbles.
A local Library Summary tool reports collection totals, tagging problems, missing artwork, codec and quality distributions, suspected transcodes, release-year distribution, listening behavior, imported Last.fm history, podcast backlogs, completion rates, and storage cleanup candidates. An in-app log console provides filtering, search, live tailing, copying, and export.
Phone Sync serves the Mac library read-only to a paired Android device over the local network using Bonjour and mutual TLS. Pairing uses a six-digit code and Mac-side confirmation, certificates are pinned in both directions, and paired phones can be revoked. Users can choose sync profiles and transcode higher-quality audio to MP3 or Opus before transfer. Source files and the Mac database are not modified by the phone.
Accessibility work includes VoiceOver-oriented track rows, automatic track-change announcements, full keyboard navigation, Dynamic Type support, grouped logical elements, and accessibility values for shuffle and EQ controls. The engineering notes describe strict Swift 6 concurrency, multiple SPM modules, unit and end-to-end tests, GRDB 7 with FTS5 search, XcodeGen project generation, linting and security scanning, and Sparkle-based updates. Installers are available as signed and notarized DMG downloads or through Homebrew.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.