This file is indexed.

/usr/lib/pd/extra/mrpeach/midifile-help.pd is in pd-mrpeach 0.1~svn17645-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
#N canvas 583 98 399 237 12;
#N canvas 54 74 1136 819 midifile_write 0;
#X obj 324 -2 bng 45 250 50 0 empty empty choose 5 23 0 8 -62784 -260818
-258699;
#X obj 67 65 tgl 45 0 empty empty record 2 23 0 8 -258699 -241291 -24198
0 1;
#X floatatom 553 780 15 0 0 0 tick - -, f 15;
#X obj 67 150 metro 2;
#X floatatom 120 125 15 0 0 0 - - -, f 15;
#X msg 120 99 2.005;
#X msg 506 590 verbose \$1;
#X text 494 545 verbosity defaults to 1;
#X obj 324 54 savepanel;
#X msg 409 493 240 1 2 3 4 247;
#X text 523 492 a sysex message;
#X obj 553 750 float;
#X floatatom 506 564 5 0 0 0 - - -, f 5;
#X msg 324 408 write \$1 \$2 \$3;
#X msg 350 199 29;
#X msg 388 199 30;
#X msg 235 199 0;
#X floatatom 405 275 5 0 0 0 ticks_per_frame - -, f 5;
#X text 80 301 (ticks per quarter note if frames per second is zero)
;
#X msg 312 199 25;
#X msg 272 199 24;
#X text 79 322 25 20 will give accurate timing with metro ticks at
2ms;
#X obj 324 375 pack s 25 20;
#X obj 559 663 midifile;
#X text 7 199 time code frames per second:;
#X text 509 432 default is 90 ticks per quarter note;
#X msg 349 433 write filename.mid;
#X msg 374 458 write filename.mid 77;
#X text 555 457 77 ticks per quarter note;
#X msg 442 526 flush;
#X obj 629 96 cnv 15 200 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X floatatom 515 95 5 0 0 0 note - -, f 5;
#X floatatom 515 125 5 0 0 0 velocity - -, f 5;
#X obj 559 283 pack 144 0 0;
#X obj 578 129 sel 0;
#X obj 559 156 t b f;
#X obj 559 257 f;
#X text 553 565 set to 3 to debug input;
#X obj 559 75 notein;
#X obj 102 8 cnv 15 220 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X text 104 10 1: open a file for writing:;
#X obj 116 64 cnv 15 150 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X text 118 67 2: start recording;
#X obj 142 524 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X text 150 526 4: stop recording and save the file:;
#X floatatom 513 180 5 0 0 0 channel - -, f 5;
#X obj 610 237 +;
#X msg 578 185 127;
#X msg 610 157 143;
#X floatatom 919 103 5 0 0 0 value - -, f 5;
#X floatatom 919 134 5 0 0 0 controller - -, f 5;
#X floatatom 917 183 5 0 0 0 channel - -, f 5;
#X obj 965 83 ctlin;
#X obj 965 237 pack 176 0 0;
#X obj 965 269 print ctl>;
#X obj 580 324 print note>;
#X obj 965 119 t b f;
#X obj 965 183 f;
#X obj 1020 126 + 175;
#X text 646 93 3: input MIDI as lists;
#X text 160 658 Martin Peach \, 2010 - 2017/02/01;
#X connect 0 0 8 0;
#X connect 1 0 3 0;
#X connect 3 0 23 0;
#X connect 4 0 3 1;
#X connect 5 0 4 0;
#X connect 6 0 23 0;
#X connect 8 0 22 0;
#X connect 9 0 23 0;
#X connect 11 0 2 0;
#X connect 12 0 6 0;
#X connect 13 0 23 0;
#X connect 14 0 22 1;
#X connect 15 0 22 1;
#X connect 16 0 22 1;
#X connect 17 0 22 2;
#X connect 19 0 22 1;
#X connect 20 0 22 1;
#X connect 22 0 13 0;
#X connect 23 1 11 1;
#X connect 23 2 11 0;
#X connect 26 0 23 0;
#X connect 27 0 23 0;
#X connect 29 0 23 0;
#X connect 33 0 23 0;
#X connect 33 0 55 0;
#X connect 34 0 47 0;
#X connect 34 1 48 0;
#X connect 35 0 36 0;
#X connect 35 1 33 1;
#X connect 36 0 33 0;
#X connect 38 0 31 0;
#X connect 38 0 35 0;
#X connect 38 1 32 0;
#X connect 38 1 34 0;
#X connect 38 1 33 2;
#X connect 38 2 45 0;
#X connect 38 2 46 1;
#X connect 46 0 36 1;
#X connect 47 0 46 0;
#X connect 48 0 46 0;
#X connect 52 0 49 0;
#X connect 52 0 56 0;
#X connect 52 1 50 0;
#X connect 52 1 53 1;
#X connect 52 2 51 0;
#X connect 52 2 58 0;
#X connect 53 0 54 0;
#X connect 53 0 23 0;
#X connect 56 0 57 0;
#X connect 56 1 53 2;
#X connect 57 0 53 0;
#X connect 58 0 57 1;
#X restore 76 116 pd midifile_write;
#N canvas 147 268 1087 702 midifile_read 0;
#X obj 384 140 bng 15 250 50 0 empty empty step_one_tick 18 7 0 12
-4160 -257985 -1;
#X obj -148 60 openpanel;
#X obj -148 7 bng 45 250 50 0 empty empty choose 3 23 0 12 -62784 -260818
-258699;
#X obj -44 142 tgl 45 0 empty empty play -45 23 0 12 -24198 -1 -258699
0 1;
#X msg 231 469 rewind;
#X text 75 468 go to start of file;
#X floatatom 341 572 15 0 0 0 current_tick - -, f 15;
#X obj 75 292 hradio 15 1 0 16 empty empty dump_track_number 0 -6 0
12 -62784 -241291 -1 0;
#X msg 75 313 dump \$1;
#X msg 194 432 68050;
#X msg 19 257 track \$1;
#X obj 19 217 hradio 15 1 0 16 empty empty play_track_number 0 -6 0
12 -62784 -241291 -1 0;
#X obj -44 194 metro 2;
#X text -2 533 creation arguments: midi_file_name;
#X text 138 312 parse this track to main window;
#X floatatom 431 643 15 0 0 0 last_tick - -, f 15;
#X msg 151 389 verbose \$1;
#X text -37 389 verbosity defaults to 1;
#X text -97 2 1: choose a MIDI file to play;
#X text 9 136 2: start playing it;
#X obj 275 415 spigot;
#X obj 320 381 tgl 25 0 empty empty loop -45 12 0 12 -4160 -257985
-258113 0 1;
#X msg -148 90 read \$1;
#X floatatom 151 365 5 0 0 0 - - -, f 5;
#X obj 151 346 hradio 15 1 0 4 empty empty verbosity 0 -6 0 12 -62784
-241291 -1 0;
#X obj 19 234 - 1;
#X obj 275 533 midifile wowo.mid;
#X obj -95 496 ctlout 123;
#X msg -95 466 123;
#X msg -121 117 read I_Wanna_Be_Sedated.mid;
#X obj -95 438 bng 15 250 50 0 empty empty all_notes_off 17 7 0 10
-258113 -257985 -1;
#X obj 594 601 t b b;
#X floatatom -26 254 5 0 0 0 - - -, f 5;
#X obj 631 628 bng 15 250 50 0 empty empty end 17 7 0 10 -258113 -257985
-1;
#X floatatom 472 424 9 0 0 0 loop_start_tick: - -, f 9;
#X text 54 234 -1 = play all tracks;
#X obj 431 621 f;
#X obj 275 441 f 0;
#X text 632 656 Martin Peach \, 2011-2017;
#N canvas 12 66 1058 414 route_events 0;
#X obj 20 29 inlet;
#X floatatom 172 125 5 0 0 0 note - -, f 5;
#X floatatom 249 125 5 0 0 1 velocity - -, f 5;
#X obj 172 50 route 144 145 146 147 148 149 150 151 152 153 154 155
156 157 158 159;
#X obj 172 103 unpack 0 0;
#X obj 178 182 route 128 129 130 131 132 133 134 135 136 137 138 139
140 141 142 143;
#X obj 18 86 print note_on;
#X obj 18 218 print note_off;
#X obj 705 283 noteout 1;
#X obj 786 283 noteout 2;
#X obj 865 283 noteout 3;
#X obj 945 283 noteout 4;
#X obj 178 289 route 176 177 178 179 180 181 182 183 184 185 186 187
188 189 190 191 192;
#X floatatom 178 363 5 0 0 0 controller - -, f 5;
#X floatatom 252 363 5 0 0 1 value - -, f 5;
#X obj 178 339 unpack 0 0;
#X obj 17 325 print controller;
#X obj 706 359 ctlout 1;
#X text 172 30 route note-on events by channel:;
#X text 235 162 route note off events by channel:;
#X text 225 265 route controller events by channel:;
#X text 699 249 send events to MIDI devices:;
#X connect 0 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 0 8 0;
#X connect 3 1 9 0;
#X connect 3 2 10 0;
#X connect 3 3 11 0;
#X connect 3 16 5 0;
#X connect 4 0 1 0;
#X connect 4 1 2 0;
#X connect 5 0 7 0;
#X connect 5 0 8 0;
#X connect 5 1 9 0;
#X connect 5 2 10 0;
#X connect 5 3 11 0;
#X connect 5 16 12 0;
#X connect 12 0 15 0;
#X connect 12 0 16 0;
#X connect 12 0 17 0;
#X connect 15 0 13 0;
#X connect 15 1 14 0;
#X restore 275 595 pd route_events;
#N canvas 114 197 1088 523 route_info 0;
#X obj 34 13 inlet;
#X floatatom 34 73 3 0 0 1 format - -, f 3;
#X floatatom 142 73 5 0 0 1 tracks - -, f 5;
#X floatatom 252 73 5 0 0 1 ticks_per_quarternote - -, f 5;
#X floatatom 360 140 5 0 0 1 tracks - -, f 5;
#X symbolatom 546 190 40 0 0 0 - - -, f 40;
#X obj 538 224 unpack 0 0;
#X floatatom 615 278 15 0 0 0 last_tick - -, f 15;
#X floatatom 538 250 5 0 0 1 track - -, f 5;
#X floatatom 449 190 5 0 0 1 track - -, f 5;
#X obj 449 164 unpack 0 s;
#X obj 627 316 unpack 0 0 0 0;
#X floatatom 627 352 3 0 0 1 / - -, f 3;
#X floatatom 663 353 3 0 0 1 - - -, f 3;
#X floatatom 699 353 5 0 0 1 clocks_per_click - -, f 5;
#X floatatom 736 379 5 0 0 1 32nds_per_quarternote - -, f 5;
#X floatatom 716 136 15 0 0 0 microsec_per_quarternote - -, f 15;
#X obj 229 354 /;
#X floatatom 442 374 15 0 0 0 microsec_per_tick - -, f 15;
#X obj 229 395 / 1000;
#X floatatom 229 426 15 0 0 0 millisec_per_tick - -, f 15;
#X obj 906 190 print other_meta;
#X obj 360 103 route seq_num name end time_sig microsec_per_quarternote
;
#X obj 805 161 route key_sig;
#X obj 805 218 unpack 0 0 s;
#X symbolatom 898 323 10 0 0 0 key - -, f 10;
#X floatatom 805 247 5 0 0 1 +sharps/-flats - -, f 5;
#X obj 851 276 tgl 15 0 empty empty minor 17 7 0 10 -262144 -1 -1 0
1;
#X obj 546 164 list prepend;
#X obj 898 297 list prepend;
#X obj 34 43 route format tracks ticks_per_quarternote;
#X obj 228 477 s msec_per_tick;
#X obj 405 211 print name:;
#X text 503 352 time signature:;
#X connect 0 0 30 0;
#X connect 6 0 8 0;
#X connect 6 1 7 0;
#X connect 10 0 9 0;
#X connect 10 1 28 0;
#X connect 11 0 12 0;
#X connect 11 1 13 0;
#X connect 11 2 14 0;
#X connect 11 3 15 0;
#X connect 17 0 18 0;
#X connect 17 0 19 0;
#X connect 19 0 20 0;
#X connect 19 0 31 0;
#X connect 22 0 4 0;
#X connect 22 1 10 0;
#X connect 22 1 32 0;
#X connect 22 2 6 0;
#X connect 22 3 11 0;
#X connect 22 4 16 0;
#X connect 22 4 17 0;
#X connect 22 5 23 0;
#X connect 23 0 24 0;
#X connect 23 1 21 0;
#X connect 24 0 26 0;
#X connect 24 1 27 0;
#X connect 24 2 29 0;
#X connect 28 0 5 0;
#X connect 29 0 25 0;
#X connect 30 0 1 0;
#X connect 30 1 2 0;
#X connect 30 2 3 0;
#X connect 30 2 17 1;
#X connect 30 3 22 0;
#X restore 671 590 pd route_info;
#X obj 594 553 route bang;
#X text 62 432 goto tick 68050:;
#X obj 226 138 r msec_per_tick;
#X floatatom 226 177 9 0 0 0 - - -, f 9;
#X text 424 532 metadata are output on third outlet;
#X text -129 595 MIDI messages are output on first outlet as lists:
;
#X text 430 553 bang at end of file:;
#X text 226 99 milliseconds per tick is calculated from metadata at
start of file. Step one tick to get the initial value.;
#X connect 0 0 26 0;
#X connect 1 0 22 0;
#X connect 2 0 1 0;
#X connect 3 0 12 0;
#X connect 4 0 26 0;
#X connect 7 0 8 0;
#X connect 8 0 26 0;
#X connect 9 0 26 0;
#X connect 10 0 26 0;
#X connect 11 0 25 0;
#X connect 12 0 26 0;
#X connect 16 0 26 0;
#X connect 20 0 37 0;
#X connect 21 0 20 1;
#X connect 22 0 26 0;
#X connect 23 0 16 0;
#X connect 24 0 23 0;
#X connect 25 0 10 0;
#X connect 25 0 32 0;
#X connect 26 0 39 0;
#X connect 26 1 6 0;
#X connect 26 1 36 1;
#X connect 26 2 41 0;
#X connect 28 0 27 0;
#X connect 29 0 26 0;
#X connect 30 0 28 0;
#X connect 31 0 20 0;
#X connect 31 1 36 0;
#X connect 31 1 33 0;
#X connect 34 0 37 1;
#X connect 36 0 15 0;
#X connect 37 0 26 0;
#X connect 41 0 31 0;
#X connect 41 1 40 0;
#X connect 43 0 44 0;
#X connect 44 0 12 1;
#X restore 76 83 pd midifile_read;
#X text 15 10 midifile reads and writes MIDI files.;
#N canvas 403 187 587 265 META 0;
#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
Wilkes for Pd version 0.42.;
#X text 12 25 LICENSE GPL v2 or later;
#X text 12 165 AUTHOR Martin Peach;
#X text 12 5 KEYWORDS control MIDI;
#X text 12 45 DESCRIPTION read and write MIDI files;
#X text 12 65 INLET_0 bang float list rewind read track dump verbose
write flush;
#X text 12 105 OUTLET_0 list;
#X text 12 125 OUTLET_1 float;
#X text 12 145 OUTLET_2 bang;
#X restore 335 202 pd META;
#X text 152 170 2017/03/20 Martin Peach;