Acknowledgments
Open-source libraries, assets, and AI model components used in MacAMP, with license information.
MacAMP plays local music and performs audio analysis and karaoke separation on
your device. It contains no advertising or third-party analytics. Optional online
features send requests to their services: metadata and lyrics lookup, artist and
album information, downloads, software updates, and configured AI connectors.
Cloud AI receives the messages and library information allowed by your connector
permissions. Enabling external MCP access lets a local client read the library
information exposed by its tools. See the settings disclosures and each app's
bundled PrivacyInfo.xcprivacy for the relevant controls.
MacAMP
MacAMP is free software by Nayden Panchev (drpanchev.com), licensed under the GNU General Public License v3.0 with the additional attribution and naming terms in its NOTICE file. Source code: github.com/airnayden/macamp.
MacAMP is built with — and gratefully acknowledges — the open-source software listed below. Each component remains under its own license; the names and links here point to the canonical upstream project and full license text.
Open-source libraries (Swift Package Manager)
The following Swift packages are resolved and linked into the app. Versions are
read verbatim from Tuist/Package.resolved.
- AVFAudioExtensions — MIT — v0.5.1
SFBAudioEngine support library — https://github.com/sbooth/AVFAudioExtensions - DUMB (CDUMB) — BSD-like (DUMB license) — v2.0.3
Tracker/module decoder — https://github.com/sbooth/CDUMB - Speex (CSpeex) — BSD-3-Clause (Xiph.Org) — v1.2.1
Speech codec — https://github.com/sbooth/CSpeex - CXXAudioRingBuffer — MIT — v0.1.1
SFBAudioEngine support library — https://github.com/sbooth/CXXAudioRingBuffer - CXXDispatchSemaphore — MIT — v0.4.1
SFBAudioEngine support library — https://github.com/sbooth/CXXDispatchSemaphore - Monkey's Audio (CXXMonkeysAudio) — BSD-3-Clause — v12.13.0
Lossless APE decoder — https://github.com/sbooth/CXXMonkeysAudio - CXXRingBuffer — MIT — v0.6.1
SFBAudioEngine support library — https://github.com/sbooth/CXXRingBuffer - TagLib (CXXTagLib) — LGPL-2.1-or-later / MPL-1.1 — v2.3.0
Audio metadata reader — https://github.com/sbooth/CXXTagLib - CXXUnfairLock — MIT — v0.3.1
SFBAudioEngine support library — https://github.com/sbooth/CXXUnfairLock - EventSource — MIT — v1.5.1
Server-sent event transport — https://github.com/mattt/eventsource.git - FLAC / libFLAC — BSD-3-Clause (Xiph.Org) — v0.2.0
Lossless codec — https://github.com/sbooth/flac-binary-xcframework - GRDB.swift — MIT — v7.11.1
SQLite application database — https://github.com/groue/GRDB.swift - LAME — LGPL-2.0-or-later — v0.1.2
MP3 encoder/decoder — https://github.com/sbooth/lame-binary-xcframework - Musepack (libmpcdec) — BSD-3-Clause — v0.1.2
Lossy codec — https://github.com/sbooth/mpc-binary-xcframework - mpg123 — LGPL-2.1-only — v0.3.1
MP3 decoder — https://github.com/sbooth/mpg123-binary-xcframework - Ogg / libogg — BSD-3-Clause (Xiph.Org) — v0.1.3
Container format — https://github.com/sbooth/ogg-binary-xcframework - Opus / libopus — BSD-3-Clause (Xiph.Org) — v0.3.0
Lossy codec — https://github.com/sbooth/opus-binary-xcframework - SFBAudioEngine — MIT — v0.12.1
Audio decoding & playback engine — https://github.com/sbooth/SFBAudioEngine - libsndfile — LGPL-2.1-or-later — v0.1.2
PCM / WAV / AIFF / CAF I/O — https://github.com/sbooth/sndfile-binary-xcframework - Sparkle — MIT (macOS only) — v2.9.3
Software-update framework — https://github.com/sparkle-project/Sparkle - Swift Atomics — Apache-2.0 with Swift exception — v1.3.1
Atomic operations — https://github.com/apple/swift-atomics.git - Swift Collections — Apache-2.0 with Swift exception — v1.6.0
Collection data structures — https://github.com/apple/swift-collections.git - SwiftLog — Apache-2.0 — v1.15.0
Logging — https://github.com/apple/swift-log.git - SwiftNIO — Apache-2.0 — v2.101.3
Asynchronous networking — https://github.com/apple/swift-nio.git - MCP Swift SDK — Apache-2.0 / MIT (see upstream LICENSE) — v0.12.1
Model Context Protocol transport — https://github.com/modelcontextprotocol/swift-sdk - Swift System — Apache-2.0 with Swift exception — v1.8.1
System interfaces — https://github.com/apple/swift-system.git - True Audio (TTA) — LGPL-2.1-or-later — v0.1.2
Lossless codec — https://github.com/sbooth/tta-cpp-binary-xcframework - Vorbis / libvorbis — BSD-3-Clause (Xiph.Org) — v0.1.2
Lossy codec — https://github.com/sbooth/vorbis-binary-xcframework - WavPack — BSD-3-Clause — v0.2.0
Lossless / hybrid codec — https://github.com/sbooth/wavpack-binary-xcframework
Audio engine note
The codec libraries above are consumed through SFBAudioEngine. The LGPL-licensed codecs (mpg123, libsndfile, True Audio, LAME) ship as dynamically-linked XCFrameworks so the LGPL relink requirement is satisfied; the BSD/MIT codecs may be linked statically or dynamically.
Visualizer — projectM / MilkDrop (macOS only)
The projectM (MilkDrop) visualizer is OpenGL-based and LGPL-licensed. It ships in
the macampMac target (compiled with MACAMP_PROJECTM, dynamically linked) and
never on iOS.
- libprojectM 4.1.6 — LGPL-2.1 — dynamically linked (
libprojectM-4.4.dylib, embedded underContents/Frameworks, loaded via@rpath). MacAMP's one-file patch is kept under the LGPL. Full text and notice:macOS/Vendor/projectM/LICENSE-projectM-LGPL-2.1.txtandmacOS/Vendor/projectM/ACKNOWLEDGMENTS-projectM.md.
Preset pack — "Cream of the Crop" (MilkDrop presets)
- Source: https://github.com/projectM-visualizer/presets-cream-of-the-crop
- License / redistribution terms (explicit): MilkDrop presets were, in almost
all cases, not released under any specific license. Each preset author retains
copyright, but because the presets were freely released and have been bundled and
redistributed across many applications for two decades, they are treated as
public domain. If a preset author does not want their creation included, the
projectM team removes the preset(s) from future releases. MacAMP bundles a curated
allowlist subset (~40 presets), not the full pack. Full text:
macOS/Vendor/projectM/LICENSE-presets-cream-of-the-crop.md.
Texture pack — "MilkDrop Texture Pack"
- Source: https://github.com/projectM-visualizer/presets-milkdrop-texture-pack
- License / redistribution terms (explicit): the pack collects the textures
originally released with MilkDrop plus commonly-used community textures, and is
recommended for bundling with any projectM application that ships presets. The
presets reference these textures via
projectm_set_texture_search_paths. SeemacOS/Vendor/projectM/README-texture-pack.md.
SoundFont — General-MIDI instrument bank
MacAMP renders MIDI files through Apple's AVAudioUnitSampler, loaded with the
GeneralUser GS SoundFont by S. Christian Collins as its General-MIDI instrument
bank.
- Name: GeneralUser GS
- Author: S. Christian Collins
- License: GeneralUser GS License (custom, royalty-free)
- Source: https://www.schristiancollins.com/generaluser.php
- Redistribution terms (explicit):
- Free to use and distribute bundled inside software, games and other products — including commercial ones — with no royalties and no attribution requirement.
- When the SoundFont is redistributed by itself (a standalone
.sf2file rather than embedded in an application), the accompanying license and documentation text must be included, and the SoundFont may not be sold on its own. - MacAMP bundles the bank inside the application, so the embedded-use terms apply; the upstream license/readme is shipped alongside the bank in the app's resources for completeness.
Repository note: only a tiny, self-authored test fixture (
PlayerCore/Tests/MIDITests/Fixtures/tiny.sf2— public domain, MacAMP-owned) is currently committed to the repository. The production GeneralUser GS bank is injected into the sampler by the app shell at runtime; its.sf2file and license/readme must be placed in the app's bundled resources before MIDI playback ships.
Karaoke mode — AI model and tooling
Karaoke mode uses an offline vocal-separation pipeline built on the following
components. Standard macOS releases include the model. Karaoke separation is
unavailable in iOS builds and macOS builds without the model. The model
provenance and owner confirmation are recorded in Spikes/ADR-karaoke-separation.md.
Mel-Band Roformer (vocal separation model)
- Paper: "Mel-Band RoFormer for Music Source Separation" — Wang et al., ByteDance AI Labs — arXiv:2310.01809 — https://arxiv.org/abs/2310.01809
- Checkpoint author: Kimberley Jensen
- Checkpoint repository: https://huggingface.co/KimberleyJSN/melbandroformer
- Training code (MIT): https://github.com/ZFTurbo/Music-Source-Separation-Training
- Architecture implementation (MIT): https://github.com/lucidrains/BS-RoFormer
Redistribution clearance: the project owner confirmed on 2026-11-03 that
clearance has been obtained for the bundled checkpoint. The confirmation is
recorded in Spikes/ADR-karaoke-separation.md; the underlying permission record
is maintained by the owner. This notice does not assign the model weights the
licenses of the separate training or architecture code.
coremltools (model conversion, build-time only)
The Mel-Band Roformer checkpoint is converted to Core ML MLProgram fp16 format using Apple's coremltools library. coremltools is used at build time only and is not bundled in the app.
- License: BSD-3-Clause
- Source: https://github.com/apple/coremltools
Downloads — yt-dlp and ffmpeg (macOS only)
The YouTube downloader feature ships two bundled command-line tools. Both are
macOS-only (macampMac). They are copied out of the app bundle to
~/Library/Application Support/MacAMP/Tools/ on first use and are never part
of PlayerCore.
yt-dlp
- Pinned version: 2026.08.19
- Upstream source: https://github.com/yt-dlp/yt-dlp
- Asset:
yt-dlp_macos.zip— the universal (x86_64 + arm64) PyInstaller one-directory build, macOS 10.15+. It ships in the app bundle as a whole directory tree atContents/Resources/yt-dlp/: ayt-dlp_macoslauncher plus a sibling_internal/holding the CPython runtime and ~100 shared libraries. The launcher resolves_internal/Pythonat startup, so the two are inseparable. - Source license: The Unlicense — yt-dlp's own source code is in the public domain.
- Shipped binary license: The macOS release asset is a PyInstaller bundle — a combined work that packages yt-dlp's Unlicense source together with the CPython interpreter and several GPL-licensed runtime libraries. Per yt-dlp's own release documentation, the resulting binary is a GPLv3+ combined work. Shipping it as a directory rather than a single file changes the packaging, not the licence: every one of those libraries is the same combined work, and the offer below covers all of it.
- Source offer: the in-bundle
SOURCE-OFFER.txt(shipped flat underContents/Resources/, beside theyt-dlp/tree rather than inside it) provides the written offer required by GPLv3 §6(b). It cites yt-dlp's source repository at the pinned release tag as the corresponding source.
ffmpeg and ffprobe
- Pinned version: 9.0.1
- Build source: https://git.martin-riedl.de/ffmpeg/build-script — Martin Riedl's open-source macOS static build service (https://ffmpeg.martin-riedl.de)
- Upstream source: https://ffmpeg.org / https://git.ffmpeg.org/ffmpeg.git
- License: The shipped binary is configured with
--enable-gpland--enable-version3(without--enable-nonfree), making it a GPLv3 static build. This matches the GPLv3+ yt-dlp binary it ships alongside, giving the bundled tool set a single license story. - Source offer: the in-bundle
SOURCE-OFFER.txtcites the build recipe URL as the corresponding source for the GPL build.
Opus quality note: when a YouTube source is already served as an opus stream, yt-dlp remuxes (stream-copies) rather than re-encoding. The
--audio-qualityflag is therefore inert for those items, which avoids a generation-loss opus-to-opus transcode.
Test and development infrastructure
The following components are used at build/test time only and are not shipped in the app binary.
libbs2b (crossfeed reference vectors)
The crossfeed kernel (PlayerCore/Sources/DSP/CrossfeedKernel.swift) is validated against
ground-truth impulse responses generated from libbs2b 3.1.0. The library's C source
(vendor/bs2b.c and three headers) is committed verbatim under
tools/fixtures/bs2b/vendor/ solely to compile a tiny fixture generator; neither the
C source nor any compiled output ships in the app.
- Upstream project: libbs2b — Bauer stereophonic-to-binaural DSP
- Version: 3.1.0
- Author: Boris Mikhaylov
- License: MIT — see
tools/fixtures/bs2b/vendor/COPYING - Tarball SHA-256:
6aaafd81aae3898ee40148dd1349aab348db9bfae9767d0e66e0b07ddd4b2528(cross-checked against the Homebrew formula pin — seetools/fixtures/bs2b/README.md)
Apple frameworks
MacAMP builds on Apple's SDK frameworks (SwiftUI, AVFAudio, AudioToolbox, Accelerate, MediaPlayer, CoreML, GRDB-linked system SQLite, Metal, and — on macOS only, for projectM — the deprecated-but-functional OpenGL.framework). These are used under the Apple SDK license and are not redistributed by MacAMP.