A desktop music player for people who still have a music library.
Astra plays your local music - FLACs, MP3s, whatever your collection looks like. It has a native C++ DSP engine, real-time visualizers, a parametric EQ, Dolby Atmos decoding, scrobbling, and a UI that adapts to your music. No telemetry, no accounts, no streaming.
Gapless playback with pre-buffering so albums flow the way they were intended. Supports MP3, FLAC, WAV, OGG, AAC, M4A, OPUS, WMA, AIFF, ALAC, APE, and WavPack natively, with an FFmpeg fallback for anything else. Dolby Atmos multichannel decoding works without Atmos-compatible hardware. Bit-perfect output bypasses the OS mixer for direct hardware delivery — WASAPI Exclusive on Windows, CoreAudio HAL on macOS, ALSA hw on Linux.
Seven real-time visualizers powered by a native C++ module - oscilloscope, spectrum analyzer, vectorscope, and more. The entire scope rack is customizable: pick your scopes, drag and resize them into any layout, and save presets. The analysis path runs independently from output routing, so scopes always reflect the source material.
Up to 10 fully parametric bands, a live frequency response graph with spectrum overlay, and built-in presets. Save your own, or import AutoEQ headphone calibration profiles directly.
Point Astra at your music folders and it handles metadata extraction, album artwork, and a searchable library you can browse by artist, album, or track. Reads ID3v2.4 and Vorbis Comments, parses multiartist tags properly, supports custom artist images, and scans .lrc files by filename. Favorites and recently played are tracked automatically, and the built-in metadata editor lets you fix tags without leaving the player. A Quick Launch palette and full keyboard shortcuts get you anywhere without touching the mouse.
Output device selection, loudness normalization with ReplayGain support, per-channel remapping for multichannel setups, and delay calibration for wireless or Bluetooth speakers.
The seek bar renders the actual waveform of the current track. Fullscreen mode shows album art with an ambient spectrum backdrop.
The mini player keeps controls accessible when you want Astra out of the way.
There's also synced lyrics with auto-scroll, pulled automatically from embedded lyrics, an .lrc file, or from LRCLIB. The lyrics panel pops out into its own window if you want it somewhere else.
Built-in support for Last.fm, AudioScrobbler, and ListenBrainz, plus a custom scrobbler profile system if you're running your own endpoint. Built in multiscrobble lets you submit to as many services as you want at once.
Everything that touches the network is optional and off by default.
- Discord Rich Presence - show what you're listening to with cover art, with options for how the presence is laid out
- Self-hosted media servers - Jellyfin, plus any Subsonic-compatible server (Navidrome, Airsonic, Gonic, Funkwhale, etc.)
An optional local REST API lets external tools read the current track, playback position, and cover art, or control playback. Loopback only, bearer token auth, disabled by default. See the API docs for details.
Opt-in experimental features that may get changed or removed based on feedback:
- PWA phone controller - control playback from your phone over local network, with system media controls and a QR code pairing wizard
- Library integrity scanner - find broken files, missing metadata, and quality issues across your library
- Graph visualization - additional visualizer mode to see connections between artists in your library
- Ambient stereo-to-multichannel upmix - fills the rear channels on multichannel setups when you're playing stereo files
- 5×5 grid activity indicator - shows what Astra is doing in the background
Prebuilt binaries for Windows, macOS, and Linux are available on the Releases page. Windows users can also winget install Boof2015.Astra. Linux builds ship as AppImage, DEB, RPM, and tarball.
Also available on the AUR (astra-music-bin).
Prerequisites: Node.js 18+, npm, and a C++ compiler toolchain.
| Platform | Toolchain |
|---|---|
| macOS | Xcode Command Line Tools |
| Windows | Visual Studio Build Tools |
| Linux | build-essential, python3, libasound2-dev |
git clone https://github.com/Boof2015/astra.git
cd astra
npm installThe postinstall script compiles the native C++ visualizer module for your platform.
npm run dev # Development
npm run build # Build application assets
npm run dist # Package for current platform
npm run dist:mac # macOS (DMG + ZIP)
npm run dist:win # Windows (NSIS + Portable)
npm run dist:linux # Linux (AppImage + DEB + RPM + tarball)For detailed technical documentation, see the Wiki.
If you find Astra useful and want to support a broke college student, consider supporting development:
This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.




