krevis / MIDIApps

MIDI apps for Mac OS X: MIDI Monitor and SysEx Librarian.
http://www.snoize.com/
BSD 3-Clause "New" or "Revised" License
712 stars 112 forks source link

Insert delay between files when sending more than one #57

Open raybellis opened 7 years ago

raybellis commented 7 years ago

Roland XV firmware updates require playing a long sequence of MIDI files containing SysEx data. For the XV-88 the files are 70KB+ each, and there are 32 of them. It took two hours to manually load each of them. [ it could've gone faster, but I tuned down the bit rate to 60% and had a 150ms delay between messages, since just playing the .mid files with my usual sequencer caused a MIDI overrun error and nearly bricked my '88! ]

I did try selecting multiple files and then pressing play, but the bootstrap firmware can't cope without a small gap between the files ( I can't confirm whether the currently supported inter-message delay even gets applied in this case).

It would be very useful for there to be an option to set a user-specified delay when one file finishes before starting on the next file.

krevis commented 7 years ago

Good idea.

Right now it collects all the sysex messages from all the files, then plays them, with the same inter-message delay between each one.

krevis commented 7 years ago

(And thank you for explaining your case so clearly. I didn't know Roland XVs had this particular firmware update process.)

raybellis commented 7 years ago

I don't know what inter-file delay the XV needs, but I do know that when I did play multiple files the XV failed to notice the start of the second file. Fortunately, stopping the replay and then continuing with each file manually appeared to work without leaving the firmware bricked. It certainly seemed happy with the couple of seconds it took me to click and start each file manually.

p.s. kudos to you too for having the ability to extract the sysex messages from a .mid file, and not just from within raw .syx files.

For a few heart-stopping moments on Thursday night I thought I had a very expensive (and heavy) paperweight. Even though there's apparently timing information in the Roland .mid files it seems that the standard CoreMIDI MusicSequence player just threw the data out too fast for the XV to cope with at all, and it wouldn't boot other than into firmware update mode.

Without your app's ability to run at lower rates I'd have been very unhappy.