Site 1.1.0: beat jump in the builder, version and changelog, key colours

- Beat jump (experimental) on the mods page, in the docs and in the builder
  (needs hot cue keys; dependencies are ticked and unticked as a chain).
- Key notation 1.2.0: keys in their Camelot wheel colour, also in BROWSE.
- Version badge at the top with a changelog; every mod's version on its
  card and in the builder. make_builder_data.py writes assets/versions.js
  from tools/changelog.json and the mods' versions and stamps the pages'
  CSS and script links with ?v=<site version>.
- The generator keeps a changed copy of the UTILITY table as the user's
  own table plus our bytes (beat jump renames an item).
- Upcoming: quick search, USB auto load and phase meter reverse (in testing).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Thiemo TizianiandClaude Opus 5.5 committed 2026-10-20 02:00:48 +02:00
1 parent e4728b16ea
commit d2d1518fba
16 files changed
+440 -72

No files matched your search

+43 -26
View File
@@ -4,12 +4,13 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CDJ-900NXS Mods Upcoming</title>
<meta name="description" content="What comes next for the CDJ-900NXS mods: beat jump, stems, a uniform Camelot / Open Key notation and a 3-band waveform.">
<meta name="description" content="What comes next for the CDJ-900NXS mods: quick search, USB auto load, a reversed phase meter, stems and a 3-band waveform.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<link rel="stylesheet" href="style.css?v=1.1.0">
<script src="assets/versions.js?v=1.1.0"></script>
<script src="script.js?v=1.1.0"></script>
</head>
<body>
@@ -29,7 +30,7 @@
<main class="wrap upcoming">
<div class="eyebrow">Upcoming</div>
<h1>What comes next</h1>
<p class="lead">Ideas we are working on or looking into. None of them is in the builder yet. <strong>Planned</strong> means we know how to do it; <strong>feasibility</strong> means we are still finding out whether the player can do it at all.</p>
<p class="lead">Ideas we are working on or looking into. None of them is in the builder yet. <strong>In testing</strong> means built and working in the emulator, waiting for a player; <strong>planned</strong> means we know how to do it; <strong>feasibility</strong> means we are still finding out whether the player can do it at all.</p>
<div class="legend">
<span class="state planned">planned</span>
<span class="state feasibility">feasibility</span>
@@ -39,17 +40,49 @@
<article class="card">
<div class="card-head">
<div class="icon" aria-hidden="true">⏭️</div>
<div class="icon" aria-hidden="true">🔎</div>
<div>
<h3>Beat jump <code>beatjump</code></h3>
<h3>Quick search <code>quicksearch</code></h3>
<div class="by">ours · made with Claude Code</div>
</div>
<div class="meta"><span class="player no">emulator only</span><span class="state planned">planned</span></div>
<div class="meta"><span class="player no">emulator only</span><span class="state planned">in testing</span></div>
</div>
<p>TRACK SEARCH jumps 1, 2, 4 or 8 beats along the beat grid instead of changing the track, chosen in UTILITY › BEAT JUMP. While playing, the jump goes through a buffer of its own and comes back in phase; the CUE point and the hot cues stay.</p>
<p>BROWSE held opens SEARCH straight away, from wherever you are; the next plain BROWSE takes you back to the folder you were in. BROWSE pressed twice goes to the list the playing track was loaded from, with the track picked.</p>
<ul class="diff">
<li><span class="k">Now</span><span>Built and working in the emulator, on top of the hot cue engine.</span></li>
<li><span class="k new">Next</span><span>Testing on a player before it goes into the builder.</span></li>
<li><span class="k">Now</span><span>Built and working in the emulator; it walks the player's own menus for you, so it takes a moment to get to SEARCH.</span></li>
<li><span class="k new">Next</span><span>Testing on a player, then the builder.</span></li>
</ul>
</article>
<article class="card">
<div class="card-head">
<div class="icon" aria-hidden="true">💾</div>
<div>
<h3>USB auto load <code>usbautoload</code></h3>
<div class="by">ours · made with Claude Code</div>
</div>
<div class="meta"><span class="player no">emulator only</span><span class="state planned">in testing</span></div>
</div>
<p>The MY SETTINGS on your stick are loaded as soon as the player finds them — no more “Push the MENU button to LOAD”. UTILITY › USB AUTO LOAD switches it on and off.</p>
<ul class="diff">
<li><span class="k">Now</span><span>Built and working in the emulator (“Your settings were loaded to PLAYER.” right after the stick is read).</span></li>
<li><span class="k new">Next</span><span>Testing on a player, then the builder.</span></li>
</ul>
</article>
<article class="card">
<div class="card-head">
<div class="icon" aria-hidden="true">↔️</div>
<div>
<h3>Phase meter reverse <code>phasereverse</code></h3>
<div class="by">ours · made with Claude Code · needs <code>phasemeter</code></div>
</div>
<div class="meta"><span class="player no">emulator only</span><span class="state planned">in testing</span></div>
</div>
<p>A third value for UTILITY › PHASE METER: OFF, ON or REVERSE — the line meter with its markers running from right to left.</p>
<ul class="diff">
<li><span class="k">Now</span><span>Built and working in the emulator, on top of arnoldasr's phase meter.</span></li>
<li><span class="k new">Next</span><span>Testing on a player, then the builder.</span></li>
</ul>
</article>
@@ -69,22 +102,6 @@
</ul>
</article>
<article class="card">
<div class="card-head">
<div class="icon" aria-hidden="true">🎼</div>
<div>
<h3>Uniform Camelot / Open Key</h3>
<div class="by">ours · idea</div>
</div>
<div class="meta"><span class="state planned">planned</span></div>
</div>
<p>Every track's key in one notation of your choice — Camelot (8A) or Open Key (1m) — chosen in UTILITY, on the main screen and in the browser, whatever notation the USB was exported with.</p>
<ul class="diff">
<li><span class="k">Now</span><span>The player shows the key as it was exported.</span></li>
<li><span class="k new">Planned</span><span>One notation everywhere, set on the player.</span></li>
</ul>
</article>
<article class="card">
<div class="card-head">
<div class="icon" aria-hidden="true">🌊</div>