Midifile to coll
hi all,
I have a bunch of midifiles that I want to turn into coll files to use with live.grid. Once I get the data out of the midifile I can parse it to fit what I'm doing, but it's extracting the data in the first place that is proving problematic.
psw.midifile-parser doesn't appear to work in Max 5.
ajm.midi2coll takes ages to load, then trows up a bunch of java related error messages, and then doesn't work either. It used to work - has something changed in the latest Max (or Java) releases that might have broken midi2coll, or is there perhaps something awry with my installation?
I've also just tried using the "dump" command with seq. But I'm not sure what to make of the resulting list of numbers! Can anyone explain what this means (it's a 1 bar drum pattern C1 to G1)? ...
77 84 104 100 0 0 0 6
0 0 0 1 7 128 77 84
114 107 0 0 1 10 0 255
3 29 66 101 110 122 105 110
100 117 108 97 110 32 80 114
101 109 105 116 114 97 108 32
40 49 50 56 41 32 65 0
255 88 4 4 2 24 8 0
255 81 3 7 39 14 0 144
39 64 0 144 42 64 0 144
40 127 0 144 41 64 129 32
128 40 0 0 128 41 0 0
128 39 0 0 128 42 0 138
43 144 41 64 129 32 128 41
0 130 21 144 36 127 0 144
42 64 0 144 38 64 129 32
128 36 0 0 128 42 0 0
128 38 0 134 32 144 43 64
0 144 36 64 0 144 42 64
129 32 128 43 0 0 128 42
0 0 128 36 0 130 107 144
40 127 129 32 128 40 0 130
21 144 42 64 129 32 128 42
0 134 32 144 40 127 0 144
36 64 0 144 41 64 129 32
128 41 0 0 128 40 0 0
128 36 0 130 107 144 37 64
129 32 128 37 0 130 21 144
41 64 0 144 42 64 0 144
36 64 0 144 39 64 0 144
38 127 129 32 128 39 0 0
128 42 0 0 128 41 0 0
128 38 0 0 128 36 0 130
107 144 37 64 129 32 128 37
0 134 32 144 36 64 129 32
128 36 0 130 21 255 47 0
thanks
David
I made a patch for doing exactly this a while ago. I'll try and dig it up later if you want.
I remember struggling to do it with seq for a long time. Can't remember the exact reason, but in the end I used the detonate object instead. The patch worked by reading the delta time between note events and calculating the right step number. Unfortunately the MIDI files had to be at the tempo it was expecting.
hi David,
That would be great, thanks.
Have a look at the mxj midifile external from the CNMAT. It helped me much to do the opposite (coll -> MIDIfile).
Hi,
I use detonate object to parse midi events into coll.
Luis Marques
heh, that's kind of fun (and frustrating at the same time) to try and pick apart what those lists mean. 36 lines, 8 integers per line... how many separate beats are there in the example? C1 to G1, are those on channel 10?
Probably some header/tempo info etc., then the commands, but why the 255's... where are the note numbers... note-on and note-offs... hmm. Wonder what it would look like if your MIDI file was a single track, channel 1, going from C4 to F4 (60 62 64 65). Maybe with those as markers you could figure stuff out.
And of course there's [detonate] :) :)
hi guys,
thanks for the input so far.
detonate (thanks for the patch, Luis) and mxj midifile both give me the data I need to gtet started. Now I just have to translate millisecond timings into bar positions.
And now that I know what the midi note sequence is, I can see where the data I wanted starts in that long list that seq put out - obviously (!) the note data starts with 144. Not sure where the timimng info is though. I'll stick with detonate & mxj midifile
Hi
For translate milliseconds into bar positions use "translate" object :)
Luis Marques
!!!! All this new stuff! thanks for the pointer