Skip to content

Releases: SACRVM/just-play

JUST PLAY 0.6.0-beta.1 - THE LIBRARY

Pre-release

Choose a tag to compare

@SACRVM SACRVM released this 14 Aug 14:38

A third app in the installer, and an index that stays out of your way.

JUST TAG — the tag editor — is packaged, installed and on the Start menu for the first time.
Underneath it the suite gained a local library index that the Pre-Cue Finder and JUST TAG both
read: opt-in, off until you switch it on, and never written next to your music.

This is a beta. It is a daily driver on Windows and it says below where it is thin.


Install

Download JustPlaySetup-0.6.0-win-x64.exe and run it. Per-user, no admin prompt, installs under
your profile. One installer puts four tools side by side on one shared runtime:

JUST PLAY the player
JUST STREAM the broadcaster
JUST TAG the tag editor — new
JustPlayCLI headless, agent-friendly

Upgrading from 0.5.0 replaces in place and keeps your settings.


New — JUST TAG, the tag editor

It browses the disk, not a library — the tool you reach for when a download just landed
somewhere no index has ever seen. It edits one file or a whole selection, and every bulk operation
shows what it is about to do before it does it.

  • Your DJ metadata survives, and that is measured. 128 real writes on MP3s carrying
    GEOB:Serato Markers2, an 85,166-byte PRIV:TRAKTOR4 blob, Mixed In Key's fields and a POPM
    rating, diffed frame by frame: 787 / 787 vendor frame payloads byte-identical, 128 / 128 audio
    streams untouched.
    The honest limit: that is MP3 + ID3v2 only — FLAC, AIFF, WAV and MP4 are
    untested. We preserve bytes; we do not decode Serato's cue blobs and will never claim to.
  • Multi-file editing — a tick per field decides what takes part. Fields the selection agrees on
    start ticked; fields where they differ start off and say different values, so nothing is
    flattened by accident.
  • One mask language, both directions%artist% - %title% builds a file name out of the tags,
    or reads tags out of a name. It counts the selection against the pattern as you type ("fits 24 of
    37"), and a name that does not fit is left exactly as it was.
  • Transform — Replace, Title Case, Sentence case, lowercase, UPPERCASE, Tidy spacing. Apply
    cannot be reached without the preview: one line per file per field, before and after.
  • Move / copy / delete, previewedthere is no overwrite, ever. A taken name is a collision,
    and the answer is "leave both alone" or "keep both". Delete goes to the recycle bin and refuses
    where there is none. A cross-volume move is copy - verify (SHA-256) - remove.
  • A search that reads as a sentence — sixteen fields and seven comparisons, including is
    empty
    . "Genre is empty" is the one that finds the damage.
  • Raw tags — every frame in the file exactly as it sits on disk, other tools' included,
    read-only by contract.
  • ID3 write format — the default converts nothing. The converting modes are a deliberate act,
    and a warning above Save counts how many files a conversion would actually re-encode.
  • Listen while you tag — a preview transport that releases the file by itself when a save needs it.

New — a library index, opt-in and local

The shape follows from one constraint: your files stay the truth. Everything JustPlay measures
already lives in the tags, so each computer derives its own local index from them. Two machines on
one NAS stay current with no shared database, and nothing is written next to your music — the
index lives in your user profile.

It is off until you turn it on ("Keep an index of this library"), and scanning is one explicit
button. Never scan and no index file is created at all; browsing behaves exactly as it did in 0.5.
The CLI is the one deliberate exception: running JustPlayCLI analyze is the opt-in, and
--no-db turns it off.

A track on disk is never invisible because of the index: un-indexed files are listed with blank
columns, and a file that has gone missing is flagged rather than dropped.

The Pre-Cue Finder, with the index behind it

  • Include subfolders — search everything below the folder you are standing in. When the index
    cannot be used, the checkbox is disabled with the reason on it.
  • Filter across the playlists below a folder — search a whole crate at once instead of opening
    eight playlists one at a time. A track in five sets is one row, and the detail pane says which.
  • Folders paint from the index and verify behind you. Reading the directory first cost 276 ms on
    a 1,092-file folder on every open, almost always to learn nothing had changed.
  • Fits what's playing narrows to the playing track's key and harmonic neighbours, +/-3 BPM and
    energy upward — by moving the visible filters, so you can widen any of it by hand.

One track table across all three apps

The queue, the Pre-Cue Finder and JUST TAG are now literally the same table, plus the columns
tagging needs: ALBUM, ALBUM ARTIST, YEAR, #, COV, ID3, TYPE, FILE NAME and AN (a three-state
analysis light). Right-click the header to choose them. Column widths are sized from the content
actually in front of you, so genre stops getting as much room as the title.

