The Open-Source SP-404MKII
Toolkit & Sample Librarian
Connect directly to your Roland SP-404MKII over USB CDC-ACM. Backup entire projects in seconds to .tar.gz, import/export 48kHz WAV audio with reverse-engineered RFWV checksums, extract SMF pattern sequences, and tweak parameters from the terminal or browser.
Engineered for Performance & Freedom
Built completely in pure Go. Eliminates the slow, proprietary desktop app with lightning-fast CLI automation and native Linux, macOS, and Windows compatibility.
Full Project Backup & Restore
One-command dual-format export and restore for all 160 pads across Banks A–J and sequence slots PTN00001–PTN00160 into directories or compressed .tar.gz archives with project.json manifests.
Reverse-Engineered RFWV Header Generator
The SP-404MKII firmware requires a reverse-engineered 512-byte header combining an MD5 hash of sample dimensions and an MSVCRT PRNG seed. open404 synthesizes compliant headers natively for audio of any length.
Pattern Sequencer SMF I/O
Extract Roland's internal .BIN pattern memory files and convert them into standard Type 0 Standard MIDI Files (.mid) to edit in your favorite DAW, or import SMF MIDI files directly back onto pads.
Real-Time Pad & FX Parameters
Adjust Volume, Pan, BPM, Pitch (-24 to +24), Speed/Time-stretch, Envelope AHR, Gate, Loop, Reverse, Roll rates, Mute Groups, Pad Links, and FX Bus routing (Dry / Bus 1 / Bus 2) from scripts or terminal.
Self-Hosted Web Controller (open404d)
Run a background daemon with touch-friendly pads, responsive layout for phones and tablets, automatic USB reconnection, resilient heartbeat loop, and a JSON REST API.
Zero CGO & Cross-Platform
Zero C compiler dependencies for Linux and Windows. Compiles to clean, portable, single-file static binaries for x86_64, ARM64 (Raspberry Pi), Apple Silicon, and Intel macOS.
Install open404 in Seconds
Choose your preferred package manager, container runtime, or download standalone pre-compiled binaries.
Install on macOS (Apple Silicon / Intel) and Linux via Homebrew tap:
Install the official Debian/Ubuntu .deb package with included systemd service for open404d:
Launch the web dashboard with USB device passthrough in Docker:
Run directly via Nix Flake or install into your environment:
Install the CLI binary directly into your $GOPATH/bin with Go 1.22+:
Download pre-compiled standalone release archives from GitHub Releases:
Command-Line Interface Cheatsheet
Built-in tab completion for Bash, Zsh, Fish, and PowerShell. Control your sampler in real-time from scripts or terminal.
$ open404 project backup 1 ./chill_beats.tar.gz
[SAMPLE] [1/160] A01: Exporting sample (1.4 MB)...
[PATTERN] [1/160] PTN00001: Exported MIDI (1.2 KB)...
[BACKUP] Project 1 backup complete! Output: chill_beats.tar.gz
# 2. Restore project into hardware Project 2 with overwrite flag
$ open404 project restore ./chill_beats.tar.gz 2 --force
[RESTORE] Restoring Project 1 manifest into Project 2...
[RESTORE] Complete: 24 samples, 4 patterns successfully written.
# 3. Import and export sample WAV files
$ open404 sample import heavy_kick.wav A01
$ open404 sample export A01 exported_kick.wav
# 4. Real-time pad parameter tweaking
$ open404 param A01 pitch -12 speed 85.0 bus bus1
$ open404 param A01 envelope 15 60 25
# 5. Pattern sequencer export to Standard MIDI File (.mid)
$ open404 pattern export A1 lo_fi_groove.mid
# 6. Physical hardware [EXIT] button trigger
$ open404 exit