Astra
July 5, 2026 · View on GitHub
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, synchronized multi-room playback, scrobbling, and a UI that adapts to your music. No telemetry, no accounts, no streaming.
Playback
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.
Visualizers
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.
Equalizer
Up to 20 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.

Library
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.
Audio Settings
Output device selection, loudness normalization with ReplayGain support, per-channel remapping for multichannel setups, and delay calibration for wireless or Bluetooth speakers.
Interface
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.

Scrobbling
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.
Integrations
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.)
Astra API
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.
Parallax
Play the same music in perfect sync across multiple machines on your local network. One machine hosts and controls playback; any number of others join as speakers and stay locked to it. A guided setup walks each machine through its role, speakers are paired with a PIN over the LAN, and per-speaker delay tuning corrects anything that sounds early or late. Playback stays gapless across track boundaries on every speaker. Local network only, no accounts, no cloud.
Parallax is opt-in and still experimental (though stable) enable it from the Experimental section of Settings to reveal its controls.
Experimental
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 - now supports Astra mobile
- 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
- Controller support - navigate Astra with an Xbox or PlayStation controller: D-pad/stick to move, A/Cross to select, bumpers for tabs, stick-clicks to jump to the sidebar or now playing
Download
Prebuilt binaries for Windows, macOS, and Linux are available on the Releases page.
Officially available on the AUR (astra-music-bin).
Windows users can also winget install Boof2015.Astra
Community maintained packages
These packages are maintained by third parties and are not built, audited, or officially supported by the Astra project. Packaging, signing, updates, and distribution are handled by their respective maintainers.
Building from Source
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 install
The 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)
Documentation
For detailed technical documentation, see the Wiki.
Support
If you find Astra useful and want to support a broke college student, consider supporting development:
License
This project is licensed under the GNU General Public License v3.0. See LICENSE for the full text.