JUST STREAM — how many people are listening

A LISTENERS readout with the session peak beside it, read off the server's public status page
over an ordinary HTTP GET. No admin password is stored anywhere; a dead server costs the poll and
never the broadcast.

Smaller, but you'll notice them

  • Every icon is a vector we ship, not a font character — so icons follow the theme, and the same
    symbol stops rendering yellow in one window and white in another.
  • The wheel glides. Only the wheel is intercepted; scrollbar drags, keyboard and touch are
    untouched. The scrollbar also stops fading while you drag its thumb.
  • A round progress indicator for long jobs, with the phase and counter inside the disc at fixed
    sizes, so nothing shifts as the text changes.
  • Maximize does what it says — and the caption button finally shows restore.
  • CLI: analyze takes --playlist <m3u> as well as a folder, so a scattered list can be
    re-analysed without redoing thousands of healthy files.

Fixes

Crashes

  • Copying text could take the whole app down. The Win32 clipboard raises a COMException
    from inside the copy call when the OS will not hand it over, and an exception escaping an
    async void handler terminates the process. Three of four call sites were unguarded — the worst
    being the copy button on the dialog that was already reporting a crash. One guarded clipboard now.
  • The Pre-Cue Finder window failed to open on some builds — a converted arrow character closed
    a XAML comment early. A test now walks every .axaml for the same defect; it found exactly this
    one and nothing else.
  • Sending a file to the recycle bin could access-violate on x64. SHFILEOPSTRUCT was declared
    with Pack = 1, which looks obviously right because the Windows header packs it, and is wrong.

Windows

  • Maximize finally does what it says. The transparent shadow margin and the rounded corners go
    away, including the close X. It never worked because Margin / CornerRadius / BoxShadow sat
    inline on the card — LocalValue priority, which beats a class-selector style.
  • A maximized window no longer offers "maximize". The caption button had no restore state; it
    now shows the correct mark in all four frameless windows.
  • Windows open on the screen the app is on, suite-wide.

Files, renaming and organise

  • A drive root as the organise destination wrote to the wrong place. E:\ produced a
    drive-relative path, so files landed in the process's working directory on that drive.
  • A rename that only changed capitalisation silently did nothing.
  • A failed rename counted as a failed save, and counted the same file twice; a deferred write
    renamed the file anyway while the engine still held the handle.
  • A name that came out as a reserved device name (NUL, AUX, CON) was left as one.
  • The tolerant filename parse dropped the separator for a whitespace-only mask, so SomeTrack
    parsed as artist S.
  • The organise plan was not rebuilt after a run. The macOS trash path escaped quotes but not
    backslashes. A batch rename raised its completion event from a worker thread into bound state.

Library and playlists

  • A track listed in a playlist that no longer exists is reported by name, never silently
    dropped. That needed a root fix in the playlist reader, which had been filtering vanished files
    out before any caller could name them — in all six call sites.
  • A moved track stays findable. Departed paths are marked missing rather than deleted.

JUST TAG

  • Refresh emptied the list. It re-opened the parent folder instead of re-reading what was on
    screen, and a parent usually holds no audio.
  • The ID3 version warning the settings panel promised was gone. It was built, then deleted when
    JUST TAG moved onto the Finder shell, and had been reaching nobody since.
  • The analysis preview's timer was stopped from analysis worker threads.
  • File sizes printed a comma decimal separator on a German machine.

Packaging

  • JustTag.exe was built by the solution and packaged by nothing. It was in no publish script
    and in no installer, so this beta would have shipped without the app it is being cut for.

What isn't finished in this beta

Named here rather than left for you to find:

  • Nothing watches your library folder yet. The observer is built and tested as a library and is
    wired into no app. The index catches up when you press Scan.
  • A scan indexes; it does not analyse. The batch runner exists and has no screen. Analysing is
    still per-selection or JustPlayCLI analyze.
  • The tag-write policy has no settings screen. What 0.6 writes by default is byte-for-byte what
    0.5 wrote, pinned by SHA-25...
Read more

JustPlay 0.5.0

Choose a tag to compare

@SACRVM SACRVM released this 24 Jul 08:54

