This ruck shreduler uses MIDIator and midilib to support real-time and offline MIDI generation.

$ ruck_midi MIDI_FILENAME NUM_TRACKS LIVE SCRIPT_FILENAME[S]

where LIVE is “no” to only save the MIDI output, or “yes” to also play in real-time.