PUREDATA PATCH: MidiMutator 0.0.1
07.27.08
This patch takes a midi stream from a hardware sequencer, records the stream, and then adds randomization to a certain percentage of the incoming notes sending a new semi-randomized stream to a external hardware synthesizer.
This worked well for a while and I have used it in performances. I have not used it in a while and am not sure if it still works or even how it works anymore! It was sort of inspired by a option in Ableton live that randomized midi streams…. if I remember correctly. If anyone is interested in this patch and makes it better (which I’m sure would not be hard seeing that it probably would require some improvement to work correctly) – please send me back improvements, suggestions, ideas or even new patches that work better than mine!
__________________________
MidiMutator_0.0.1.zip
__________________________
________________________ midimutator_0.0.1.pd
#N canvas 1012 71 165 139 10;
#X declare -path abs;
#N canvas 492 124 494 418 midimutator-guts 1;
#N canvas 73 416 472 260 notes 0;
#X text 36 120 this will collect numbers for a list. must first only
acept a certain amount of number and no repetition.;
#X text 34 62 number comming in filtered for no rep.;
#X text 34 88 accetps a certain amount of nuber to pass on left and
then sends single bang left.;
#X text 35 38 also measue time between bangs try “timer”;
#X restore 312 23 pd notes;
#X obj 142 144 t b;
#X obj 142 300 makenote 99 200;
#X text 368 199 %rnd durration;
#N canvas 155 151 510 623 randomnotes 0;
#X text 230 50 clear all;
#X obj 160 351 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1
1;
#X obj 179 288 t b b b;
#X obj 160 317 loadbang;
#X text 347 426 list length;
#X msg 256 248 1;
#X msg 220 220 3;
#X msg 288 248 2;
#X obj 111 33 select 54;
#X obj 77 157 random 100;
#X obj 92 238 moses;
#X msg 241 84 1;
#X msg 269 92 2;
#X obj 241 334 t b b b b b;
#X obj 77 136 t b;
#X obj 149 197 clip 0 100;
#X obj 111 8 inlet;
#X obj 50 10 inlet;
#X obj 27 511 outlet;
#X obj 6 9 inlet;
#X obj 103 511 outlet;
#X obj 221 510 outlet;
#X obj 269 511 outlet;
#X obj 315 510 outlet;
#X obj 184 7 inlet;
#X obj 234 7 inlet;
#X obj 367 510 outlet;
#X obj 270 70 r reset;
#X obj 272 187 r reset;
#X obj 179 262 r reset;
#X obj 234 31 s reset;
#X obj 111 56 s reset;
#X obj 346 449 select 15;
#X obj 104 377 spig 1;
#X obj 103 407 collect;
#X obj 240 394 count-bang;
#X obj 77 115 2gate;
#X obj 103 475 list_unique;
#N canvas 117 534 245 199 listcollection 0;
#X obj 24 13 inlet;
#X obj 24 135 outlet;
#X msg 24 45;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 103 443 pd listcollection;
#X connect 1 0 26 0;
#X connect 1 0 33 1;
#X connect 2 1 13 0;
#X connect 2 2 34 1;
#X connect 3 0 1 0;
#X connect 5 0 22 0;
#X connect 6 0 21 0;
#X connect 7 0 23 0;
#X connect 8 0 31 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 10 1 5 0;
#X connect 11 0 36 0;
#X connect 12 0 36 0;
#X connect 13 0 11 0;
#X connect 13 1 5 0;
#X connect 13 2 38 0;
#X connect 13 3 35 1;
#X connect 13 4 1 0;
#X connect 14 0 9 0;
#X connect 15 0 10 1;
#X connect 16 0 8 0;
#X connect 17 0 36 1;
#X connect 19 0 33 0;
#X connect 24 0 15 0;
#X connect 25 0 30 0;
#X connect 27 0 12 0;
#X connect 28 0 6 0;
#X connect 29 0 2 0;
#X connect 32 0 13 0;
#X connect 33 0 18 0;
#X connect 33 0 34 0;
#X connect 33 0 35 0;
#X connect 34 0 38 0;
#X connect 35 0 32 0;
#X connect 36 0 14 0;
#X connect 37 0 20 0;
#X connect 38 0 37 0;
#X restore 158 110 pd randomnotes;
#X obj 217 70 r ctlknob1;
#X text 286 69 %rnd note;
#X floatatom 282 87 5 0 0 0 – - -;
#X obj 334 95 bng 15 250 50 0 empty reset empty 0 -6 0 10 -262144 -1
-1;
#X obj 329 127 tgl 15 0 collecting empty empty 0 -6 0 10 -262144 -1
-1 1 1;
#X text 265 111 Clear ALL!!!;
#X obj 357 260 r ctlknob2;
#X obj 299 277 * 3;
#X obj 357 215 r ctlknob3;
#X obj 142 275 +;
#X obj 167 194 bendin;
#X obj 167 237 – 12;
#X obj 167 258 int;
#X obj 167 216 / 660;
#X obj 192 258 r ctlknob8;
#X obj 290 253 t b;
#X obj 345 283 random 250;
#X obj 134 43 stripnote;
#X obj 134 22 notein 1;
#X obj 142 358 noteout 1;
#X obj 8 161 timer;
#X obj 8 134 t b;
#X obj 41 146 t b;
#X floatatom 8 193 5 0 0 0 – - -;
#X obj 249 358 declare -path abs;
#X obj 312 43 oxygen8;
#X obj 109 127 3gate;
#X obj 142 165 series;
#X obj 290 232 rndpercabs;
#X msg 35 26 65 56;
#X msg 75 26 56 64;
#X text 34 10 to test;
#X text 9 210 to do;
#X connect 1 0 32 0;
#X connect 2 0 24 0;
#X connect 2 0 27 0;
#X connect 2 1 24 1;
#X connect 4 0 14 0;
#X connect 4 1 32 1;
#X connect 4 2 31 0;
#X connect 4 3 31 0;
#X connect 4 4 31 0;
#X connect 4 5 9 0;
#X connect 5 0 4 3;
#X connect 5 0 7 0;
#X connect 8 0 4 4;
#X connect 11 0 12 0;
#X connect 12 0 2 2;
#X connect 13 0 33 1;
#X connect 14 0 2 0;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 14 1;
#X connect 18 0 16 0;
#X connect 19 0 14 0;
#X connect 20 0 2 2;
#X connect 21 0 2 2;
#X connect 22 0 4 1;
#X connect 22 0 4 2;
#X connect 22 0 26 0;
#X connect 22 0 31 1;
#X connect 22 0 33 0;
#X connect 23 0 22 0;
#X connect 23 1 22 1;
#X connect 25 0 28 0;
#X connect 26 0 25 0;
#X connect 27 0 25 1;
#X connect 31 0 14 0;
#X connect 31 1 1 0;
#X connect 31 2 4 0;
#X connect 32 0 14 0;
#X connect 33 0 20 0;
#X connect 33 1 21 0;
#X connect 34 0 22 0;
#X connect 35 0 22 0;
#X restore -6 39 pd midimutator-guts;
#N canvas 0 22 470 320 midimutator-gui 0;
#X obj 93 95 bng 15 250 50 0 reset empty empty 17 7 0 10 -262144 -1
-1;
#X obj 92 130 tgl 15 0 empty collecting empty 17 7 0 10 -262144 -1
-1 1 1;
#X text 91 171 Never got around to building this!!!;
#X restore -6 15 pd midimutator-gui;
#X msg -5 61 version 0.0.1;
#X text -4 82 mark edward grimm;
-