JustPlay 0.5.0

The Pre-Cue release. A dedicated headphone-audition window, richer stream metadata, and a pile of player/library polish.

✨ Pre-Cue Finder (new)

A keyboard-first window to browse your library and audition tracks on your headphones while the main output keeps playing.

  • Norton-Commander browse — folders and playlists as virtual folders, clickable breadcrumb.
  • File list = the JUST PLAY queue 1:1 — sortable & toggleable columns (incl. GENRE / GAIN / LUFS), codec badges.
  • Instant audition, multi-select, and a player bar with a clickable waveform (drag to scrub).
  • Filter tab — name search, a Camelot key wheel (+ harmonic neighbours), and range sliders per analysed field (BPM / energy / gain / LUFS / vibes).
  • Right-click a folder or playlistAdd to list (bulk-add to the queue), Open playlist (load it as your set, with a confirm), or Refresh.
  • Cue routing — use a separate headphone device, or share the main one: cueing ducks the main output while it plays, and the live stream is never touched.
  • Built for huge folders — rows appear instantly and fill visible-first, in parallel (fetch-what-you-see); sorting and filtering unlock the moment a folder finishes loading.

📻 Streaming

  • DJ-owned station metadata in the stream — website, genre, description, and a public-directory toggle (JUST STREAM & JUST PLAY).
  • "Streaming live from {app}" now-playing when you capture an app's audio.
  • JUST PLAY's streaming panel reorganised into Server / Quality / Station tabs.
  • Record your set — you record like you stream: the finished, limited master, MP3 / FLAC / AIFF / WAV, auto-record + auto-trim.

🎛️ Player & library

  • Drag-to-reorder the queue — the set-building gesture.
  • Playlist import — open an .m3u / .m3u8 / .pls / .xspf as your set.
  • Smart window reopening — remembers position & size across the suite.
  • Shared track row & columns across the queue and the finder (vibe columns, one column picker).

🛠️ Fixes

  • FLAC / multi-channel decode fix — correct mono downmix.
  • Cover art — read the real cover hidden behind Serato / Mixed-In-Key GEOB frames, and never wipe them.
  • Tag writer honours the tag contract (Camelot TKEY, one English comment, no ID3v1); a locked tag write is deferred and retried so no track silently loses its auto-tags.

Install: Windows x64, self-contained — no .NET install needed. Download JustPlaySetup-0.5.0-win-x64.exe and run it.

Part of J.U.S.T. — Just Useful Sound Tools. From DJs to DJs.

0.5.0-beta.2 — bugfix beta

Pre-release

Choose a tag to compare

@SACRVM SACRVM released this 10 Jul 11:03

Bugfix beta — three fixes found within a day of beta.1, two of them thanks to a late-night ear test. Please keep reporting anything rough.

🐞 Fixes

  • Missing covers on Serato / Mixed In Key processed tracks. Those tools store their cue/beatgrid/energy data inside the tag's picture list; JUST PLAY grabbed the first entry — a data blob, not an image — and showed no cover. It now finds the real front cover behind them. Bonus hardening: editing or removing a cover can no longer wipe that Serato/MIK data from your files.
  • Lossless decode fix (FLAC/WAV/AIFF). The analysis decoder received doubled samples on lossless files, which skewed waveforms and audio analysis computed from them. Now decoded correctly. Playback itself was never affected.
  • JUST STREAM: compact view clipped the output meters against the bottom key-hints bar. Fixed — meters and scale sit clear now.

Downloads

  • JustPlaySetup-0.5.0-beta.2-win-x64.exe — per-user installer, installs the whole suite (JUST PLAY + JUST STREAM).
  • JustPlay-0.5.0-beta.2-win-x64-portable.zip — unzip anywhere and run in place.

⚠️ It's a beta — expect rough edges.

JUST PLAY 0.5.0-beta.1 - first beta

Pre-release

Choose a tag to compare

@SACRVM SACRVM released this 09 Jul 11:03

The first beta of the 0.5 cycle — for JUST PLAY and JUST STREAM. One installer ships the whole suite (both apps + the JustPlayCLI tool), self-contained for Windows x64 (no .NET install needed). Built from DJs, to DJs — please report anything rough.

⭐ JUST PLAY — Pre-Cue Finder

