Reading General MIDI files

    Sep 04 2013 | 4:00 pm
    I want to be able to read in General MIDI files (either type 0 or type 1) into my patch (which will be turned into a Max standalone). In addition to obviously getting the note info out, I also need to be able to extract program change messages and continuous controller (CC) messages from the file. For reasons which I'll spare you, I also can't use Java, so no mxj objects allowed. Here's what I've looked at, and challenges:
    seq - doesn't read in type 1 (multi-track) MIDI files
    detonate - reads in type 0 and type 1 files, but no ability to read program change or CC data from files. This thread identifies the same problem.
    midifile by John MacCallum - mxj objects not OK.
    ajm.midi2coll by Adam Murray - doesn't output program changes, and also dependent on mxj.
    Any other ideas or leads??

    • Sep 06 2013 | 6:16 pm
      I had an idea to try and see if there were Javascript tools to tackle this. I found jasmid, which has two sub-components, midifile.js and stream.js which seem like they populate a Javascript array with the MIDI info.
      I stink at Javascript though, and wondering if anyone out there could tweak the above files to work in a Max-land js object? Ideally, I'd love to be able to give the object the path to the .mid file, and then get all the info out the other end...
    • Oct 29 2013 | 3:42 pm
      Also have a look at note~ ( - I think) and I've been irking with them trying to decide which one fits my needs best. Still haven't decided but they seem to be further ahead than detonate.
    • Oct 29 2013 | 3:52 pm
      well, last but not least there is [filein].
    • Oct 29 2013 | 4:14 pm
      @Artmusicsouth - thanks, those are good ideas to explore, I didn't know that they had MIDI support...
    • Feb 28 2017 | 9:40 pm
      Since this thread has high google ranking: Seems that with v. 7.3.2 seq and follow now read MIDI type 1 files, see
    • Mar 06 2017 | 4:33 am
      this is huge news!!! very exciting, thank you for the notification.