https://github.com/foonerd/evo-device-volumio
Volumio vendor extensions on top of evo's reference audio device. Vendor-specific plugins, branding, and packaging.
https://github.com/foonerd/evo-device-volumio
alsa arm64 armv7 audio embedded-linux evo-framework mpd music-player volumio x86-64
Last synced: 4 days ago
JSON representation
Volumio vendor extensions on top of evo's reference audio device. Vendor-specific plugins, branding, and packaging.
- Host: GitHub
- URL: https://github.com/foonerd/evo-device-volumio
- Owner: foonerd
- License: apache-2.0
- Created: 2026-04-23T08:49:37.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-12T21:14:27.000Z (27 days ago)
- Last Synced: 2026-05-12T23:25:31.058Z (27 days ago)
- Topics: alsa, arm64, armv7, audio, embedded-linux, evo-framework, mpd, music-player, volumio, x86-64
- Language: Shell
- Size: 442 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# evo-device-volumio
> Vendor extensions for Volumio on top of [evo-device-audio](https://github.com/foonerd/evo-device-audio), the reference generic audio device. Dormant until the first Volumio-specific plugin or branding work lands.
Stock the plugins. Sign the pieces. The device composes.
A typo in an ALSA parameter is a one-line config edit, not a redeploy. A bug in playback is a one-plugin rebuild, not a firmware flash. A core bump is a deliberate act, not a surprise. This repository is what makes that possible for Volumio's own additions to the reference audio device.
## How it fits together
```mermaid
flowchart LR
core["evo-core
framework, upstream
source + tags + signed binaries"]
ref["evo-device-audio
reference generic device
brand-neutral plugins
+ device build"]
src["evo-device-volumio
this repo
vendor extensions"]
art["evo-device-volumio-artefacts
vendor release plane
manifest + signed bytes"]
dev["Device
Raspberry Pi"]
core ==>|pinned by tag| ref
ref ==>|consumed as reference| src
src ==>|cross-compile, sign, publish| art
art ==>|manifest-driven fetch| dev
```
Four repositories, one flow. `evo-core` ships source and tags. `evo-device-audio` is the reference generic device — brand-neutral audio plugins under `org.evoframework.*` plus the device build that links them. This repository extends that reference with Volumio-specific plugins (`com.volumio.*`), branding, and any divergent UI; it signs its own pieces with the vendor key and publishes to its own artefacts repository. Devices admit `org.evoframework.*` plugins from the reference and `com.volumio.*` plugins from here.
The architectural arrangement: framework (evo-core) / reference generic device (evo-device-audio) / vendor distribution (this repo). Each tier has its own release cadence and signing key; the whole stack composes into the device's deployable image.
## Status
**Dormant.** Brand-neutral plumbing (MPD playback, local-tag metadata, local artwork, ALSA composition) lives upstream in [evo-device-audio](https://github.com/foonerd/evo-device-audio) under `org.evoframework.*`. This repository activates when the first vendor-specific plugin or branding work lands. Current candidate: a metadata plugin that integrates with Volumio's existing metadata pipeline.
### Landed
- Milestone 0 - distribution-process showcase ([SHOWCASE.md](SHOWCASE.md)).
- Milestone 1 - repository scaffolding (Cargo workspace, licence, docs, placeholder directories).
- Milestone 2 - `catalogue/volumio.toml` declaring 15 racks, 26 shelves, and the track-album relation predicates.
- Plugin-tier migration - brand-neutral plugins moved to [evo-device-audio](https://github.com/foonerd/evo-device-audio); the commons signing key (public half) is bundled in `keys/` so this distribution can admit `org.evoframework.*` plugins.
### Consumed from evo-device-audio
| Plugin | Slot |
|-------------------------------------|----------------------------------|
| `org.evoframework.playback.mpd` | `audio.playback` |
| `org.evoframework.metadata.local` | `metadata.providers` |
| `org.evoframework.artwork.local` | `artwork.providers` |
| `org.evoframework.composition.alsa` | `audio_processing.composition` |
`evo-core` is pinned at tag `v0.1.9` via `[workspace.dependencies]` in `Cargo.toml`. Bumps are deliberate; see [DEVELOPING.md](DEVELOPING.md) for the procedure.
## Documentation
| If you are... | Read |
|---|---|
| **New to this repository** | [SHOWCASE.md](SHOWCASE.md) - the distribution-process showcase. |
| **Bringing up a Pi from blank Pi OS Lite** | [BUILD.md](BUILD.md) - the step-by-step runbook. |
| **Working on the source tree** | [DEVELOPING.md](DEVELOPING.md) - workspace conventions, build and test commands, pin-upgrade procedure. |
| **Looking at the reference device** | [evo-device-audio](https://github.com/foonerd/evo-device-audio) - brand-neutral audio plugins + device build. |
| **Looking at the framework** | [evo-core](https://github.com/foonerd/evo-core) - upstream framework docs. |
## For distributions that follow
`evo-device-bmw-alpine-900`, `evo-device-acme-player`, whichever vendor distribution comes next: start from [evo-device-audio](https://github.com/foonerd/evo-device-audio) (the reference) and add. The pattern is the same everywhere:
- A source repo named `evo-device-`, an artefacts repo named `evo-device--artefacts`, both owned by the same vendor.
- The framework pinned by tag at the distribution's discretion (or via the reference device's pinning).
- Every vendor piece signed with the vendor's key. Brand-neutral pieces consumed from the reference device's release plane and verified with the commons trust root.
- Devices fetch what each manifest names, on the channel they track.
## Related
- [foonerd/evo-core](https://github.com/foonerd/evo-core) - the framework.
- [foonerd/evo-device-audio](https://github.com/foonerd/evo-device-audio) - the reference generic audio device.
- [foonerd/evo-device-volumio-artefacts](https://github.com/foonerd/evo-device-volumio-artefacts) - the release plane for this vendor distribution.
## License
Apache 2.0. See [LICENSE](LICENSE).