Files
CDJ900ModsWeb/index.html
T

209 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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.4.5">
<script src="assets/versions.js?v=1.4.5"></script>
<script src="script.js?v=1.4.5"></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, including the ones still in testing (the 3-band waveform is one of them).</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>
</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, not in the builder yet</figcaption></figure>
<p>rekordbox's RGB colours on the big waveform, a red-to-white overview. 3-band (lows, mids, highs as in rekordbox) comes next, switched in UTILITY › WAVEFORM.</p>
</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.</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="Title bar with 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>
<!-- 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 · <code>phasemeter</code></div>
<figure class="tshot"><img src="assets/card-phase.png" alt="Two-line phase meter" loading="lazy"></figure>
<p>Two lines instead of four boxes: master and this deck.</p>
</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">In testing: quick search, USB auto load, a reversed phase meter and the 3-band waveform — see <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>