Boss Dr. Sample SP-303 Pattern Sequencer and SmartMedia librarian.
Pattern Sequencer — draw, edit, and arrange pad events on a piano-roll canvas
- 32 pad lanes across Banks A, B, C & D
- Draw, Select, and Erase editing modes
- Grid snapping: Off, 4, 8, 8-3, 16
- Multi-select, velocity editing, and quantize
- Copy/paste pattern slots, 50-level undo/redo
- MIDI import with PPQN conversion; up to 16 files into consecutive slots in one operation
- Apply a selection of Grooves From Mars, with special thanks to Samples From Mars. You can also apply your own MIDI grooves
- SP-303-aware pattern handling: 2-bar default length, PTNINFO-backed slot mapping, 1-99 bar lengths, and hardware-style stepping above 20 bars
- Preserves hardware-authored duplicate hits and overdub-oriented timing semantics during decode
- Hybrid pattern rendering: onset-only events display as occupied steps, while validated hardware Gate pairs can display as spans
- Debug tuple inspection for hardware-derived patterns and unresolved tuple families
SmartMedia Manager — load a card setup, reassign pads, write changes back to the SmartMedia card
- Import WAV/AIFF with automatic format conversion (24-bit → 16-bit, stereo → mono)
- Auto-pad samples to 110ms minimum
- Reassign archived .SP0 samples to different pads
- Mix archived samples with new imports
- Preview archived SP0 samples with experimental RDAC decoding
- Convert SP0 samples to WAV
- Generates byte-perfect SMPINFO0.SP0 metadata
SmartMedia Library — virtual card management
- Create, rename, and organise virtual SmartMedia cards
- Archive full card contents (SP0 samples + SMPINFO + patterns)
- MPC1000 .pgm import for cross-device sample transfer
Quick Import WAV Folder — prepare WAV sets for one-bank-at-a-time loading onto the SP-303
Backup / Restore — create and restore full SP0 card backups
- Python 3.9 or later
- Tkinter (included with most Python distributions)
- macOS and Windows validated
PTNDATA_INIT_OFFICIAL.binalongsideDr_Sidekick.py(included in this repo) — a byte-perfect initialization template captured from real SP-303 hardware. Without it the app falls back to a software-generated template that may not produce fully hardware-compatible files.
Optional: tkinterdnd2 enables drag-and-drop support. The app runs without it.
If you want drag-and-drop support on Windows PowerShell:
py -3 -m pip install tkinterdnd2python Dr_Sidekick.pyOn Windows PowerShell, you can also use:
py -3 Dr_Sidekick.pyOn systems where python does not point to Python 3, use:
python3 Dr_Sidekick.pyOr make it executable:
chmod +x Dr_Sidekick.py
./Dr_Sidekick.pyBeta. Core workflows are functional and have been tested against SP-303 hardware.
Current release: v0.7.5
Recent pattern work:
- Pattern length now defaults to 2 bars to match SP-303 hardware
- Length editing follows the SP-303 rule: 1-20 in single-bar steps, then 4-bar steps up to 99
- PTNINFO bar-count and display-slot mapping are hardware-aligned
07031100decoding preserves overdub timing by treating zero-delta note tuples as repeated prior steps- Quantize changes are treated as in-stream PTNDATA state, not PTNINFO metadata
- Validated hardware Gate pairs (
A -> BandA -> C) now decode as derived spans - Unresolved hardware tuple families are preserved and inspectable instead of being flattened into generic filler
- Restore to Card now removes stale sample SP0 files while preserving destination pattern files unless the selected virtual card explicitly includes them
RDAC audio decoding is experimental — samples are recognisable but noisy. Structural accuracy (pattern selection, bit extraction, hierarchical interpolation) is confirmed with 0.93 spectral correlation to hardware output.
Please report issues at github.com/OneCoinOnePlay/dr-sidekick/issues.
Dr. Sidekick reads and writes the SP-303's native SmartMedia card format:
| File | Purpose |
|---|---|
PTNDATA0.SP0 |
Pattern event data (16 slots × 1024 bytes) |
PTNINFO0.SP0 |
Pattern metadata and slot mapping (64 bytes) |
SMPINFO0.SP0 |
Sample slot assignments (65 536 bytes) |
SMPxxxxL/R.SP0 |
Sample audio data (RDAC MT1 compressed) |
SmartMedia-Library/ manages virtual cards and sample assets:
SmartMedia-Library/
Cards/{card_name}/ # Virtual card contents (SP0 + metadata)
AutoSaves/{card_name}/ # Timestamped card snapshots
BOSS DATA_INCOMING/ # Staging area for card reads
BOSS DATA_OUTGOING/ # Output for Quick Import WAV
Dr. Sidekick is an independent community project and is not affiliated with, endorsed by, or supported by Roland Corporation or BOSS.
© OneCoinOnePlay. All rights reserved.


