Skip to content

Live performance with hardware MIDI

Use skulpton as a live sequencer to drive hardware synths and tone modules. This guide focuses on a robust setup that avoids “stuck notes” and dropped MIDI on stage.

skulpton --USB-MIDI--> External synths (one or more)
\-- IAC ---------> Soft synth (audio routed to monitors)
  • Laptop + hardware synth(s) + (optionally) a soft synth
  • During the show, drive everything from the keyboard — no mouse / trackpad

Assign each track to a different channel for hardware vs. soft synths.

TrackOUTChannelRole
Pad(Soft synth via IAC bus)1Pad
BassUSB MIDI Device2Bass (hardware)
LeadUSB MIDI Device3Lead (hardware)
DrumsUSB MIDI Device10Drums (GM-compatible ch10)

For setup details, see Set up MIDI I/O.

Make one clip per section of the set and lay them out left to right. Lengths of 4 to 16 bars are easy to read.

Set a loop range per section to create jam-friendly parts.

  • Shift + drag on the ruler to set the range (snaps to bars)
  • Click Loop ON to start looping
  • When moving to the next section, double-click Loop to clear the range, then seek to the next section

See Transport & playback for details.

The worst thing on stage is a note that won’t stop. skulpton automatically sends CC123/CC120 to all 16 channels at:

  • Stop / Pause / Seek
  • Loop wrap
  • MIDI output port change

If something does ring on, just press Stop again. See Troubleshooting for recovery details.

  • Each track’s OUT port and channel are correct
  • Each synth’s receive channel matches
  • BPM and meter are as intended
  • Loop ranges are set (only for sections that need them)
  • Keyboard shortcuts rehearsed — Space, Cmd+D, number keys (shortcuts)
  • One full play-through to confirm every synth makes sound
  • Theme set to a darker palette (try mono)
  • OS sleep / auto-update disabled
  • Plugged into power, with a spare USB-MIDI cable

When you want phrase variety on the fly, the coding Note Effect helps.

  • Different seed -> different phrase — change seed("set-A") to something else
  • Density that varies over time — make the second half of a clip busier (recipes)
  • Wobble with Euclidean rhythms — try euclid(5, 16) -> euclid(7, 16)

If something goes wrong on stage:

  1. Note won’t stop -> press Stop again
  2. Synth not responding -> change the track’s OUT to something else and back (port reopen fires panic)
  3. Code not applying -> edit the clip’s Code by one character, or toggle the lib OFF -> ON (Troubleshooting)