Supported formats
Bòcan detects audio formats by magic bytes,
not file extensions, so a renamed file plays correctly without any
guessing. Decoding uses two back-ends:
AVFoundation (Apple's native stack) and
FFmpeg (bundled LGPL build, no GPL codecs; the
source and build recipe
are published).
A file with more than two channels, a 5.1 or 7.1 mix, plays folded to
stereo through the same mixer whichever engine decoded it, so the same
album sounds the same however it was packaged. Dolby Atmos objects are
not rendered: the bed plays as stereo. Loudness analysis takes the same
route as playback, so it measures the fold you actually hear, and it
covers the formats only FFmpeg can open.
Lossless PCM
| Format | Extensions | Engine |
| WAV / RIFF PCM |
.wav |
AVFoundation |
| AIFF / AIFF-C |
.aiff .aif |
AVFoundation, FFmpeg fallback |
| AU / SND |
.au .snd |
FFmpeg |
| Wave64 |
.w64 |
FFmpeg (removes the 4 GB WAV size cap) |
| RF64 / Broadcast Wave |
.wav |
FFmpeg (identified by magic bytes, not extension) |
Lossless compressed
| Format | Extensions | Engine |
| FLAC |
.flac |
AVFoundation (FFmpeg fallback for unusual streams) |
| ALAC (Apple Lossless) |
.m4a .alac .mp4 |
AVFoundation |
| Monkey's Audio |
.ape |
FFmpeg |
| WavPack |
.wv |
FFmpeg (lossless, hybrid-lossy, and DSD modes) |
Lossy
| Format | Extensions | Engine |
| MP3 (MPEG Layer 3) |
.mp3 |
AVFoundation |
| MP2 (MPEG Layer 2) |
.mp2 |
FFmpeg |
| MP1 (MPEG Layer 1) |
.mp1 |
FFmpeg |
| AAC |
.aac .m4a .m4b .mp4 |
AVFoundation |
| OGG Vorbis / Speex / Ogg FLAC |
.ogg |
FFmpeg (content type detected automatically) |
| Opus |
.opus .ogg |
FFmpeg |
| WMA (Windows Media Audio) |
.wma |
FFmpeg (ASF container) |
| Musepack |
.mpc |
FFmpeg |
| AC-3 / Dolby Digital |
.ac3 |
FFmpeg |
| E-AC-3 / Dolby Digital Plus |
.eac3 .ec3 .m4a .mp4 |
FFmpeg (raw); AVFoundation (in MP4) |
| DTS |
.dts |
FFmpeg |
| TTA (True Audio) |
.tta |
FFmpeg |
DSD
DSD files are decoded to PCM for output to standard DACs. There is no
DoP or native DSD output.
| Format | Extensions | Engine |
| DSF (Sony DSD Stream File) |
.dsf |
FFmpeg |
| DFF / DSDIFF (Philips) |
.dff |
FFmpeg |
Containers
| Format | Extensions | Engine |
| Matroska / MKV / WebM |
.mkv .mka .webm |
FFmpeg (audio tracks extracted automatically, whatever the codec inside, TrueHD and other multichannel tracks included) |
| MP4 / M4A |
.mp4 .m4a .m4b |
AVFoundation, falling back to FFmpeg when the system decoder refuses the payload (Opus in MP4, for one) |
Output
All formats are decoded internally to 32-bit float PCM
and played through the system output device, with a peak limiter at the
end of the chain. Gapless playback works for every format, between tracks
that share a sample rate and channel count.
What isn't supported
- TAK: patent-encumbered; no LGPL-safe decoder available
- SACD ISO: raw disc images. Individual DSF/DFF tracks play fine.
- Raw TrueHD / MLP (
.thd, .mlp): the decoder plays the codec, but a raw stream carries no tags and nothing on the Mac will report its length, so a library scan skips it. TrueHD inside a Matroska file is imported and plays.
- RealAudio (
.ra, .rm): no LGPL-safe decoder
- Encrypted files: Apple DRM (FairPlay) and WMA DRM files cannot be decoded