Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 19:47
· 37 commits to main since this release
d7043b7

Vynull v0.4.0

The theme: more ways to reach your library. The binary is now also a shell client for a running server, the web UI installs as an app on phones and desktops, and the playing deck shows up in your desktop's media controls.

Shell subcommands

With a server running, the same binary works as a client — no curl required:

vynull search caribou            # list matching tracks (ID, BPM, key, ...)
vynull search --json | jq ...    # machine-readable, for pipelines
vynull add ~/Music/new-crate     # add files or folders
vynull load 42 2                 # load track 42 on deck 2
vynull load "encounter" 2        # or by search — must match exactly one track
vynull players                   # who's on the link and what they're playing
vynull status                    # server, analysis, and link state

--json on the listing commands is the building block for your own tooling: pipe search --json through jq and fzf and you have a track picker; poll players --json from a status bar. Loading by query refuses ambiguity — if more than one track matches, it lists the candidates and stops, because loading the wrong track on a live deck is not a failure mode worth having. --addr or VYNULL_ADDR point the commands at a non-default server, and --help lists everything.

Install the web UI as an app

The web UI now ships a PWA manifest: browsers can install it as a standalone app that launches fullscreen from a home-screen icon — no address bar, no tabs, dark from the first frame. The practical case is a phone or tablet at the booth. On desktop, Chromium-family browsers install it as its own window with a dock icon.

Notes: install requires a secure context, so it works from localhost (desktop, or adb reverse for Android) and via iOS Safari's Add to Home Screen; Android over plain LAN HTTP creates a working shortcut rather than a full standalone install. There is deliberately no offline mode — the UI is meaningless without the live server.

Now-playing on your desktop (MPRIS)

Vynull publishes the audible deck over MPRIS on the D-Bus session bus. Desktop media applets (XFCE's PulseAudio plugin, GNOME/KDE controls), lock screens, playerctl, status-bar widgets, and KDE Connect's phone mirroring all show the current track — title, artist, artwork, length, and position — updating within a second of the deck changing.

It is read-only by design: decks cannot be paused or skipped over the link, so the player advertises no controls (some simpler applets may render inert buttons). On by default; --mpris=false opts out, and headless machines without a session bus skip it silently.

Internals

The e2e suite grew scenarios for the CLI (driving the built binary's subcommands against a real server) and MPRIS gained integration tests that spin a private D-Bus daemon per run — two publisher bugs were caught by those tests before release. make check now needs dbus-daemon available alongside ffmpeg.

Upgrade notes

  • No re-analysis pass this time — nothing in the analysis pipeline changed
  • The release binary grows by roughly 2.4MB from the D-Bus dependency
  • Nothing deck-facing changed; hardware-verified on a CDJ-2000NXS2 as a regression smoke

Full changelog: git log --merges v0.3.0..v0.4.0