- builder.html: build C900NXS.UPD in the browser (official 1.31 update in, mods ticked with their dependencies, no-liability and Claude Code confirmations, download). Ports of upd.py, the LZSS packer and the mods' application; the result is checked against the SHA-256 the Python patcher gives and is byte for byte the patcher's file. - builder/data.js from tools/make_builder_data.py: the mods' bytes per combination; firmware parts (UTILITY table, HOT KEYS box, the asset blob's resource table) are made from the user's own update. - index.html: rgb_waveform, extended_bpm, phasemeter, cuecolours, hotcuekeys (experimental), ledsaver, credit; stable/experimental and a green "ran on a player" dot. - upcoming.html: beat jump, stems, uniform Camelot / Open Key, 3-band waveform. - docs.html: the builder, the new mod names, hot cue loading and locks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
122 lines
5.8 KiB
HTML
122 lines
5.8 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<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.">
|
||
<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>
|
||
</head>
|
||
<body>
|
||
|
||
<header class="top">
|
||
<div class="wrap">
|
||
<a class="brand" href="index.html"><span class="disc" aria-hidden="true"></span><span>CDJ-900NXS Mods</span></a>
|
||
<nav class="tabs" aria-label="Sections">
|
||
<a href="index.html">Mods</a>
|
||
<a href="builder.html">Builder</a>
|
||
<a href="upcoming.html" aria-current="page">Upcoming</a>
|
||
<a href="docs.html">Docs</a>
|
||
</nav>
|
||
<button class="theme-btn" type="button" aria-label="Switch light / dark">☀</button>
|
||
</div>
|
||
</header>
|
||
|
||
<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>
|
||
<div class="legend">
|
||
<span class="state planned">planned</span>
|
||
<span class="state feasibility">feasibility</span>
|
||
</div>
|
||
|
||
<div class="grid">
|
||
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<div class="icon" aria-hidden="true">⏭️</div>
|
||
<div>
|
||
<h3>Beat jump <code>beatjump</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>
|
||
<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>
|
||
<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>
|
||
</ul>
|
||
</article>
|
||
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<div class="icon" aria-hidden="true">🎤</div>
|
||
<div>
|
||
<h3>Stems</h3>
|
||
<div class="by">ours · idea</div>
|
||
</div>
|
||
<div class="meta"><span class="state feasibility">feasibility</span></div>
|
||
</div>
|
||
<p>Two stem modes on the two BEAT DIVIDE keys the hot cues leave free: one to take the vocals out, one to take the melody out — like the stem buttons on the newest players.</p>
|
||
<ul class="diff">
|
||
<li><span class="k">Question</span><span>Whether the player's audio DSP has the room and the speed to split a track while it plays, a job it was never designed for.</span></li>
|
||
<li><span class="k new">Next</span><span>Measuring what the DSP has to spare, then deciding.</span></li>
|
||
</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>
|
||
<div>
|
||
<h3>3-band waveform</h3>
|
||
<div class="by">ours · idea</div>
|
||
</div>
|
||
<div class="meta"><span class="state feasibility">feasibility</span></div>
|
||
</div>
|
||
<p>The three-band waveform of the newest players: lows, mids and highs drawn as layers in their own colours, so kicks, vocals and hi-hats can be told apart at a glance.</p>
|
||
<ul class="diff">
|
||
<li><span class="k">Question</span><span>Whether the band data rekordbox exports for newer players can be read and drawn fast enough on this one.</span></li>
|
||
<li><span class="k new">Next</span><span>Reading the data on the player, then a renderer.</span></li>
|
||
</ul>
|
||
</article>
|
||
|
||
</div>
|
||
</main>
|
||
|
||
<footer>
|
||
<div class="wrap cols">
|
||
<div>
|
||
<div class="ai"><span class="dot"></span>Made with Claude Code · Claude Opus 5.5</div>
|
||
<p>This website, the builder, our mods and the patcher were developed with Claude Code (Anthropic's AI coding assistant, model Claude Opus 5.5), by reverse engineering the firmware in an emulator. The mods <code>rgb_waveform</code>, <code>extended_bpm</code> and <code>phasemeter</code> are by <a href="https://github.com/arnoldasr/cdj900nxs">arnoldasr</a>.</p>
|
||
</div>
|
||
<div>
|
||
<h4>Disclaimer</h4>
|
||
<p>Unofficial. Not affiliated with or endorsed by Pioneer DJ or AlphaTheta; CDJ and rekordbox are their trademarks. Flashing modified firmware can leave your player unusable. Everything here is provided as is, without warranty, and used at your own risk.</p>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|