[PD] including bpm info to midi-recording

Martin Peach chakekatzil at gmail.com
Sun Apr 5 17:28:48 CEST 2020


On Sun, Apr 5, 2020 at 9:48 AM Jakob Laue <jakkesprinter at web.de> wrote:
>
> Hey Martin,
> I tried again today. I recorded a new midi file and then loaded it with the midifile-read-help-patch.
>
> After loading the file I get:
>
> midifile: opened /Users/wbjc/Desktop/mpxy.mid
> midifile: Header chunk type: MThd
> midifile: Header chunk length: 6
> midifile: Header chunk format: 0 (Single multichannel track)
> midifile: Header chunk ntrks: 1
> midifile: Header chunk division: 0xE714: 25 frames per second, 20 ticks per frame
> other_meta: frames_per_sec 25
> other_meta: ticks_per_frame 20
> midifile: Track chunk 0 type: MTrk, length 432
>
>
> And then if I send a |dump 0( message to [midifile] I get:
>
> midifile: Parsing track[0]...
> midifile: tick 0 delta 0 status 99 MIDI 0x99 24 60 : channel 10 Note 36 On velocity 96
> midifile: tick 0 delta 0 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 2B 65 : channel 10 Note 43 On velocity 101
> midifile: tick 0 delta 0 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 2B 7F : channel 10 Note 43 On velocity 127
> midifile: tick 0 delta 0 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 25 72 : channel 10 Note 37 On velocity 114
> midifile: tick 0 delta 0 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 25 72 : channel 10 Note 37 On velocity 114
> midifile: tick 0 delta 0 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 24 7C : channel 10 Note 36 On velocity 124
> midifile: tick 0 delta 0 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 26 67 : channel 10 Note 38 On velocity 103
> midifile: tick 0 delta 0 status 89 MIDI 0x89 26 00 : channel 10 Note 38 Off velocity 0
> midifile: tick 0 delta 0 status 99 MIDI 0x99 26 6A : channel 10 Note 38 On velocity 106
> midifile: tick 0 delta 0 status 89 MIDI 0x89 26 00 : channel 10 Note 38 Off velocity 0
> midifile: tick 1052 delta 1052 status 99 MIDI 0x99 24 59 : channel 10 Note 36 On velocity 89
> midifile: tick 1073 delta 21 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 1120 delta 47 status 99 MIDI 0x99 24 6E : channel 10 Note 36 On velocity 110
> midifile: tick 1169 delta 49 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 1248 delta 79 status 99 MIDI 0x99 24 7F : channel 10 Note 36 On velocity 127
> midifile: tick 1287 delta 39 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 1400 delta 113 status 99 MIDI 0x99 24 6A : channel 10 Note 36 On velocity 106
> midifile: tick 1418 delta 18 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 1455 delta 37 status 99 MIDI 0x99 24 64 : channel 10 Note 36 On velocity 100
> midifile: tick 1502 delta 47 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 1591 delta 89 status 99 MIDI 0x99 2B 71 : channel 10 Note 43 On velocity 113
> midifile: tick 1657 delta 66 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 1780 delta 123 status 99 MIDI 0x99 2B 7C : channel 10 Note 43 On velocity 124
> midifile: tick 1788 delta 8 status 99 MIDI 0x99 2A 29 : channel 10 Note 42 On velocity 41
> midifile: tick 1854 delta 66 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 1971 delta 117 status 99 MIDI 0x99 2B 7F : channel 10 Note 43 On velocity 127
> midifile: tick 2047 delta 76 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 2213 delta 166 status 99 MIDI 0x99 25 6B : channel 10 Note 37 On velocity 107
> midifile: tick 2266 delta 53 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 2352 delta 86 status 99 MIDI 0x99 25 7C : channel 10 Note 37 On velocity 124
> midifile: tick 2366 delta 14 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 2424 delta 58 status 99 MIDI 0x99 25 73 : channel 10 Note 37 On velocity 115
> midifile: tick 2464 delta 40 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 2571 delta 107 status 99 MIDI 0x99 26 7B : channel 10 Note 38 On velocity 123
> midifile: tick 2634 delta 63 status 89 MIDI 0x89 26 00 : channel 10 Note 38 Off velocity 0
> midifile: tick 2726 delta 92 status 89 MIDI 0x89 2A 00 : channel 10 Note 42 Off velocity 0
> midifile: tick 2728 delta 2 status 99 MIDI 0x99 26 7F : channel 10 Note 38 On velocity 127
> midifile: tick 2736 delta 8 status 99 MIDI 0x99 2A 24 : channel 10 Note 42 On velocity 36
> midifile: tick 2794 delta 58 status 89 MIDI 0x89 26 00 : channel 10 Note 38 Off velocity 0
> midifile: tick 2865 delta 71 status 99 MIDI 0x99 2C 7F : channel 10 Note 44 On velocity 127
> midifile: tick 2883 delta 18 status 89 MIDI 0x89 2C 00 : channel 10 Note 44 Off velocity 0
> midifile: tick 2928 delta 45 status 99 MIDI 0x99 2C 7F : channel 10 Note 44 On velocity 127
> midifile: tick 2959 delta 31 status 89 MIDI 0x89 2C 00 : channel 10 Note 44 Off velocity 0
> midifile: tick 2996 delta 37 status 99 MIDI 0x99 2C 6E : channel 10 Note 44 On velocity 110
> midifile: tick 3027 delta 31 status 89 MIDI 0x89 2C 00 : channel 10 Note 44 Off velocity 0
> midifile: tick 3059 delta 32 status 99 MIDI 0x99 2C 77 : channel 10 Note 44 On velocity 119
> midifile: tick 3094 delta 35 status 89 MIDI 0x89 2C 00 : channel 10 Note 44 Off velocity 0
> midifile: tick 3151 delta 57 status 99 MIDI 0x99 2D 64 : channel 10 Note 45 On velocity 100
> midifile: tick 3170 delta 19 status 89 MIDI 0x89 2D 00 : channel 10 Note 45 Off velocity 0
> midifile: tick 3280 delta 110 status 99 MIDI 0x99 2D 74 : channel 10 Note 45 On velocity 116
> midifile: tick 3353 delta 73 status 89 MIDI 0x89 2D 00 : channel 10 Note 45 Off velocity 0
> midifile: tick 3491 delta 138 status 99 MIDI 0x99 27 7F : channel 10 Note 39 On velocity 127
> midifile: tick 3715 delta 224 status 89 MIDI 0x89 27 00 : channel 10 Note 39 Off velocity 0
> midifile: tick 3749 delta 34 status 99 MIDI 0x99 28 3A : channel 10 Note 40 On velocity 58
> midifile: tick 3794 delta 45 status 89 MIDI 0x89 28 00 : channel 10 Note 40 Off velocity 0
> midifile: tick 3868 delta 74 status 99 MIDI 0x99 29 6D : channel 10 Note 41 On velocity 109
> midifile: tick 3931 delta 63 status 89 MIDI 0x89 29 00 : channel 10 Note 41 Off velocity 0
> midifile: tick 4086 delta 155 status 99 MIDI 0x99 2F 6A : channel 10 Note 47 On velocity 106
> midifile: tick 4097 delta 11 status 89 MIDI 0x89 2F 00 : channel 10 Note 47 Off velocity 0
> midifile: tick 4202 delta 105 status 99 MIDI 0x99 2F 6F : channel 10 Note 47 On velocity 111
> midifile: tick 4262 delta 60 status 89 MIDI 0x89 2F 00 : channel 10 Note 47 Off velocity 0
> midifile: tick 4331 delta 69 status 99 MIDI 0x99 2E 68 : channel 10 Note 46 On velocity 104
> midifile: tick 4358 delta 27 status 89 MIDI 0x89 2E 00 : channel 10 Note 46 Off velocity 0
> midifile: tick 4397 delta 39 status 99 MIDI 0x99 2E 79 : channel 10 Note 46 On velocity 121
> midifile: tick 4439 delta 42 status 89 MIDI 0x89 2E 00 : channel 10 Note 46 Off velocity 0
> midifile: tick 4470 delta 31 status 99 MIDI 0x99 2E 67 : channel 10 Note 46 On velocity 103
> midifile: tick 4500 delta 30 status 99 MIDI 0x99 2D 4E : channel 10 Note 45 On velocity 78
> midifile: tick 4509 delta 9 status 89 MIDI 0x89 2E 00 : channel 10 Note 46 Off velocity 0
> midifile: tick 4595 delta 86 status 89 MIDI 0x89 2D 00 : channel 10 Note 45 Off velocity 0
> midifile: tick 4679 delta 84 status 99 MIDI 0x99 2D 6D : channel 10 Note 45 On velocity 109
> midifile: tick 4681 delta 2 status 99 MIDI 0x99 2C 6E : channel 10 Note 44 On velocity 110
> midifile: tick 4735 delta 54 status 89 MIDI 0x89 2D 00 : channel 10 Note 45 Off velocity 0
> midifile: tick 4743 delta 8 status 89 MIDI 0x89 2C 00 : channel 10 Note 44 Off velocity 0
> midifile: tick 4821 delta 78 status 99 MIDI 0x99 2B 71 : channel 10 Note 43 On velocity 113
> midifile: tick 4829 delta 8 status 89 MIDI 0x89 2A 00 : channel 10 Note 42 Off velocity 0
> midifile: tick 4883 delta 54 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 4966 delta 83 status 99 MIDI 0x99 25 4E : channel 10 Note 37 On velocity 78
> midifile: tick 5022 delta 56 status 89 MIDI 0x89 25 00 : channel 10 Note 37 Off velocity 0
> midifile: tick 5103 delta 81 status 99 MIDI 0x99 24 62 : channel 10 Note 36 On velocity 98
> midifile: tick 5152 delta 49 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 5226 delta 74 status 99 MIDI 0x99 24 24 : channel 10 Note 36 On velocity 36
> midifile: tick 5255 delta 29 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 5268 delta 13 status 99 MIDI 0x99 2A 69 : channel 10 Note 42 On velocity 105
> midifile: tick 5370 delta 102 status 99 MIDI 0x99 24 68 : channel 10 Note 36 On velocity 104
> midifile: tick 5415 delta 45 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 6046 delta 631 status 99 MIDI 0x99 2B 29 : channel 10 Note 43 On velocity 41
> midifile: tick 6066 delta 20 status 89 MIDI 0x89 2B 00 : channel 10 Note 43 Off velocity 0
> midifile: tick 6292 delta 226 status 99 MIDI 0x99 24 6A : channel 10 Note 36 On velocity 106
> midifile: tick 6300 delta 8 status 89 MIDI 0x89 2A 00 : channel 10 Note 42 Off velocity 0
> midifile: tick 6366 delta 66 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 6393 delta 27 status 99 MIDI 0x99 2A 21 : channel 10 Note 42 On velocity 33
> midifile: tick 6428 delta 35 status 99 MIDI 0x99 24 7F : channel 10 Note 36 On velocity 127
> midifile: tick 6473 delta 45 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 6489 delta 16 status 99 MIDI 0x99 24 71 : channel 10 Note 36 On velocity 113
> midifile: tick 6550 delta 61 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 6634 delta 84 status 99 MIDI 0x99 24 7F : channel 10 Note 36 On velocity 127
> midifile: tick 6678 delta 44 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 6784 delta 106 status 99 MIDI 0x99 24 7F : channel 10 Note 36 On velocity 127
> midifile: tick 6829 delta 45 status 89 MIDI 0x89 24 00 : channel 10 Note 36 Off velocity 0
> midifile: tick 7745 delta 916 status FF Meta 0x2F length 0
> ========End of Track 0==========
>
>
> So it must have recorded something. But when I imoprt the recorded midi file i ableton, then I only see 4 different , very short notes (c1, c#1, d1 and g1) at the very beginning of the piano roll. But of course I would expect the notes being all over the time line. Hm, might there something be wrong with the timing information?

You have a bunch of notes right at the beginning (tick 0) that go on
and off instantly. Not sure how you did that, it may confuse ableton.
Maybe you could take a simple file made in ableton, that works in
ableton,  and load it into [midifile] to see what it looks like.
Ableton may be looking for a time signature or something like that in
the first chunk.


> When I recorded the file, I sent the 2,005 message into the right inlet of [metro], but that is correct, isn't it?

If that's 2 point 005  not two thousand, yes. But that only tells the
[metro] how fast to tick, it doesn't write anything to the file to say
how fast to play it. Also loading a file with a bpm and time signature
doesn't automatically set the metro to match those values. The help
patch is set up so that the first bang sent to [midifile] after
loading a file willl take the timing info from the first chunk and set
the [metro] for you. (The latest version of the help patch will do
that, older ones may be different) Click the bang "step_one_tick".

Martin





More information about the Pd-list mailing list