OPEN SOURCE // GPL-3.0

ASTRA

Audiophile desktop music player

A music player for people who still have a music library. Your FLACs, your MP3s, your carefully tagged collection, played back the way it was meant to sound.

Astra home screen

Built different.

Not another wrapper around a web player. Real audio processing, from the file to the DAC.

Playback

Gapless playback

Pre-buffered, crossfade-free transitions so albums flow the way they were mastered. No gaps, no glitches, no compromises.

Output

Bit-perfect output

WASAPI Exclusive on Windows, CoreAudio HAL on macOS, ALSA hw on Linux. The OS mixer never touches your samples.

Formats

Everything plays

FLAC, MP3, WAV, OGG, AAC, M4A, OPUS, WMA, AIFF, ALAC, APE, WavPack and IAMF natively, with an FFmpeg fallback for the rest.

DSP

Native C++ analysis

Real-time audio analysis through a native C++ module. The analysis path is tapped independently from your output routing.

Loudness

Normalization that works

ReplayGain and Opus R128 support, so a shuffled library stops lurching between quiet masters and loud ones.

Routing

Proper audio settings

Output device selection, multichannel support with per-channel remapping, and mic-based delay calibration for Bluetooth.

Twenty bands.

A fully parametric equalizer with up to 20 bands, five filter types, and a live frequency response graph with spectrum overlay. If you use AutoEQ, headphone calibration profiles import directly.

  • Up to 20 parametric bands
  • Peaking, low shelf, high shelf, high pass, low pass
  • ±12 dB gain, Q from 0.1 to 18
  • Live response graph with spectrum overlay
  • AutoEQ profile import
  • Preset import and export
Astra parametric equalizer

See the signal path.

The pipeline shelf shows what is actually happening to the current track, node by node. Decoder, resampler, routing, spatial, normalization, EQ, delay compensation, output, with live values at every stage. Stages only appear when they are actually doing something, so one glance tells you whether anything is touching the signal.

SourceFLAC 24/48.0
DecoderWeb Audio API
Resampler48.0 → 44.1 kHz
Normalization-7.7 dB
OutputSpeakers

Your collection, organized.

Point it at your folders. Metadata, artwork, and history are handled from there.

Browse

Six ways in

Artists, albums, tracks, genres, years, folders. Album counts, a singles section, and multi-disc releases handled properly.

Ratings

Stars that mean something

One to five stars in half-star steps, with rating calibration so your scale stays consistent across the library.

Playlists

Rules, not lists

Dynamic playlists build themselves from metadata, favorites, ratings, play count, dates, duration and BPM.

Import

Bring your playlists

CSV, M3U, M3U8, XSPF, WPL and ASX in, M3U and M3U8 back out. Missing tracks are preserved and heal themselves when the files reappear.

Metadata

Fix it in place

Bulk edit titles, artists, albums and artwork, with undo and redo. Write to the file or keep overrides in the database.

Lyrics

Synced, timed, translated

Embedded tags, .lrc, .xlrc, LRCLIB and XLRCDB. Word-level timing, furigana, translations, and a pop-out window.

Listening stats Experimental

Seven days, thirty days, a year, or everything you have ever played. Listening time, play counts, active days, and your top tracks, albums and artists. History from elsewhere imports through a documented file format, merging rather than overwriting, and any summary exports as a share card.

Your library
Listening Stats
Share 7D 30D 1Y All
Listening Time
5:16:51
Qualified Plays
189
Tracks Played
247
Active Days
12
Listening Time Hover a bar for exact time
Jul 3         Jul 8         Jul 13         Jul 18         Jul 23         Jul 28        

Seven scopes. Your layout.

Real-time visualizers powered by native C++. Drag, resize, and arrange them however you want. The analysis path is independent from output routing, so scopes always reflect the source material.

Spectrum Oscilloscope Vectorscope Spectrogram Waveform VU Meter LUFS Meter

Oscilloscope

Pitch-lock detection with waveform display. Stable, coherent trace even at low frequencies.

Spectrum Analyzer

Configurable FFT with logarithmic frequency scaling, heat palettes, and adjustable smoothing.

Vectorscope

Stereo phase imaging. Visualize the spatial relationship between your left and right channels.

Build your own rack.

Pick from seven scopes, arrange them in any layout, resize to fit your workflow. Save analyzer profiles and switch between setups on the fly. Any scope can pop out into its own window.

Adapts to your music.

Six themes including a full light mode, or let the accent come straight from the album art.

Fullscreen mode

Album art backdrop with ambient spectrum visualization, and badges for Atmos, Eclipsa and multichannel content. Lean back and let the music take over.

  • Light and dark, six presets
  • Custom accent, or pulled from cover art
  • Configurable keyboard and mouse bindings
  • Shortcuts that work while Astra is unfocused
  • Session restore for queue, playback and view
  • UI scaling
Astra fullscreen mode

Out of the way.

When you just want your music playing without the full window, the mini player keeps controls accessible while staying out of your workspace. Album art backdrop, contrast adaptation, and its own window class on Linux.

Astra mini player
Optional // off by default

Audio in three dimensions.

Astra is the first general purpose desktop music library player with native IAMF and Eclipsa Audio playback. Spatial tracks are first-class citizens of your library, decoded and rendered entirely on your own machine by the Astra Spatial Engine.

Virtual Speaker Room

Position virtual speakers around the listener in three dimensions, including elevation and room geometry, and hear the binaural render update live as you move them. Dolby Atmos multichannel decoding works too, without Atmos-compatible hardware.

  • Native IAMF and Eclipsa Audio decoding
  • Binaural render for headphones
  • Direct output to multichannel hardware
  • Height layouts up to 7.1.4
  • Diffuse-field EQ and bass crossover
  • Look-ahead brick-wall limiter for headroom