A dedicated headphone pre-listen window. Audition tracks on your cue device before they hit the queue.

  • Own window · folder tree │ file list
  • FILTER tab: search · Camelot key wheel · histogram range filters (BPM / energy / vibe)
  • Clickable waveform player bar — click to seek
  • Multi-select → bulk add or (re-)analyze
  • Space = play/pause audition · Enter = add + jump to next

🎙️ JUST STREAM — Record your set

Capture your live set straight off the master bus.

  • Own encoder · MP3 / FLAC / AIFF / WAV · optional auto-record
  • Keyboard hotkeys: C = on air · R = record

🪵 Event Log (both apps)

No more silently swallowed errors. Failed tag writes, locked files and radio events (connected / busy / failed / reconnecting) now surface in a log window.

🎛️ JUST PLAY — Queue & columns

Vibe columns everywhere: Artist · Comment · Key · Energy · Dark · Hypnotic · Groove · Punch · Harsh · Gain · LUFS. Shared column picker (A/B/C bar + right-click a header), unified Camelot colours. The Comment column shows the exact tag you'll carry into your DJ software.

📦 More (both apps)

Drag files/folders out to Explorer · smart window reopening · playlist import.


Downloads

  • JustPlaySetup-0.5.0-beta.1-win-x64.exe — per-user installer, installs the whole suite (JUST PLAY + JUST STREAM).
  • JustPlay-0.5.0-beta.1-win-x64-portable.zip — unzip anywhere and run in place; nothing written to Program Files.

⚠️ It's a beta — expect rough edges.

JustPlay 0.4.0

Choose a tag to compare

@SACRVM SACRVM released this 02 Jul 19:05

JustPlay 0.4.0 — the JUST STREAM release

The suite grows to two apps. The installer now ships JUST PLAY (the player),
JUST STREAM (a brand-new standalone broadcaster) and the headless JustPlayCLI,
side by side in one shared folder.

✨ New

JUST STREAM — a standalone broadcaster

  • Capture a specific app — stream the audio of one application (your DJ software,
    a browser tab) straight to Icecast, with no virtual cables. On a multi-out DJ
    interface it auto-isolates the Master pair, so your private headphone cue never
    goes on air.
  • Or capture any audio device; MP3 + Opus, multiple saved server profiles,
    PUT/SOURCE, optional TLS.
  • The shared broadcast DSP (EQ · AutoTilt · Punch · Limiter) tuned for loudness,
    live true-peak meters + spectrum, and a compact mini on-air mode.

Shared genre DSP presets — Electronic / Hard / Rock (+ Neutral). One tonal
identity across both apps; JUST STREAM runs the limiter a notch louder for broadcast.

In-app spectral analyser — DRY vs WET tonal balance with limiter gain-reduction,
shared by the player and the broadcaster — see what the DSP does to your sound.

Six themes — adds Onyx (pitch black) alongside Aurora · Sunset · Midnight ·
Neon · Hardcore. The app icon repaints to match.

📦 Install

JustPlaySetup-0.4.0-win-x64.exe — per-user (no admin), Windows x64, self-contained
(no .NET install needed).

Part of J.U.S.T. — Just Useful Sound Tools.

JustPlay 0.3.1

Choose a tag to compare

@SACRVM SACRVM released this 19 Jun 14:25

JustPlay 0.3.1

A bugfix & stability release — smoother playback, snappier seeking, and a proper crash safety net.

Playback

  • Auto-play on open — double-clicking a track (or opening one) now plays it right away, like every other player.
  • Like / Analyze / Write-tags no longer interrupt the playing song. The tag write is deferred and lands the moment you move to the next track (or when you quit) — playback never stops.
  • Bulk-analyzing a playlist no longer jumps back to the first track.
  • Snappier seeking — scrubbing reacts instantly now (especially noticeable on FLAC).

Polish

  • The app is now JustPlay.exe and shows up as “JustPlay” in Windows context menus / “Open with” (was the internal “JustPlay.App”).
  • A long loaded-playlist name no longer overflows the queue header — the name lives in the “…” menu; the header stays clean.

Stability

  • Never-crash safety net. Unexpected errors — e.g. dragging in tracks from a flaky network / NAS share — now surface a friendly, copyable “Oops” dialog instead of taking the app down. Copy the details and send them over so we can fix the root cause.

Per-user installer, no admin required. Upgrades 0.3.0 in place.

JustPlay 0.3.0

Choose a tag to compare

@SACRVM SACRVM released this 17 Jun 12:27

JustPlay 0.3.0

