Reflash your SC1000 scratch instrument into a class-compliant USB-MIDI controller 👾
This project is two parts that work together:
- The controller firmware — turns an SC1000 hardware scratch instrument into a plug-and-play USB-MIDI controller: its jog wheel, crossfader, volume pots and buttons stream as MIDI over one USB cable (which also powers it — no soldering).
- The plugin (macOS) — drop any sample onto it and scratch it like a record: variable-rate, reversible playback driven by a jog wheel and gated by the crossfader, with the spinning platter and waveform the hardware itself lacks. Runs as an AU plugin (Renoise, Logic, any AU host) or a standalone app.
Use either on its own — the plugin works with any controller sending the same MIDI, the firmware works with any MIDI software — but together they're a complete, 1-cable scratch setup.
- Download SC1000-AU-latest.zip (or the standalone app).
- Unzip and drop
SC1000.componentinto~/Library/Audio/Plug-Ins/Components/. - Open it in your AU host (or just run
SC1000.app), drag a sample in, and scratch.
In Renoise, set the instrument's MIDI input to your controller — not MIDI-mapping-to-parameter, which would break the relative jog (see technical details).
⚠️ Use entirely at your own risk. This is experimental, unofficial firmware. It rebuilds and flashes your device's kernel, device tree and boot partition, and it can brick, damage, or "fry" your SC1000 / SC500 (or anything you connect it to). You alone are responsible for whatever happens to your hardware. There is no warranty of any kind (GPLv2 §11–12). Keep the factory backup (./build/make-stock.sh) and read the recovery notes before you flash. If you're not comfortable recovering a device that won't boot, don't flash it.
- Download sc1000-firmware-latest.zip
and unzip →
xwax+sc.tar. - Copy both onto a FAT32 USB stick, insert it in the SC1000's USB-A port.
- Hold a beat button and power on → it says "updated successfully."
- Power off, remove the stick, connect the micro-USB to your computer → it
appears as a MIDI device named
MIDI Gadget(a rename to "SC1000" is planned). Set that as the plugin's MIDI input and play.
Prefer to build it yourself? See firmware/README.md.
The controller streams its jog wheel as a relative MIDI CC (so fast reversals never break), the crossfader and pots as CCs, and the buttons as notes. The plugin reads that raw stream and turns the jog into playhead movement — the scratch — gated by the crossfader cut. One USB cable carries power and MIDI. Full map: host/sc1000-controls.md.
- Plugin format: AU, never VST3. VST3 normalizes incoming MIDI CC into plugin
parameters, which destroys the SC1000's relative jog stream; AU and Standalone
pass raw CC through. This is load-bearing — see
vst/docs/ARCHITECTURE.md. - Firmware: the micro-USB port runs the A13 SoC's USB0 as a device gadget
(
g_midi); a custom kernel + device tree enable it andsc_midi_out.c(added to xwax) emits the controls. Built with a Dockerised buildroot. - Docs: device → plugin MIDI contract
vst/docs/MIDI-MAPPING.md· plugin architecture & scratch DSPvst/docs/ARCHITECTURE.md· hardware maphost/sc1000-controls.md. - Build from source:
make vst(plugin) ·make firmware(controller) ·make helpfor all tasks.
GPLv2 for the firmware — inherited from xwax (© Mark Hills) and
SC1000 (© Andrew Tait / rasteri). The plugin is built on JUCE
(GPL), so distributed plugin binaries are GPL too. See COPYING.
AI-transparency: created with Claude Opus 4.8.