Render DirectBinaural 12ch → 2ch binaural
Layout 7.1.4 Ambient Upmix Off HRTF 44.1 kHz
Front FC FL FR TFL TFR SL SR TBL TBR BL BR LFE

Every speaker in the house. Experimental

Parallax plays the same track, in sync, across every machine on your network. One host, any number of speakers, gapless across track boundaries. No cloud, no accounts, no subscription.

Synchronized, locally

Any copy of Astra can act as a host or as a speaker. Zones are named, tuned and controlled independently, and the clock keeps itself honest without you touching anything.

  • Guided discovery and secure PIN pairing
  • Certificate-pinned connections
  • Automatic clock calibration and drift correction
  • Per-zone volume, output trim and delay
  • Mid-track joining and reconnect recovery
  • Gapless handoffs on every speaker at once
Speakers (1 playing · 2 connected) Play all Play none Add speaker
parallax-tv Connected · Playing Output ALSA default · Trim +135 ms Play here Tune
living-room Connected · Not selected for playback Output ALSA default · Trim +40 ms Play here Tune
studio Offline · last seen 7/20/2026 Play here

Parallax Receiver

A headless daemon for Raspberry Pi-class Linux boxes. Web-based pairing, status and output selection, with automatic updates. Turns a spare board into a speaker without running the full app.

Parallax OS

A flashable Raspberry Pi image. Wi-Fi onboarding over a captive portal, automatic security updates, service watchdogs, and health-checked upgrades with rollback. Flash it, boot it, open parallax.local, pair.

TV mode

Attach a display and Parallax OS becomes a now-playing screen: artwork, transport controls, and on-TV pairing and settings. HDMI-CEC wakes the TV and switches input when a stream starts, and your TV remote drives it.

Off the desktop.

Astra reaches your phone, your scripts, and anything else on your network. All of it stays local.

Astra Mobile Coming to Android

A standalone Android player in its own right, not just a remote. It can also pair with the desktop to control playback and keep your favorites and playlists in sync, with conflicts shown side by side before anything is applied. Not publicly downloadable yet.

  • Standalone player, no desktop required
  • Two-way sync of favorites and playlists
  • Conflict review before changes apply
  • Pairs over your local network only

Phone Remote

An installable web remote served by Astra itself. Scan a QR code to pair, then control playback from any phone on the network, with system media controls. No app store, no account.

Astra Signal

Turn any track into a scannable card or a link that works anywhere, with no provider IDs and no account. Copy it as an image, save a PNG, or share the link.

Companion API

A local HTTP API lets external tools observe playback, search your library, edit the upcoming queue, and manage favorites and playlists. Loopback or user-approved paired HTTPS, bearer auth, per-client scopes, and no filesystem paths ever exposed. Off by default.

  • GET /v2/playback - state, position, current track
  • GET /v2/events - real-time SSE stream, four topics
  • GET /v2/search - bounded library search
  • POST /v2/playback/actions - play, pause, seek, shuffle, repeat
  • POST /v2/queue - edit the upcoming queue
  • SCOPES observe, playback-control, library-search, library-write

The original /v1 endpoints remain supported for existing widgets and remotes.

GET /v2/playback JSON RESPONSE
{
  "state": "playing",
  "positionMs": 42130,
  "durationMs": 218560,
  "shuffle": false,
  "repeat": "off",
  "track": {
    "ref": "trk_9f2c...a41",
    "title": "Running Up That Hill",
    "artist": "Kate Bush",
    "album": "Hounds of Love",
    "favorite": false,
    "artworkRef": "art_31b8...ce0"
  }
}

Connects to your services.

Astra integrates with the services you already use. Everything here is opt-in and off by default.

Scrobbling

Last.fm, ListenBrainz, and any AudioScrobbler-compatible endpoint. Custom profiles for self-hosted servers, and multi-scrobble to several destinations at once.

Discord Rich Presence

Show what you're listening to, complete with cover art. Compact or expanded layouts, configurable link targets, and a choice of what the info line shows.

Self-hosted servers

Jellyfin and any Subsonic-compatible server, including Navidrome, Airsonic, Gonic and Funkwhale. Browse, stream, and import server favorites and playlists.

Lyrics providers

LRCLIB, pointed at the default endpoint or your own mirror, plus XLRCDB lookup and download for multilingual and word-timed lyrics.

And the rest.

Smaller things that are easy to miss, and hard to give up once you have them.

Under the hood

ComponentDetailEngine
FrameworkElectron + Vite, React 19TypeScript
Audio PipelineWeb Audio API + native moduleC++ DSP
Bit-perfect OutputWASAPI Exclusive, CoreAudio HAL, ALSA hwC++ Native
Spatial AudioIAMF / Eclipsa, Dolby Atmos, up to 7.1.4Astra Spatial Engine
Visualizers7 scopes, fully customizable rack layoutC++ Native
Formats FLAC MP3 WAV OGG AAC M4A OPUS AIFF WMA ALAC APE WV IAMF Native + FFmpeg
EqualizerParametric, 20-band, AutoEQ importWeb Audio
Multi-roomParallax, synchronized LAN playbackLocal only
PlatformsWindows, macOS, LinuxCross-platform
LicenseGPL-3.0-onlyOpen Source

Get Astra

Prebuilt binaries for all major platforms. Or build it yourself if that's your thing.

Or build from source

terminal BASH
git clone https://github.com/Boof2015/astra.git
cd astra
npm install
npm run dev       # development
npm run dist      # package for current platform