#N canvas 146 123 614 371 10; #X obj 36 308 noteout 1; #X obj 14 120 i; #X floatatom 269 197 5 0 0 0 - - -; #X obj 14 268 poly 1 1; #X obj 14 143 change; #X obj 14 244 bondo; #X obj 14 69 / 127; #X obj 274 91 ctlout 1 1; #X obj 123 58 hsl 128 15 1 5 0 1 empty empty octave_span -2 -6 0 10 -262144 -1 -1 3175 1; #X floatatom 120 77 5 0 0 0 - - -; #X obj 89 124 vradio 15 1 0 2 empty empty scale_select 0 -6 0 10 -262144 -1 -1 0; #X text 106 130 MAJOR; #X text 106 138 MINOR; #N canvas 561 109 330 334 DeltaScale 0; #X obj 43 83 % 12; #X obj 28 178 +; #X obj 43 128 tabread major_delta; #X obj 16 152 buddy; #X obj 43 55 clip 0 127; #X obj 43 27 inlet; #X obj 28 206 outlet; #X obj 187 15 inlet; #X obj 187 41 route 0 1; #X msg 187 74 set major_delta; #X msg 212 96 set minor_delta; #X floatatom 50 108 5 0 0 0 - - -; #X floatatom 57 153 5 0 0 0 - - -; #X text 3 -3 constrain input notes to scales; #N canvas 0 0 450 300 (subpatch) 0; #X array major_delta 12 float 3; #A 0 0 1 0 1 0 0 1 0 1 0 1 0; #X coords 0 1 12 -1 20 14 1; #X restore 242 246 graph; #X msg 10 236 \; major_delta 0 0 1 0 1 0 0 1 0 1 0 1 0; #N canvas 0 0 450 300 (subpatch) 0; #X array minor_delta 12 float 3; #A 0 0 1 0 0 1 0 1 0 0 1 0 1; #X coords 0 1 12 -1 20 14 1; #X restore 240 288 graph; #X msg 10 277 \; minor_delta 0 0 1 0 0 1 0 1 0 0 1 0 1; #X connect 0 0 2 0; #X connect 0 0 11 0; #X connect 1 0 6 0; #X connect 2 0 3 1; #X connect 2 0 12 0; #X connect 3 0 1 0; #X connect 3 1 1 1; #X connect 4 0 0 0; #X connect 4 0 3 0; #X connect 5 0 4 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 8 1 10 0; #X connect 9 0 2 0; #X connect 10 0 2 0; #X restore 14 168 pd DeltaScale; #X obj 125 182 hsl 128 15 24 104 0 1 empty empty root_note -2 -6 0 10 -262144 -1 -1 3810 1; #X floatatom 122 200 5 0 0 0 - - -; #X obj 14 216 +; #X obj 14 94 * 8; #X text 36 98 octaves; #X obj 14 192 change; #X obj 102 285 pack f f; #X obj 102 333 print; #N canvas 21 61 486 326 new_pass_once 0; #X obj 131 51 route 0; #X obj 170 104 spigot; #X obj 131 169 outlet; #X obj 131 13 inlet; #X msg 131 79 0; #X obj 203 52 counter; #X obj 203 77 == 1; #X text 259 1 pass first number; #X text 259 14 block changes after first number; #X text 258 26 output zero when it's received; #X obj 170 126 clip 40 127; #X text 254 127 post processing; #X text 247 87 pass first number; #X text 12 79 always output zero; #X connect 0 0 4 0; #X connect 0 1 1 0; #X connect 1 0 10 0; #X connect 3 0 0 0; #X connect 3 0 5 0; #X connect 4 0 2 0; #X connect 4 0 5 3; #X connect 5 0 6 0; #X connect 6 0 1 1; #X connect 10 0 2 0; #X restore 269 227 pd new_pass_once; #X obj 87 77 * 12; #X text 272 2 map y-axis to modwheel; #X text 12 5 map x-axis to notes; #X obj 445 119 grid grid1 128 0 127 128 0 127 0 1 1 10 10 427 268; #X obj 14 23 r x_position; #X obj 445 252 change; #X obj 445 308 s x_position; #X obj 269 174 ctlin 21; #X obj 445 3 ctlin 19; #X msg 445 66 values \$1 \$2; #X obj 501 3 ctlin 20; #X floatatom 14 46 5 0 0 0 - - -; #X floatatom 269 257 5 0 0 0 - - -; #X obj 445 276 makenote 80 125; #X obj 445 25 bondo; #X obj 445 46 pack 0 0; #X text 268 157 map pressure to velocity; #X msg 102 310 note \$1:velocity \$2; #X obj 274 20 ctlin 20; #X text 448 87 test here by using mouse; #X text 463 101 (drag red blob); #X obj 358 33 vradio 15 1 0 2 empty empty modwheel_mode 0 -6 0 10 -262144 -1 -1 1; #X text 440 350 2009 - Phill Phelps (zenpho); #X text 375 32 DIRECT; #X text 375 46 SMOOTH; #N canvas 0 11 711 461 processing 0; #X obj 16 8 inlet; #X obj 157 399 outlet; #X obj 264 193 float; #X text 400 268 St = a*Yt1+(1-a)*St1; #X obj 189 117 trigger float bang; #X text 241 194 Yt1; #X obj 337 193 float; #X text 370 192 St1; #X obj 264 247 expr 0.15*$f1+(1-0.15)*$f2; #X obj 285 21 inlet; #X obj 156 83 gate 2; #X text 198 82 switch between direct and smoothed; #X obj 285 42 + 1; #X text 263 289 http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc431.htm ; #X connect 0 0 10 1; #X connect 2 0 8 0; #X connect 4 0 2 1; #X connect 4 1 2 0; #X connect 4 1 6 0; #X connect 6 0 8 1; #X connect 8 0 6 1; #X connect 8 0 1 0; #X connect 9 0 12 0; #X connect 10 0 1 0; #X connect 10 1 4 0; #X connect 12 0 10 0; #X restore 274 47 pd processing; #X floatatom 274 69 5 0 0 0 - - -; #X text 440 337 version 3; #X connect 1 0 4 0; #X connect 2 0 22 0; #X connect 3 1 20 0; #X connect 3 1 0 0; #X connect 3 2 20 1; #X connect 3 2 0 1; #X connect 4 0 13 0; #X connect 5 0 3 0; #X connect 5 1 3 1; #X connect 6 0 17 0; #X connect 8 0 9 0; #X connect 9 0 23 0; #X connect 10 0 13 1; #X connect 13 0 19 0; #X connect 14 0 15 0; #X connect 15 0 16 1; #X connect 16 0 5 0; #X connect 17 0 1 0; #X connect 19 0 16 0; #X connect 20 0 40 0; #X connect 22 0 5 1; #X connect 22 0 35 0; #X connect 23 0 17 1; #X connect 26 0 28 0; #X connect 26 0 29 0; #X connect 26 1 28 0; #X connect 27 0 34 0; #X connect 28 0 36 0; #X connect 30 0 2 0; #X connect 31 0 37 0; #X connect 32 0 26 0; #X connect 33 0 37 1; #X connect 34 0 6 0; #X connect 36 1 22 0; #X connect 37 0 38 0; #X connect 37 1 38 1; #X connect 38 0 32 0; #X connect 40 0 21 0; #X connect 41 0 48 0; #X connect 44 0 48 1; #X connect 48 0 49 0; #X connect 49 0 7 0;