Skip to content

Releases: yanchau/djay-phrase-tool

v1.2.3 — fix tracks with no artist tag getting stuck

Choose a tag to compare

@yanchau yanchau released this 31 Jul 22:41

Bug fix on top of v1.2.2 — same panels, same features, one problem fixed.

Tracks with no artist tag (title displayed correctly, but the panel stuck on "Searching djay's database…" forever). Two separate bugs: the app required an artist before even attempting a lookup, and — after fixing that — a leftover staleness check was silently discarding the (successful) result anyway. Both fixed. If a track shows its title fine but never calibrates, this was very likely why.

See the v1.2.2 release notes for what's new since v1.2.0.

v1.2.2 — fix cue points, panel overlap, and unclear permission errors

Choose a tag to compare

@yanchau yanchau released this 31 Jul 12:25

Bug fixes on top of v1.2.1/v1.2.0 (independent per-deck panels) — same panels, same features, three real problems fixed:

Cue points were sometimes missing (or, briefly, showing a phantom "cue" that was actually a loop start). Root cause: the binary tag marking a cue's stored time isn't a fixed width, and the decoder assumed it always was. Found and verified by brute-forcing a real track's actual cue list against the raw bytes — not guessed. Your own cue points should now match djay's cue list exactly.

The two panels could overlap or need a screen wider than a laptop has. The per-deck width guess was capped to a flat 900pt regardless of screen size — now capped relative to djay's own window width instead, so it scales down on smaller screens.

A denied "access data from other apps" permission looked identical to "track not analyzed yet." Both used to show "Searching djay's database…" forever with no way to tell which. The panel now says explicitly when djay's data folder isn't accessible, with a suggested fix.

See the v1.2.0 release notes for what's new since the older combined-banner version (still available, see the README's top note).

v1.2.1 — fix a rare garbage cue-countdown value

Choose a tag to compare

@yanchau yanchau released this 28 Jul 11:38

Bug fix on top of v1.2.0 (independent per-deck panels) — no other changes.

Fixed a rare bug where the "next cue point" countdown could show a nonsensical, huge value (e.g. "8547483333399940578367897600.0s") instead of a real countdown, on some tracks. Root cause: the cue-point decoder's byte-pattern scan could coincidentally match unrelated bytes elsewhere in the track's data on certain tracks, misreading them as a cue time. Now rejects any decoded cue time beyond what any real track could need (6 hours).

See v1.2.0's release notes for what's new since v1.1.0.

v1.2.0 — independent per-deck panels

Choose a tag to compare

@yanchau yanchau released this 28 Jul 08:20

Direct answer to community feedback (Algoriddim forum thread, Jay_Dizzle): one small floating panel per deck instead of a single combined banner, auto-positioned above that deck in djay Pro at launch. Each panel is freely movable and resizable on its own.

Changes from v1.1.0:

  • Two independent panels (one per deck) instead of one combined banner — each auto-positions above its own deck at launch, drag/resize independently afterward.
  • Dropped the suggested-exit (orange) and auto-detected-change (grey) countdowns — kept the phrase counter, structure badge, your own cue point countdown, and the press-play-in-sync hint.
  • Bigger text throughout; close button moved to avoid overlapping the resize handle.

v1.1.0 (combined banner) and v1.0.0 (tall columns, full waveform) both remain available — this is a new option, not a replacement. See the README's top note for links to all three.

Setup instructions are the same as before — see the main README.

v1.1.0 — compact banner redesign

Choose a tag to compare

@yanchau yanchau released this 25 Jul 00:17

Compact banner redesign, permission-loop fix, and a real crash fix.

What changed since v1.0.0:

  • Panel redesigned from tall waveform columns to two thin horizontal banners (one per deck) — the old shape blocked too much of djay Pro's screen during a live set. The waveform/timeline view is gone; countdowns, phrase position, and structure badges stay front and center.
  • Responsive layout: each deck picks between one line and a wrapped two-line layout depending on available width, with graceful fallback instead of silently dropping/truncating content.
  • Hover tooltips rebuilt for exact, non-clipping positioning — every number/badge explains itself on hover.
  • Fixed the "access data from other apps" permission-loop bug (unstable ad-hoc code signature from swift run — the build now uses a fixed identity via scripts/build-app.sh) and a real crash (integer overflow) some users could hit.
  • Panel height now auto-fits to content.

Want the older, full-featured version instead (scrolling waveform, energy scale, tall columns)? It's still available at the v1.0.0 release and the v1.0.0 tag.

Prefer independent panels instead — one per deck, positioned above its own deck in djay Pro, each movable/resizable on its own, with fewer secondary countdowns? That's now available at the v1.2.2 release and the v1.2.0 tag onward — this v1.1.0 combined-banner version stays available unchanged for anyone who prefers it.

⚠️ Known bug in this version's cue-point decoding: your own cue points can occasionally show missing or wrong. Fixed in v1.2.2 — this older release won't receive a backport, but everything else about this version (the combined banner) is otherwise unaffected and still works.

Two ways to run this: see the main README's Setup section — compile from source (recommended) or download PhraseCounterApp-macOS.zip below and right-click → Open the first time (unsigned app, one-time Gatekeeper approval).

Requires macOS 13+.

v1.0.0 — first public release

Choose a tag to compare

@yanchau yanchau released this 21 Jul 21:38

A newer, more compact version is available — see the v1.1.0 release and its README. This v1.0.0 version (tall columns, full scrolling waveform, energy scale) still works and is kept here for anyone who prefers that look.

⚠️ Known bug in this version's cue-point decoding: your own cue points can occasionally show missing or wrong. Fixed in v1.2.2 — this older release won't receive a backport, but everything else about this version (the tall-column look) is otherwise unaffected and still works.

First public release.

Two ways to run this:

  • Recommended (source): clone/download the repo and follow the README's Setup section — compile it yourself, so you can read what you're running before it runs. See the README for why this is the documented default.
  • Convenience (prebuilt): download PhraseCounterApp-macOS.zip below, unzip it, and right-click → Open the first time (it's unsigned — no Apple Developer ID behind this project — so Gatekeeper needs that one-time approval either way, same as any unsigned app).

Requires macOS 13+. See the main README for full setup, safety notes, and feature list.