New XPCog — Cog for Windows and Linux. Early builds are up now. Downloads →
Cog Cog
Audio Player for macOS

A free and open source audio player for macOS.

Published Oct 1, 2026, 8:22 AM · Requires macOS 12.0
  • view commit • Build: Explain how to sign without registering the App Group
  • view commit • Lyrics: Fetch missing lyrics from LRCLIB and cache them in Core Data
  • view commit • Engine: Add a varispeed engine with a single speed slider
  • view commit • Engine: Scrobble on time listened, not playback position
  • view commit • Scrobbler: Send listens to ListenBrainz
  • view commit • Build: Make the Sparkle build a configuration instead of a branch
Features

What Cog does

Supported Formats

Plays almost anything

  • MP3 (including free format, up to 640kbps; via minimp3)
  • WAV
  • MPEG-4 container, including chapter support
  • Matroska container, including chapter support
  • AAC
    • LC-AAC
    • HE-AAC
    • HE-AACv2
    • xHE-AAC (USAC)
  • Apple Lossless (ALAC)
  • FLAC (including OggFLAC)
  • Ogg Opus
  • Ogg Vorbis
  • AC3
  • Windows Media Audio
  • DTS
  • TrueHD
  • HDCD
  • TTA True Audio
  • TAK (Tom's Lossless Audio Kompressor)
  • Monkey's Audio (APE)
  • APL (APE Linking File)
  • TwinVQ
  • RealAudio
  • ATRAC3
  • Musepack
  • WavPack, including DSD support
  • Interchange File Format (IFF) including DSDIFF
  • DSD Stream File (DFF)
  • Wideband Single-bit Data (WSD)
  • MIDI
    • SoundFont, DLS, and embedded soundbank support via a native port of the SpessaSynth synthesizer
    • FM synthesis via Nuked OPL3
    • Sound Canvas emulation via Nuked SC55
    • Audio Unit synthesizer support, including Apple's DLSMusicDevice
  • Shorten
  • Tracker music
  • SID
  • Game music
    • GBS (Game Boy)
    • NSF (Nintendo)
    • SPC and SNSF (Super Nintendo)
    • VGM (Master System, Genesis/Mega Drive, Game Gear, etc)
    • VGZ (compressed variant of the above)
    • PSF (PlayStation)
    • SSF (Saturn)
    • DSF (Dreamcast)
    • QSF (Q-Sound)
    • USF (Nintendo 64)
    • NCSF and 2SF (Nintendo DS)
    • Organya (Cave Story)
    • Streamed music via vgmstream
  • Archive files
    • ZIP
    • RAR
    • GZip
    • 7Z
Archive

Older versions

v3744 Oct 1, 2026, 5:49 AM Download 49.86 MB
  • view commit • MIDI: Keep Audio Unit synth state out of the user defaults
  • view commit • Output: Ask the device for a larger I/O buffer
  • view commit • Output: Make DSD over PCM a setting
  • view commit • WavPack: DSD comes back most significant bit first
  • view commit • ChunkList: Honour the DSD bit order when converting to PCM
  • view commit • Vorbis: Report a failed seek
  • view commit • Opus: Report a failed seek
  • view commit • Preferences: Keep the path suggester alive while it is open
  • view commit • Engine: Add CogAudio tests for ConverterNode track joins
  • view commit • Engine: Add the real-time C core
  • view commit • Engine: Build CogAudio as a module; add the Swift feeder
  • view commit • Engine: Add the AUHAL device output
  • view commit • Engine: Add the DSP thread skeleton
  • view commit • Engine: Play through the new engine behind AudioPlayer
  • view commit • Engine: Stop spurious rebuilds; add playback diagnostics
  • view commit • Engine: Render through the C AudioUnit API
  • view commit • Engine: Ask the device for a larger I/O buffer
  • view commit • Engine: Apply ReplayGain on the DSP thread, live
  • view commit • Playback: Pass on ReplayGain that loads after playback starts
  • view commit • Playback: Start a track once its tags have loaded
  • view commit • Engine: Run a DSP chain on the DSP thread; port the equalizer
  • view commit • Engine: Fade in from silence; log gains and output peaks
  • view commit • Engine: Port FreeSurround to the DSP chain
  • view commit • Engine: Port HRTF to the DSP chain
  • view commit • Engine: Port time-stretching to the DSP chain
  • view commit • Engine: Optimise Signalsmith Stretch in Debug builds
  • view commit • Engine: Feed the spectrum and oscilloscope
  • view commit • Engine: Abandon a queued track when the playlist changes
  • view commit • Engine: Crossfade seeks
  • view commit • Engine: Seek the decoder back to the start
  • view commit • Engine: Crossfade a manual track change
  • view commit • Engine: Play DSD over PCM
  • view commit • Engine: Follow the DSD over PCM setting
  • view commit • Engine: Take the device exclusively for DoP
  • view commit • Engine: Move the system default off a device held for DoP
  • view commit • Engine: Log why a track does or does not get a DoP carrier
  • view commit • Engine: Mark chunks lossless from the decoder
  • view commit • Engine: Push metadata changes when they are heard
  • view commit • Engine: Keep the device running through a pause
  • view commit • Engine: Move to a new output device in place when it can
  • view commit • Engine: Reuse the decoder for the next track of the same file
  • view commit • Engine: Flag tracks playing as silence, clear the rest
  • view commit • Engine: Note that Remote Control and MCP need no porting
  • view commit • Engine: Test the DSD bit order through both paths
  • view commit • Engine: Make the new engine the default
  • view commit • Engine: Remove the chain engine
  • view commit • Engine: Follow rate changes made in Audio MIDI Setup
  • view commit • Build: Stamp the version on every build
  • view commit • Engine: Capture the audio in and out of the pump
  • view commit • Engine: Log cycles the device skipped or repeated
  • view commit • Vorbis: Take Ogg Vorbis ahead of the CoreAudio plugin
  • view commit • FLAC: Sign libFLAC after patching it
  • view commit • Engine: Log which decoder opens each track
  • view commit • Engine: Name the EQ preamp property explicitly
  • view commit • CI: Build with Xcode 27
  • view commit • File Tree: Add Collapse All Folders menu item
  • view commit • Engine: Clear the Xcode 27 compiler warnings
  • view commit • CI: Download the Metal toolchain
  • view commit • Toolbar: Replace the volume popover with an inline slider
  • view commit • Window: Show what playback sends to the output device
  • view commit • Engine: Hold the output device exclusively, at each track's rate
  • view commit • Engine: Dither what processing leaves between 16-bit steps
  • view commit • Playback: Switch tracks without stopping first
  • view commit • Tests: Keep the host of the in-place switch test
  • view commit • Touched by Xcode
  • view commit • Added Spanish strings for new audio integrity status system
  • view commit • Empty commit to sync version number
  • view commit • Panels: Filter open and save panels by content type
  • view commit • Audio: Drop the HDCD decoder when the input format changes
  • view commit • Audio: Keep the playback status as a CogStatus
  • view commit • Revert "FLAC: Sign libFLAC after patching it"
  • view commit • HLS: Read playlists and segments without a stack buffer
  • view commit • FFmpeg: Size error buffers to what av_strerror writes
  • view commit • HTTP: Keep the Shoutcast stream title off the stack
  • view commit • HighlyComplete: Fill the NDS BIOS images in place
  • view commit • Playlist: Split URL expansion and filtering out of insertURLs
  • view commit • Build: Let vendored decoders keep their large stack frames
  • view commit • App: Declare AppController an application delegate
  • view commit • Notifications: Drop the NSUserNotification delegate
  • view commit • App: Declare menu item validation where it is implemented
  • view commit • Build: Clear the remaining compiler warnings in Cog's own code
  • view commit • Build: Drop the Last.fm keys from the Swift compilation conditions
  • view commit • Plugins: Link CogAudio where its headers are used
  • view commit • Build: Silence warnings in vendored sidplayfp, CELT and unrar
  • view commit • Syntrax: Make the Lanczos radius a double
  • view commit • minimp3: Clear the warnings in the VBRI and extended helpers
  • view commit • MIDI: Update spessasynth_core for its documentation fix
  • view commit • Window: Drop the deprecated toolbar separator and Customize items
  • view commit • AVIF: Rebuild libdav1d 1.5.1 for macOS 12
  • view commit • MIDI: Point spessasynth_core at the fork's published xcode27
  • view commit • CI: Build on a self-hosted runner
  • view commit • CI: Require a macOS self-hosted runner
  • view commit • Build: Silence warnings from Signalsmith, melonDS and libFLAC headers
v3651 Sep 15, 2026, 11:52 AM Download 49.5 MB
v3633 Aug 14, 2026, 9:05 AM Download 49.9 MB
  • view commit • MIDI: Last minute SpessaSynth bug fix for drums
v3632 Aug 14, 2026, 6:20 AM Download 49.9 MB
  • view commit • MIDI: Updated SpessaSynth with major changes
  • view commit • Normalize file reference URLs before opening or storing them
  • view commit • MIDI: Filter all SpessaSynth banks through player
  • view commit • MIDI: Use SpessaSynth for files with external bank
  • view commit • Preferences: Move Resampling to Synthesis
  • view commit • MIDI: Fix a serious looping bug with Sinc mode
  • view commit • MIDI: Fixed SpessaSynth handling weird DLS banks
v3625 Aug 11, 2026, 11:09 PM Download 49.82 MB
  • view commit • MIDI: Release the audio unit when the player that made it goes
v3405 Mar 14, 2026, 9:44 PM Download 46.03 MB
  • view commit • TagLib: Updated TagLib to version 2.2.1
v3404 Mar 10, 2026, 5:51 AM Download 45.95 MB
  • view commit • Debugging: Add more verbose bad URL logging
  • view commit • Highly Complete: Update lazyusf2
  • view commit • Audio Playback: One more safety check
  • view commit • VGMStream: Updated libvgmstream code base
v3400 Mar 5, 2026, 4:28 AM Download 45.95 MB
  • view commit • Output: Attempt to fix possible race condition
  • view commit • DSP Chain: Implement Signalsmith Stretch as option
  • view commit • Touched by Xcode
  • view commit • VGMStream: Updated libvgmstream code base
  • view commit • DSP Chain: Last remaining fixes for Signalsmith
  • view commit • App Delegate: Silence warning on macOS 12+
  • view commit • DSP Chain: Correct Signalsmith Stretch engine name
v3349 Dec 13, 2025, 2:59 AM Download 46 MB
  • view commit • Highly Complete: Move silence seconds declaration
  • view commit • Highly Complete: Move GSF sample rate reporting
  • view commit • TagLib: Don't collide with inputs' own chapters
  • view commit • FFmpeg: Signal tag updates for normal files
v3345 Dec 7, 2025, 7:17 AM Download 46 MB
  • view commit • FFmpeg: Fix unmapped tags' name case matching
  • view commit • Audio Player: Work around some potential crashes
v3343 Oct 9, 2025, 5:33 AM Download 46.41 MB
  • view commit • Bug Fix: Resize album art for info button
v2405 Jun 23, 2022, 2:55 AM Download 39.86 MB
  • view commit • [Playlist Info Loader] Do not clear if loading
  • view commit • Serialize persistent store update to main thread
  • view commit • Updated VGMStream to r1745-37-g776c4d8c
v2402 Jun 22, 2022, 11:57 PM Download 39.86 MB
  • view commit • Changed updater script to handle new version strings
  • view commit • AboutWindow adjustments
  • view commit • Merge pull request #280 from losnoco/nevack/about-window
  • view commit • Fix runtime warnings in Window/AboutWindowController.xib
  • view commit • [About Window] Reorganized credits and added @nevack and myself in them
  • view commit • [About Window] Fix
  • view commit • Sync version number with main branch
v2395 Jun 22, 2022, 8:12 AM Download 39.86 MB
  • view commit • Add Sandbox notice to README
  • view commit • Removed Sparkle
  • view commit • Change version numbering system
  • view commit • Change the product install path to /Applications
  • view commit • [Sandbox] Update Info.plist generator
  • view commit • Update Info.plist
  • view commit • Remove stray entitlement from Sparkle
  • view commit • Update Patreon credits
  • view commit • [Core Audio Output] Guard against nil pointer
  • view commit • [Sandbox Configuration] Fix nil pointer issues
  • view commit • [Sandbox Configuration] Do not delete path on fail
  • view commit • [Sandbox Configuration] Delete from storage later
  • view commit • [Sandbox Configuration] Do more checks on test
  • view commit • Revert "Remove stray entitlement from Sparkle"
  • view commit • Revert "Removed Sparkle"
  • view commit • [Info Plist] Auto format XML escapes
  • view commit • [Crashlytics] Require asking user consent
  • view commit • [About Dialog] Switched to WebView for credits
  • view commit • [Main Menu] Added Privacy Policy link in App Menu
  • view commit • Remove deep forced code signing option
  • view commit • Completely overhaul code signing practices
  • view commit • [Volume Control] Only initialize view once
  • view commit • Remove developer supplied configuration file
  • view commit • Assign blank development team in project files
  • view commit • One last attempt to fix CI
Legacy

Very old builds