Skip to content

Features Library

Chris Funderburg edited this page Oct 1, 2026 · 2 revisions

How Bòcan scans, analyses, tags, and protects your library. This page is part of the Feature List and describes shipped functionality only.

Library Management and Scanning

  • Folder-based and non-destructive. Point Bòcan at your music directories and it indexes without touching a single file. Multiple library roots are supported, managed in Settings with per-root removal.
  • Live folder watching. An FSEvents watcher picks up new and changed files automatically (toggleable).
  • Quick and full rescans (⌘⌥R / ⌘⌥⇧R), cancellable, with a live banner showing the current path. A quit guard intercepts ⌘Q while a scan or ReplayGain analysis is running.
  • Change detection by modification time and file size keeps re-scans clean and quick. Every track also gets a content hash for Phone Sync, backfilled in the background.
  • Sidecar cover art. cover.jpg, folder.png, and friends are picked up at scan time when tags carry no embedded art.
  • Compilation grouping. Files flagged as compilations group under a single "Various Artists" album even when the Album Artist tag is empty, and split albums self-heal on the next scan.
  • Duplicate finder (Tools, Find Duplicates) groups tracks sharing title, artist, and duration, shows the bitrate of each copy, and removes copies from the library only, never from disk.
  • Remove from Library and Delete from Disk are separate actions. Deletion moves files to the Trash, with a permanent-delete fallback if trashing fails and a "Don't ask again" option.
  • Provenance analysis (Tools, Analyse Provenance). Decodes sample windows from every lossless file and looks for the hard spectral shelf a lossy encoder leaves behind, then files a confidence-weighted Suspected Transcodes report ("87% confident, shelf at 16 kHz"). Suspected, never accused: nothing is deleted or retagged, verdicts persist, and changed files re-queue automatically.
  • Last.fm history import (Tools, Import Last.fm History). Parses a Last.fm export and matches years of scrobbles into your library by MusicBrainz ID and normalised titles. Unmatched listens are kept patiently, and imported history never inflates local play counts.
  • Deep Dive (off by default; Settings, Library). Get Info on an artist, album, or track gains a Deep Dive tab: a report from MusicBrainz and Wikipedia with bio, members, and discography for an artist; label, catalogue number, format, country, and barcode for an album; writers, ISRC, and every release for a track. Reports are cached for a week and work offline. Files with no MusicBrainz tags are matched by name and flagged as a guess, and Save to Tags writes a confirmed match into the files. Nothing is sent to either site until you turn it on.
  • Sandbox-friendly. Security-scoped bookmarks keep access to your folders across launches without broad disk permissions.

Library Summary and Insights

Tools, Library Summary (⌘⇧Y) opens six tabs of answers about your collection, all computed locally:

  • Basic Info. Totals at a glance: songs, albums, artists, album artists, and total playback duration in days, hours, minutes, and seconds.
  • Library Hygiene. Problems worth fixing: track-number gaps, albums exploded into one-track shards by inconsistent tags, implausible or contradictory years, albums missing artwork, year, or MusicBrainz IDs, and tracks whose files vanished from disk. Every offender is one click from its album with the guilty song selected.
  • Audio Quality. Codec, sample-rate, bit-depth, and bitrate distributions; the lossless-to-lossy split by song count and by gigabytes; mixed-format albums; true-peak clipping; and the Suspected Transcodes report from provenance analysis.
  • Collection Shape. A release-year histogram, ownership versus listening per decade, the one-track guest long tail against your ten-plus-album lifers, longest and shortest songs and albums, and average album length by decade.
  • Listening Behaviour. Utilisation and a play-count Gini coefficient, skip-rate delete candidates with average bail-out points, dormant favourites, the abandoned-albums report, an hour-by-weekday listening heatmap, a discovery-rate chart of new artists per month, and the artists who only exist for you in December.
  • Podcasts. The unheard backlog in hours with a projection against your actual listening rate, dead feeds with one-click unsubscribe, the downloaded-but-never-played hoard per show with its disk bill, completion rates with average abandonment points, episode length creep by year, and Reap Now to delete listened episodes still hoarding disk. Both destructive actions are confirmed and reaping never runs on its own.

Metadata and Tagging

Get Info (⌘I) opens a tabbed editor; selecting multiple tracks switches to batch mode automatically.

  • Details: title, artist, album artist, album, genre, composer, comment, track and disc numbering, BPM, key, ISRC, MusicBrainz identifiers, and rating.
  • Artwork: drag-and-drop or pick embedded cover art (JPEG, PNG, HEIC, and AVIF), plus Fetch Cover Art from MusicBrainz and the Cover Art Archive.
  • File Info: format, bit depth, sample rate, bitrate, duration, channels, lossless flag, ReplayGain values, size, location, and dates.
  • Sorting fields (sort artist, sort album artist, sort album) and an Advanced tab with edit history (a Manually Edited flag protects your edits from being overwritten by rescans) and play statistics.
  • Markers tab listing CUE points, when the track has them.
  • Batch tools: renumber 1 to N in the current sort order, set Album Artist from Artist, and per-field text-case transforms with a live "N fields will be updated" counter.
  • Conflict detection. If a file changed on disk after you started editing, a banner offers Keep My Edits, Take Disk Version, or a side-by-side diff.
  • Undo support in the sheet, backed by an edit transaction log and a backup ring.
  • Tag formats written: ID3v2, Vorbis Comments, MP4/iTunes atoms, and APEv2, via TagLib.
  • AcoustID identification (⌘⌥I). Chromaprint fingerprints the audio, AcoustID and MusicBrainz propose matches, and you pick the exact release you own (original pressing, reissue, territory variant). Every proposed change is previewed side by side with the current value; tick only the fields you want, optionally including ISRC, track totals, and Picard-compatible MusicBrainz IDs.
  • Batch cover-art fetching (Tools, Fetch Missing Cover Art) walks every album with no artwork, respecting the MusicBrainz rate limit, with live progress and cancel.
  • Embedding is opt-in. By default fetched artwork lives in Bòcan's cache; a setting lets you embed it into the audio files themselves, with a clear warning that files get rewritten.

Backups and Data Resilience

  • iCloud Drive backup: three rolling snapshots of the library database, taken on launch and on demand.
  • Local backups: on-launch snapshots with configurable retention (1 to 20), revealed in Finder on request.
  • Both use the SQLite backup API for consistent snapshots of the live database.
  • Tag edits are protected by an edit-transaction log and backup ring, and a Manually Edited flag stops rescans from overwriting your work.
  • Smaller Time Machine backups. Caches that Bòcan can rebuild (cover-search thumbnails, podcast show artwork, Phone Sync conversions) are marked so backup tools skip them. Your library, your own cover art, tag backups, and downloaded episodes are still backed up.
  • Crash recovery: after an unclean exit, a banner offers to restore the previous queue or start fresh.

Clone this wiki locally