Releases: SACRVM/just-play
Release list
JUST PLAY 0.6.0-beta.1 - THE LIBRARY
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-bytePRIV:TRAKTOR4blob, Mixed In Key's fields and aPOPM
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 saydifferent 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, previewed — there 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:
analyzetakes--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 voidhandler 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.axamlfor the same defect; it found exactly this
one and nothing else. - Sending a file to the recycle bin could access-violate on x64.
SHFILEOPSTRUCTwas declared
withPack = 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 becauseMargin/CornerRadius/BoxShadowsat
inline on the card —LocalValuepriority, 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 artistS. - 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.exewas 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 orJustPlayCLI 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...
JustPlay 0.5.0
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 playlist → Add 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
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.
JUST PLAY 0.5.0-beta.1 - first beta
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.
JustPlay 0.4.0
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
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.exeand 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
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 presets — Hard (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
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
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/.m3uplaylist 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
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.