A modular music player and library manager for people who actually care about their collection — from lossless FLAC to Commodore 64 SID, on your desktop, your phone, and your hi-fi.
Not another streaming app. Aurena lives on your hardware, manages your files, and answers to nobody's recommendation engine. Your library never leaves your network.
Plenty of players nail some of these but Aurena aims to pull everything together inside of one easy to use and unified app. It streams, it tags, it plays chiptunes and makes your library available on all of your devices.
{{ p.body }}
Any one of these you can find elsewhere. All of them, working together, on hardware you own? That's Aurena.
Architecture at a glance
Plugin-based microkernel desktop app
Single-process, shared DI container
Modular EF Core contexts over one SQLite file
In-process event bus (domain and integration events)
Strict module boundaries enforced via internal
Reactive UI + Avalonia host shell
Real-time web + remote control layer
Deeper dive
Aurena is a local-first desktop music system built around a micro-kernel host that loads feature plugins at runtime.
The host is intentionally minimal. Almost all user-facing functionality — library management, playback engines, retro formats, playlists, podcasts, encoding, and remote control — is implemented as independent plugin modules.
All plugins share three things:
One process, one DI container
One SQLite database file, split into per-module DbContexts
An in-process message bus for decoupled communication
Plugins never reference each other directly. Instead, they communicate via typed domain and integration events, with unit tests and compile-time enforced rules ensuring module boundaries stay clean.
The system is composed of:
A thin Avalonia desktop host (composition root + UI shell)
A plugin discovery system (reflection-based loading from /Plugins)
A shared core contract library (Aurena.Core)
An infrastructure layer (Aurena.Infrastructure) for EF Core, messaging, search, and reconciliation
A media engine abstraction layer built around a unified GStreamer pipeline
A real-time remote/web layer (Angular + ASP.NET Core SSE sync)
Architecturally, Aurena prioritises:
Modularity over monoliths
Explicit boundaries via internal + contracts
Event-driven coordination over direct coupling
Single-process simplicity over distributed complexity
Replaceable subsystems via dependency inversion
Despite its modularity, Aurena remains a single deployed application, not a distributed system.
Aurena is designed around a simple idea:
“A complex desktop application should still be understandable as a set of isolated, replaceable features.”
That leads to three constraints:
Plugins must fail independently without taking down the app
Features must be added without modifying the host
Cross-module communication must be explicit and testable
The result is a modular monolith which behaves like a microservice architecture, but runs entirely inside a single desktop process.
Built for the Raspberry Pi 5 — turn an affordable single-board computer into a dedicated music system. It boots straight into Aurena, no desktop environment needed.
Connect to your amp via HDMI, analogue, or Bluetooth, then drive it from your TV's kiosk interface or remotely from a phone, tablet, or laptop. Living-room centrepiece or fully headless — your call.
A playback chain built on GStreamer and tuned for serious listening.
{{ f.title }} — {{ f.body }}
Drag the bands live, pick a preset — or switch on Auto mode and let Aurena read the genres of what's playing and resolve the curve for you on every track change.
A big alias table maps "shoegaze", "madchester", "techno" and hundreds more to tuned curves. When a track spans genres, you choose how the curves blend.
{{ f.title }} — {{ f.body }}
{{ f.title }} — {{ f.body }}
The killer detail: dedicated taggers overwrite files, library managers hide edits in a database. Aurena stores corrections in a portable sidecar beside the music—human-readable, backed up with the folder, and unaffected by tag changes.
Real emulation · real formats · first-class citizens
Aurena integrates seamlessly with the wonderful Nostalgic Player to bring you access to over 100 classic C64, Amiga and PC music tracks.
{{ f.title }} — {{ f.body }}
{{ f.title }} — {{ f.body }}
AI playlists generate from the actual sound of your tracks — ask in plain English. Runs against a local Ollama server (fully private) or Google Gemini — your choice.
A built-in web UI, real-time desktop ⇄ web sync, and a Subsonic-compatible server — point Symfonium, DSub or Ultrasonic at it and stream the library you already own. Everything stays on your hardware.
Throwing a party? Guests queue tracks from their own phones — they sign in with a name, and per-user cooldowns stop anyone hogging the decks. There's a dedicated "now playing" view for the room.
http://your-machine.local:8989
{{ f.title }} — {{ f.body }}
{{ f.body }}
{{ pf.body }}
Under the hood
Aurena is free. It's local-first. And it's built for people who give a damn about their collection.
Found a bug or have an idea? Feedback directly shapes where Aurena goes next.
Free, local-first, and yours to keep. Pick your platform and you're playing in minutes.
All builds are published on GitHub Releases.
Aurena is in beta, so feedback genuinely shapes what comes next. The best place to report a problem or request a feature is the GitHub issue tracker — it's public, so you can see what's already been raised.