max v2; #N vpatcher 10 59 992 619; #P window setfont Times 18.; #P comment 197 452 251 1310738 use this output signal to control the center frequency of your filter; #P window linecount 1; #P comment 129 298 370 1310738 (you probably won't hear the difference in 20ms!); #P comment 2 341 270 1310738 logarithmic interpolation over 20 ms; #P comment 839 417 67 1310738 samples; #P comment 831 336 31 1310738 ms; #P comment 777 209 31 1310738 ms; #P comment 281 341 355 1310738 linear interpolation over 20 ms (or 882 samples); #P comment 143 273 344 1310738 three ways to convert to a smooth MSP signal; #P window setfont "Fixedwidth Serif" 18.; #P newex 4 361 109 1441810 sig~ 300.; #P newex 435 361 109 1441810 sig~ 300.; #P newex 277 361 153 1441810 pack 300. 20.; #P number 826 393 86 18 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 4 392 164 1441810 slide~ 20. 20.; #P newex 716 365 120 1441810 mstosamps~; #P newex 435 391 219 1441810 rampsmooth~ 882 882; #P newex 277 391 120 1441810 line~ 300.; #P newex 661 308 65 1441810 t f f; #P flonum 716 336 114 18 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 661 280 131 1441810 minimum 50.; #P flonum 6 205 119 18 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P window setfont Times 18.; #P comment 307 154 236 1310738 logarithmic (pitch) interpolation; #P window setfont "Fixedwidth Serif" 18.; #P flonum 277 206 118 18 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 277 176 340 1441810 expr pow(10.\\\,($f1/127.))*300.; #P window setfont Times 18.; #P comment 6 153 270 1310738 simple linear frequency interpolation; #P window setfont "Fixedwidth Serif" 18.; #P newex 6 176 219 1441810 zmap 0 127 300 3000; #P flonum 661 208 114 18 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P window setfont Times 18.; #P window linecount 6; #P comment 726 98 230 1310738 if you're anal retentive like me \, you can measure the polling interval that your controller actually uses \, and use that as the time value for smoothing the control signal; #P window setfont "Fixedwidth Serif" 18.; #P window linecount 1; #P newex 661 150 65 1441810 b; #P newex 661 180 65 1441810 timer; #P number 318 105 58 18 0 127 3 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 318 77 65 1441810 ctlin; #P window setfont Times 18.; #P window linecount 2; #P comment 303 33 253 1310738 of course you can also specify the controller you want to watch for; #P connect 10 0 23 0; #P connect 23 0 19 0; #P connect 2 0 7 0; #P connect 7 0 12 0; #P connect 2 0 9 0; #P connect 9 0 10 0; #P connect 10 0 21 0; #P connect 21 0 16 0; #P connect 1 0 2 0; #P connect 10 0 22 0; #P connect 22 0 17 0; #P connect 2 0 4 0; #P connect 4 0 3 0; #P connect 3 0 6 0; #P connect 6 0 13 0; #P connect 13 0 15 0; #P connect 4 1 3 1; #P connect 15 1 14 0; #P connect 14 0 18 0; #P fasten 15 0 13 1 666 336 656 336 656 272 787 272; #P connect 18 1 20 0; #P pop;