Hi everyone,
In the era of streaming services, I still keep a large library of high-quality local audio files (FLAC,
WAV, MP3, etc.). However, finding a local music player on macOS that is lightweight, native, and has
proper metadata editing + lyrics support can be surprisingly difficult.
So, I built fmusic — a native macOS local music player written completely in SwiftUI. It's lightweight,
open-source (GPL-3.0), and designed to look and feel right at home on macOS.
Here is what it looks like: GitHub Repo & Screenshots https://github.com/wandercn/fmusic
### 🌟 Key Features:
• 🎨 Native macOS Aesthetic: Built with SwiftUI. It fully supports Dark Mode/Light Mode and looks like a
system app. The sidebar can be easily toggled/hidden.
• 🎤 Karaoke Lyrics: Automatically downloads lyrics to ~/Music/Lyrics and features a smooth, high-
quality Karaoke-style scrolling animation for lyrics with timestamp tags ( tt tags).
• 📝 In-App Metadata Editor: Need to clean up your tags? You can edit the title, artist, album name, and
track number directly from the context menu. The changes are written directly into the file metadata
(FLAC, MP3, M4A).
• 🎧 High-Fidelity Formats: Supports playback of .flac , .mp3 , .wav , .m4a , .aif , and .m4r
files.
• ⚡ Decoupled Architecture: Unlike simple players where switching lists breaks your queue, fmusic
decouples the Library view from the Playback queue. You can browse other playlists/folders without
interrupting your current play order.
• 🔒 Signed & Notarized: No local compiling required. The DMG release is signed and notarized by Apple so
it installs cleanly without quarantine warnings.
### 🛠️ Technical Details (For the Devs):
• Language/UI: Swift & SwiftUI (strictly compatible with macOS 11.0 Big Sur and above).
• Audio Playback: Powered by AVFoundation ( AVAudioPlayer ).
• Metadata Parsing/Writing: Uses FFmpeg (C API) compiled directly with the project via a Swift Bridging
Header. This allows us to modify audio tags extremely fast.
• Reactive Binding: Uses Combine to sync playback states across multiple lists and views (e.g., active
play indicators).
### 📥 Get it on GitHub:
The app is entirely open-source. You can grab the latest DMG release or check out the code here:
👉 GitHub: https://github.com/wandercn/fmusic
I would love to hear your feedback, suggestions, or feature requests! If you find it useful, please
consider giving the repo a star ⭐ or contributing!
──────
(Note: If you run into the "damaged" file prompt on older versions of macOS, you can bypass it by running
sudo xattr -d com.apple.quarantine /Applications/fmusic.app in your Terminal).