pure-data/doc/7.stuff/tools/miditester.pd

#N canvas 443 108 448 247 12;
#N canvas 443 178 534 409 channel 0;
#X obj 23 22 midiin;
#X obj 23 59 moses 128;
#X obj 83 85 moses 144;
#X obj 143 112 moses 160;
#X obj 203 139 moses 176;
#X obj 263 166 moses 192;
#X obj 323 192 moses 208;
#X obj 383 218 moses 224;
#X obj 443 246 moses 240;
#X obj 170 20 r #notein;
#X obj 275 20 r #polytouchin;
#X obj 416 19 r #ctlin;
#X obj 312 87 r #pgmin;
#X obj 417 86 r #touchin;
#X obj 418 147 r #bendin;
#X obj 170 51 print notein;
#X obj 275 51 print polytouchin;
#X obj 416 51 print ctlin;
#X obj 312 118 print pgmin;
#X obj 417 119 print touchin;
#X obj 418 178 print bendin;
#X msg 83 146 noteoff \$1;
#X msg 143 179 noteon \$1;
#X msg 203 212 polytouch \$1;
#X msg 383 295 touch \$1;
#X msg 443 321 bend \$1;
#X obj 203 363 print midiin;
#X msg 263 240 ctl \$1;
#X msg 323 265 pgm \$1;
#X connect 0 0 1 0;
#X connect 1 1 2 0;
#X connect 2 0 21 0;
#X connect 2 1 3 0;
#X connect 3 0 22 0;
#X connect 3 1 4 0;
#X connect 4 0 23 0;
#X connect 4 1 5 0;
#X connect 5 0 27 0;
#X connect 5 1 6 0;
#X connect 6 0 28 0;
#X connect 6 1 7 0;
#X connect 7 0 24 0;
#X connect 7 1 8 0;
#X connect 8 0 25 0;
#X connect 9 0 15 0;
#X connect 10 0 16 0;
#X connect 11 0 17 0;
#X connect 12 0 18 0;
#X connect 13 0 19 0;
#X connect 14 0 20 0;
#X connect 21 0 26 0;
#X connect 22 0 26 0;
#X connect 23 0 26 0;
#X connect 24 0 26 0;
#X connect 25 0 26 0;
#X connect 27 0 26 0;
#X connect 28 0 26 0;
#X restore 27 92 pd channel messages;
#N canvas 407 238 552 257 system 0;
#X obj 54 28 sysexin;
#X obj 249 29 midiin;
#X obj 249 60 route 241 242 243 246;
#X obj 54 58 route 240 247;
#X msg 98 114 end 247;
#X msg 54 88 start 240;
#X msg 249 89 timecode 241;
#X msg 285 113 songpos 242;
#X msg 321 140 song 243;
#X msg 357 165 tunerequest 246;
#X obj 54 147 print sysexin;
#X obj 285 197 print midiin;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 2 1 7 0;
#X connect 2 2 8 0;
#X connect 2 3 9 0;
#X connect 3 0 5 0;
#X connect 3 1 4 0;
#X connect 3 2 10 0;
#X connect 4 0 10 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 7 0 11 0;
#X connect 8 0 11 0;
#X connect 9 0 11 0;
#X restore 27 120 pd system messages;
#N canvas 297 53 508 411 realtime 0;
#X obj 51 51 midirealtimein;
#X obj 51 92 route 248 250 251 252 254 255;
#X msg 51 123 clock 248;
#X msg 84 151 start 250;
#X msg 117 184 continue 251;
#X msg 151 213 stop 252;
#X msg 184 243 activesense 254;
#X msg 217 270 systemreset 255;
#X text 92 13 249 & 253 are reserved messages 3 & 4 which are currently not used by the midi spec;
#X obj 117 350 print midirealtimein;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 4 0;
#X connect 1 3 5 0;
#X connect 1 4 6 0;
#X connect 1 5 7 0;
#X connect 2 0 9 0;
#X connect 3 0 9 0;
#X connect 4 0 9 0;
#X connect 5 0 9 0;
#X connect 6 0 9 0;
#X connect 7 0 9 0;
#X restore 27 150 pd realtime messages;
#N canvas 300 104 300 282 bytes 0;
#X obj 58 56 midiin;
#X obj 132 183 moses 128;
#X obj 58 85 sel 240 247;
#X msg 58 115 0;
#X msg 95 116 1;
#X text 41 28 data bytes \, filter sysex bytes;
#X obj 132 209 print midiin;
#X obj 132 157 spigot 1;
#X connect 0 0 2 0;
#X connect 1 0 6 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 2 2 7 0;
#X connect 3 0 7 1;
#X connect 4 0 7 1;
#X connect 7 0 1 0;
#X restore 28 184 pd bytes;
#N canvas 503 191 587 420 send 0;
#X obj 69 46 inlet;
#X obj 69 354 outlet;
#X obj 196 306 polytouchout;
#X obj 101 211 t a a;
#X obj 133 272 noteout;
#X obj 260 272 ctlout;
#X obj 324 272 pgmout;
#X obj 387 272 touchout;
#X obj 451 272 bendout;
#X obj 69 91 t b b;
#X text 126 79 pd pitchbend range is -8192 to 8192;
#X text 126 97 so -8119 will show up as two bytes: 73 0 or 0x49 0x00;
#X obj 101 308 print -n;
#X obj 133 235 route noteon: polytouch: control: program: touch: bend:;
#X msg 101 140 noteout: 64 65 1 \, noteout: 66 0 1 \, polytouchout: 67 68 1 \, ctlout: 69 70 1 \, pgmout: 71 1 \, touchout: 72 1 \, bendout: -8119 1 \, noteout: 64 0 1;
#X connect 0 0 9 0;
#X connect 3 0 12 0;
#X connect 3 1 13 0;
#X connect 9 0 1 0;
#X connect 9 1 14 0;
#X connect 13 0 4 0;
#X connect 13 1 2 0;
#X connect 13 2 5 0;
#X connect 13 3 6 0;
#X connect 13 4 7 0;
#X connect 13 5 8 0;
#X connect 14 0 3 0;
#X restore 234 91 pd send channel messages;
#N canvas 340 166 536 354 send 0;
#X obj 40 30 inlet;
#X obj 40 298 outlet;
#X obj 40 56 t b b;
#X text 158 56 sysex start: 240;
#X text 173 78 sysex end: 247;
#X obj 72 83 delay 20;
#X msg 72 116 sysex 240 1 2 3 4 5 247 \, timecode 241 10 \, songpos 242 20 30 \, song 243 40 \, tunerequest 246;
#X obj 144 227 midiout;
#X obj 104 196 list split 1;
#X text 125 175 send;
#X obj 72 262 print midiout;
#X obj 72 166 t a a;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 2 1 5 0;
#X connect 5 0 6 0;
#X connect 6 0 11 0;
#X connect 8 1 7 0;
#X connect 11 0 10 0;
#X connect 11 1 8 0;
#X restore 234 122 pd send system messages;
#N canvas 725 341 513 324 send 0;
#X obj 41 31 inlet;
#X obj 113 218 midiout;
#X obj 41 82 delay 40;
#X msg 41 117 clock 248 \, start 250 \, continue 251 \, stop 252 \, activesense 254 \, systemreset 255;
#X obj 41 250 print midiout;
#X obj 41 158 t a a;
#X obj 73 189 list split 1;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 5 0 4 0;
#X connect 5 1 6 0;
#X connect 6 1 1 0;
#X restore 234 153 pd send realtime messages;
#X obj 234 62 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X text 293 63 send;
#X text 64 64 receive;
#X text 33 17 Test patch which sends & receives all MIDI messages.;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 4 0;