Skip to content

OneCoinOnePlay/dr-sidekick

Repository files navigation

Dr. Sidekick

Boss Dr. Sample SP-303 Pattern Sequencer and SmartMedia librarian.

Beta Python 3 Platforms


SmartMedia Library

Sample Manager

Pattern Sequencer


What It Does

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

Requirements

  • Python 3.9 or later
  • Tkinter (included with most Python distributions)
  • macOS and Windows validated
  • PTNDATA_INIT_OFFICIAL.bin alongside Dr_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 tkinterdnd2

Run

python Dr_Sidekick.py

On Windows PowerShell, you can also use:

py -3 Dr_Sidekick.py

On systems where python does not point to Python 3, use:

python3 Dr_Sidekick.py

Or make it executable:

chmod +x Dr_Sidekick.py
./Dr_Sidekick.py

Status

Beta. 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
  • 07031100 decoding 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 -> B and A -> 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.

File Format Notes

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

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

Disclaimer

Dr. Sidekick is an independent community project and is not affiliated with, endorsed by, or supported by Roland Corporation or BOSS.

License

© OneCoinOnePlay. All rights reserved.

About

Boss Dr. Sample SP-303 Pattern Sequencer and SmartMedia librarian

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages