v0.1.0 • Pure Go • 100% Reverse-Engineered • Zero CGO

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.

SP-404MKII Virtual Preview • Bank A (Pads 1–16)
Click pads or use keyboard (1-4, Q-R, A-F, Z-V)
READY • BANK A • PROJ 01
PAD A01: 808 KICK
48.0 kHz • STEREO • LEVEL: 127 • BUS 1
A01
Kick
1
A02
Snare
2
A03
Cl. Hat
3
A04
Op. Hat
4
A05
Clap
Q
A06
Rim
W
A07
Low Tom
E
A08
Hi Tom
R
A09
Sub 808
A
A10
Laser
S
A11
Arp Hit
D
A12
Bell
F
A13
Vinyl
Z
A14
Stab
X
A15
Chord
C
A16
Tape
V
0 st

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:

brew install iare-digital/tap/open404

Install the official Debian/Ubuntu .deb package with included systemd service for open404d:

sudo apt install ./open404_0.1.0_linux_amd64.deb
sudo systemctl enable --now open404d

Launch the web dashboard with USB device passthrough in Docker:

docker run -d --name open404d --device=/dev/ttyACM0:/dev/ttyACM0 -p 8404:8404 ghcr.io/iare-digital/open404d:latest

Run directly via Nix Flake or install into your environment:

nix run github:iare-digital/open404 -- ports

Install the CLI binary directly into your $GOPATH/bin with Go 1.22+:

go install github.com/iare-digital/open404/cmd/sp404@latest

Download pre-compiled standalone release archives from GitHub Releases:

🐧 Linux (x86_64) 🍓 Linux (ARM64) 🍎 macOS (Apple Silicon) 🪟 Windows (x86_64)

Command-Line Interface Cheatsheet

Built-in tab completion for Bash, Zsh, Fish, and PowerShell. Control your sampler in real-time from scripts or terminal.

bash — open404 CLI
# 1. Full project backup to compressed .tar.gz archive
$ 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