The biggest release yet — JustPlay grows from "player with analysis" into a player with a full
output processing chain
that shapes both your local listening and your live stream.

✨ New

Output DSP rack (shapes playback and the Icecast stream)

  • 3-band DJ EQ — series RBJ shelves: boost, cut, deep kill.
  • AutoTilt — a gentle "auto-master" that nudges a track's tonal balance toward a reference
    ("golden") spectral curve. Bright/harsh masters get pulled into line automatically.
  • Punch — transient designer for kick/snare impact.
  • Mastering Limiter — true-peak (ITU-R BS.1770-4), −1 dBTP, transparent → loud.
  • One-click presetsHard (tame harsh hard-techno/hardstyle toward the curve and push it loud)
    and Neutral (everything flat).

Loudness — EBU R128 LUFS measurement + ReplayGain 2.0 tags + playback normalization
(Quiet / Normal / Loud), clip-safe and non-destructive.

Mixing comfort

  • Crossfade on auto-advance — equal-power, adjustable (Off / 2 / 4 / 8 s), tempo/key-aware.

Looks

  • New Hardcore theme (black / red + cyan). Five live themes total: Aurora · Sunset · Midnight ·
    Neon · Hardcore.

Plus — playlist save/update, A|B|C column views with an optional Like column, and the installer +
in-app auto-update path is now in place.

Notes

  • Windows is the daily-driver target. macOS / Linux share the codebase but aren't validated yet.
  • BASS audio library by un4seen — free for personal / non-commercial use.

Install: download JustPlaySetup-0.3.0-win-x64.exe below and run it (per-user, no admin needed).

JustPlay 0.1.2

Choose a tag to compare

@SACRVM SACRVM released this 08 Jun 13:11

JustPlay 0.1.2

Playback loudness normalization

  • Even out the whole queue's loudness on playback — non-destructive (output gain, the file is never touched), clip-safe via the measured peak.
  • Streaming-style targets: Quiet (−19) · Normal (−14) · Loud (−11). Toggle + level live in Tweaks; turning it on auto-analyzes added tracks so it just works.

Column views (A · B · C)

  • Three switchable, customisable column sets — A Mix (key/energy/genre), B Levels (gain/LUFS), C Minimal. Right-click the A|B|C switch to toggle individual columns; choices persist.
  • New GAIN and LUFS cells. GAIN shows the gain actually applied at the active level and flags a track held at the ceiling.

Smoother & cleaner

  • Graceful quit: output now fades to silence before teardown — no more digital click/buzz when closing mid-playback.
  • About moved to the title-bar brand; hover/disabled-state polish on the level, view, and like controls.

Under the hood

  • Groundwork for a transparent "Loud" mode (true-peak limiter prototype) and broader test coverage. 308 tests green.

Per-user installer (no admin). Auto-update will offer this build to existing 0.1.x installs.

JustPlay 0.1.1

Choose a tag to compare

@SACRVM SACRVM released this 05 Jun 14:46

JustPlay 0.1.1

Playback & keys

  • Space is always play/pause — no more accidentally opening a menu.
  • Smoother seeking — the progress thumb no longer jumps back after you click ahead.

Queue

  • Drag & drop a .m3u8/.m3u playlist onto the window to load a whole set.
  • Set tempo range in the NOW PLAYING header (min–max BPM across the queue).
  • Genre now shows instantly with the rest of the track info.
  • Harmonic Sort polish.

Share your set — new “Transfer” menu

  • Bundle the queue as a ZIP or copy it to a folder: the audio files (numbered in set order) plus an .m3u8, ready to hand off to Traktor / rekordbox / Serato or carry on a USB stick.
  • Progress dialog with Dismiss (keep working in the background) and Cancel.

Polish

  • About-dialog icon, dialog text fields, and assorted UI fixes.

Windows installer below — per-user, no admin required.

JustPlay 0.1.0

Choose a tag to compare

@SACRVM SACRVM released this 05 Jun 13:19

JustPlay 0.1.0 — first release. 🎉

The music player for DJs and music lovers. Drop tracks in and it detects Camelot key, BPM and energy, sorts your set harmonically, writes the analysis into your files' own tags (only if you ask), exports M3U8 playlists, and streams live to Icecast. No library, no sign-in, no nag.

Windows

Download JustPlaySetup-0.1.0-win-x64.exe below — per-user install, no admin needed, self-contained (no .NET install required).

Early but functional. macOS / Linux share the codebase but aren't validated yet.