- Main page: cue names, played tracks, end warning, quick search and USB auto load as cards marked in testing (not in the builder yet); the 1.0.1 fixes and the phase meter's additions on their cards. - New before/after shots at the same spot as before (3-band waveform, cue name, countdown clear of the meter) and new card images from the current build. - Docs: sections and status rows for the new mods; Upcoming keeps Stems. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
270 lines
14 KiB
HTML
270 lines
14 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Pionaarr Mods</title>
|
||
<meta name="description" content="Firmware mods for the Pioneer CDJ-900NXS (firmware 1.31): RGB waveform, extended BPM, phase meter, cue colours, hot cues on the beat divide keys and more — compared with stock, built in your browser.">
|
||
<link rel="icon" href="assets/favicon.svg" type="image/svg+xml">
|
||
<link rel="stylesheet" href="style.css?v=1.5.0">
|
||
<script src="assets/versions.js?v=1.5.0"></script>
|
||
<script src="script.js?v=1.5.0"></script>
|
||
</head>
|
||
<body>
|
||
|
||
<header class="top">
|
||
<div class="wrap">
|
||
<a class="brand" href="index.html"><span class="cue-key" aria-hidden="true">CUE</span><span>Pionaarr Mods</span></a>
|
||
<nav class="tabs" aria-label="Sections">
|
||
<a href="index.html" aria-current="page">Mods</a>
|
||
<a href="builder.html">Builder</a>
|
||
<a href="upcoming.html">Upcoming</a>
|
||
<a href="docs.html">Docs</a>
|
||
</nav>
|
||
<button class="theme-btn" type="button" aria-label="Switch light / dark">☀</button>
|
||
</div>
|
||
</header>
|
||
|
||
<main>
|
||
<div class="hero">
|
||
<div class="wrap">
|
||
<span class="lcd"><i></i>CDJ-900NXS · firmware 1.31</span>
|
||
<h1>Pionaarr <span class="r">Mods</span></h1>
|
||
<p class="lead">Firmware mods for the Pioneer CDJ-900NXS. We took the player's firmware apart in an emulator and added what newer Pioneer players have: hot cues on the deck, beat jump, colour and 3-band waveforms, keys in Camelot colours and more.</p>
|
||
<p class="lead">Pick the mods you want in the builder. It patches the official 1.31 update in your browser and gives you a normal <code>C900NXS.UPD</code> to install like any update. The boot loader is never touched, so you can always go back to stock.</p>
|
||
<div class="cta">
|
||
<a class="btn primary play" href="builder.html"><span class="play-key" aria-hidden="true"><svg viewBox="0 0 17 10"><path d="M0 0v10l8-5z"/><rect x="10" y="0" width="2.5" height="10"/><rect x="14.5" y="0" width="2.5" height="10"/></svg></span>Open the builder</a>
|
||
<a class="btn" href="#mods">The mods</a>
|
||
<a class="btn" href="docs.html">Docs</a>
|
||
</div>
|
||
|
||
<div class="compare" style="--pos:50%">
|
||
<img src="assets/stock-full.png" alt="Stock CDJ-900NXS screen: blue waveform, red memory cues">
|
||
<img class="after" src="assets/mods-full.png" alt="Modded screen: 3-band waveform, coloured cues and hot cues, HOT KEYS, key in colour, BPM to two decimals">
|
||
<span class="tag l">Stock 1.31</span>
|
||
<span class="tag r">Pionaarr Mods</span>
|
||
<span class="handle" aria-hidden="true"></span>
|
||
<input type="range" min="0" max="100" value="50" aria-label="Drag to compare stock and modded screen">
|
||
</div>
|
||
<div class="caption">Same track, same spot, in the emulator. Right: every mod, the ones in testing too: 3-band waveform, the next cue's name, hot cues, the key in colour, the countdown clear of the phase meter.</div>
|
||
</div>
|
||
</div>
|
||
|
||
<section>
|
||
<div class="wrap">
|
||
<div class="strip">
|
||
<div class="tile"><div class="n">9</div><div class="t">mods in the builder, plus more in testing</div></div>
|
||
<div class="tile"><div class="n">A–C</div><div class="t">hot cues on the BEAT DIVIDE keys</div></div>
|
||
<div class="tile"><div class="n">0 bytes</div><div class="t">changed in the boot loader</div></div>
|
||
<div class="tile"><div class="n">1 file</div><div class="t">built in your browser, nothing uploaded</div></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="mods">
|
||
<div class="wrap">
|
||
<h2 class="section-title">The mods</h2>
|
||
<p class="section-sub">Two are by <a href="https://github.com/arnoldasr/cdj900nxs">arnoldasr</a>, the rest are Pionaarr mods.</p>
|
||
<div class="legend">
|
||
<span class="state stable">stable</span>
|
||
<span class="state experimental">experimental</span>
|
||
<span class="state testing">in testing</span>
|
||
</div>
|
||
|
||
<div class="grid">
|
||
|
||
<!-- advanced_waveforms -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Advanced waveforms</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>advanced_waveforms</code></div>
|
||
<figure class="tshot"><img src="assets/card-wave-rgb.png" alt="RGB waveform" loading="lazy"><figcaption>RGB</figcaption></figure>
|
||
<figure class="tshot"><img src="assets/card-wave-3band.png" alt="3-band waveform: blue lows, amber mids, white highs" loading="lazy"><figcaption>3-band · in testing</figcaption></figure>
|
||
<p>rekordbox's RGB colours on the big waveform, a red-to-white overview. 1.0.1 takes colour data that is a little short too. In testing: UTILITY › WAVEFORM with BLUE, RGB and 3-band (lows, mids, highs).</p>
|
||
<a class="more" href="docs.html#advanced_waveforms">More →</a>
|
||
</article>
|
||
|
||
<!-- cuecolours -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Cue colours</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>cuecolours</code></div>
|
||
<figure class="tshot"><img src="assets/card-cues.png" alt="Overview with coloured memory cues and hot cue boxes A to F" loading="lazy"></figure>
|
||
<p>Memory cues in their rekordbox colours, hot cues A–H as lettered boxes. 1.0.1 keeps a hot cue's colour when it has a comment.</p>
|
||
<a class="more" href="docs.html#cuecolours">More →</a>
|
||
</article>
|
||
|
||
<!-- hotcuekeys -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Hot cue keys</h3>
|
||
<div class="meta"><span class="state experimental">experimental</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>hotcuekeys</code></div>
|
||
<figure class="tshot"><img src="assets/card-hotkeys.png" alt="HOT KEYS shown next to QUANTIZE" loading="lazy"></figure>
|
||
<p>QUANTIZE short: the top three BEAT DIVIDE keys become hot cues A–C. Hold an empty key to set one.</p>
|
||
<a class="more" href="docs.html#hotcuekeys">Hot cue guide →</a>
|
||
</article>
|
||
|
||
<!-- beatjump -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Beat jump</h3>
|
||
<div class="meta"><span class="state experimental">experimental</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>beatjump</code></div>
|
||
<p>TRACK SEARCH ◀◀ ▶▶ jumps 1, 2, 4 or 8 beats, gapless and in phase.</p>
|
||
<a class="more" href="docs.html#beatjump">More →</a>
|
||
</article>
|
||
|
||
<!-- keynotation -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Key notation</h3>
|
||
<div class="meta"><span class="state experimental">experimental</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>keynotation</code></div>
|
||
<figure class="tshot"><img src="assets/card-key.png" alt="The key 4A in its wheel colour" loading="lazy"></figure>
|
||
<p>Every key in Camelot, Open Key or classic, in its Camelot wheel colour.</p>
|
||
<a class="more" href="docs.html#keynotation">More →</a>
|
||
</article>
|
||
|
||
<!-- cuenames -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Cue names</h3>
|
||
<div class="meta"><span class="state testing">in testing</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>cuenames</code></div>
|
||
<figure class="tshot"><img src="assets/card-cuenames.png" alt="Title bar with the next cue: C Break in green" loading="lazy"></figure>
|
||
<p>The comment you give a cue in rekordbox ("Drop") in the title bar, in the cue's colour: always the next named cue ahead.</p>
|
||
<a class="more" href="docs.html#cuenames">More →</a>
|
||
</article>
|
||
|
||
<!-- played -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Played tracks</h3>
|
||
<div class="meta"><span class="state testing">in testing</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>played</code></div>
|
||
<figure class="tshot"><img src="assets/played.png" alt="Track list: [1] Lunatica in green, loaded on player 1" loading="lazy"></figure>
|
||
<p>Tracks loaded tonight turn green in BROWSE. Over Pro DJ Link modded players share theirs, and a track on another deck right now shows [1] or [1][3].</p>
|
||
<a class="more" href="docs.html#played">More →</a>
|
||
</article>
|
||
|
||
<!-- endwarn -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>End warning</h3>
|
||
<div class="meta"><span class="state testing">in testing</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>endwarn</code></div>
|
||
<figure class="tshot"><img src="assets/endwarn.png" alt="Overview with the bar under it in red" loading="lazy"></figure>
|
||
<p>In the last 30 seconds the bar under the overview blinks red instead of white.</p>
|
||
<a class="more" href="docs.html#endwarn">More →</a>
|
||
</article>
|
||
|
||
<!-- quicksearch -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Quick search</h3>
|
||
<div class="meta"><span class="state testing">in testing</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>quicksearch</code></div>
|
||
<p>BROWSE held opens SEARCH; BROWSE twice goes to the list the playing track came from.</p>
|
||
<a class="more" href="docs.html#quicksearch">More →</a>
|
||
</article>
|
||
|
||
<!-- usbautoload -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>USB auto load</h3>
|
||
<div class="meta"><span class="state testing">in testing</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>usbautoload</code></div>
|
||
<p>MY SETTINGS on a stick are loaded the moment the player finds them. UTILITY › USB AUTO LOAD.</p>
|
||
<a class="more" href="docs.html#usbautoload">More →</a>
|
||
</article>
|
||
|
||
<!-- extended_bpm -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Extended BPM</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">by arnoldasr · <code>extended_bpm</code></div>
|
||
<figure class="tshot"><img src="assets/card-bpm.png" alt="BPM 145 with two decimals" loading="lazy"></figure>
|
||
<p>The BPM to two decimals.</p>
|
||
</article>
|
||
|
||
<!-- phasemeter -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Phase meter</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">by arnoldasr · additions by us · <code>phasemeter</code></div>
|
||
<figure class="tshot"><img src="assets/card-phase.png" alt="Two-line phase meter, the bar countdown beside it" loading="lazy"></figure>
|
||
<p>Two lines instead of four boxes: master and this deck. In testing: UTILITY › PHASE METER REVERSE, and the bar countdown moved clear of the lines.</p>
|
||
<a class="more" href="docs.html#phasemeter">More →</a>
|
||
</article>
|
||
|
||
<!-- ledsaver -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>LED animation</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>ledsaver</code></div>
|
||
<p>With the screen saver on, the button LEDs and jog rings play a loop.</p>
|
||
<a class="more" href="docs.html#ledsaver">More →</a>
|
||
</article>
|
||
|
||
<!-- credit -->
|
||
<article class="card">
|
||
<div class="card-head">
|
||
<h3>Boot text</h3>
|
||
<div class="meta"><span class="state stable">stable</span></div>
|
||
</div>
|
||
<div class="by">Pionaarr mod · <code>credit</code></div>
|
||
<figure class="tshot"><img src="assets/card-boot.png" alt="Boot screen: Pionaarr Mods 1.0" loading="lazy"></figure>
|
||
<p>The boot screen says <em>Pionaarr Mods 1.0</em>.</p>
|
||
</article>
|
||
|
||
</div>
|
||
<p class="caption"><span class="state testing">in testing</span> means built and working in the emulator, not in the builder yet. Still to come: <a href="upcoming.html">Upcoming</a>.</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="build">
|
||
<div class="wrap">
|
||
<h2 class="section-title">Build it in your browser</h2>
|
||
<p class="section-sub">The <a href="builder.html">builder</a> takes the official 1.31 update and adds the mods you tick, on your computer. Only the main application changes; the boot loader and recovery are copied byte for byte and checked.</p>
|
||
<div class="cta"><a class="btn primary play" href="builder.html"><span class="play-key" aria-hidden="true"><svg viewBox="0 0 17 10"><path d="M0 0v10l8-5z"/><rect x="10" y="0" width="2.5" height="10"/><rect x="14.5" y="0" width="2.5" height="10"/></svg></span>Open the builder</a></div>
|
||
<p class="caption">Prefer the command line? The Python patcher is in the <a href="docs.html#install">docs</a>.</p>
|
||
</div>
|
||
</section>
|
||
</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, the mods <code>advanced_waveforms</code>, <code>cuecolours</code>, <code>hotcuekeys</code>, <code>ledsaver</code>, <code>keynotation</code> and <code>credit</code>, 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>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>
|
||
<p class="legal"><a href="impressum.html">Impressum</a> · <a href="datenschutz.html">Datenschutz</a></p>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|