Send SysEx bulk dumps to a Yamaha SU10 with proper timing.
SysEx tools like SysEx Librarian work fine for receiving bulk dumps from the Yamaha SU10, but sending them back to the unit will fail. After the SU10 receives a SysEx header message it needs several seconds to clear its internal memory before it can accept the rest of the dump, and most apps don't wait long enough. The result is a transfer that fails part way through.
susend handles this by inserting the specific delays the SU10 expects. The defaults are set to be as fast as the SU10 will accept, so a full bulk dump transfer takes around 3 minutes.
susend is a command line tool that takes an SU10 .syx bulk dump as input. When you run it:
- It lists the available MIDI output ports and asks you to pick one (or use
--portto skip the prompt). - It sends the header message to the SU10.
- It waits 10 seconds while the SU10 clears its memory.
- It streams the rest of the dump, pausing briefly between blocks and a little longer at section boundaries to match the timings the SU10 expects.
Be sure to put the SU10 into BULK RECEIVE mode before starting. Default timings work for standard dumps, the options below let you fine tune things if you need to.
Requires Node.js 18 or newer.
npm install
npm link
susend [file.syx] [options]
| Option | Default | Description |
|---|---|---|
--init-delay <seconds> |
10.0 | Delay after header in seconds |
--block-delay <ms> |
128 | Delay between blocks in ms |
--section-delay <seconds> |
1.0 | Delay at section boundaries in seconds |
--port <number> |
— | MIDI output port number (skip selection prompt) |
susend dump.syx # send with default timing
susend dump.syx --section-delay 1.5 # longer pause at section boundaries
susend dump.syx --block-delay 200 --port 0 # custom block delay, auto-select port 0