max v2; #N vpatcher 3 47 963 707; #P window setfont Times 10.; #P comment 448 532 246 1310730 Input (-1 to 1) reads fromthe corresponding location in this lookup table and sends out the resulting value as a signal.; #P comment 684 369 42 1310730 soundfile; #P comment 476 371 42 1310730 sinusoid; #P comment 815 401 48 1310730 amplitude; #P window setfont "Fixedwidth Serif" 10.; #P newex 754 440 39 1441802 line~; #P newex 737 463 27 1441802 *~; #P newex 754 419 73 1441802 pack 0. 100; #P flonum 754 400 61 10 0. 0.99 3 22 0 0 0 221 221 221 222 222 222 0 0 0; #P window setfont Times 10.; #P comment 480 396 48 1310730 amplitude; #P comment 450 505 303 1310730 Use a sinusoid or some more complex soundfile to scan the lookup table.; #P comment 312 479 54 1310730 1=sinusoid \, 2=soundifle; #P comment 43 252 32 1310730 OR...; #P comment 42 267 281 1310730 This makes an equal mix of the first four Chebyshev poluynomials.; #P comment 119 211 224 1310730 Put those numbers in specific locations in the buffer~; #P comment 249 91 333 1310730 Calculate a transfer function using one of the first four Chebyshev polynomials.; #P comment 60 49 206 1310730 Instantaneously send out numbers from 1 to 513.; #P comment 758 229 147 1310730 (At 44.1 KHz sampling rate \, you'll need a buffer~ of 11.633 ms.); #P window setfont "Fixedwidth Serif" 10.; #P number 366 483 24 10 1 2 3 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 366 502 83 1441802 selector~ 2 1; #P toggle 737 336 15 0; #P toggle 757 316 15 0; #P message 757 335 51 1441802 loop \$1; #P message 813 335 33 1441802 open; #N sfplay~ 1 120960 0 ; #P newobj 737 371 51 1441802 sfplay~; #P user ezdac~ 350 577 394 610 0; #P flonum 402 351 71 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 402 329 33 1441802 mtof; #P user kslider 402 291 35 1 36 60 19 7 0 128 128 128 128 128 128 255 255 255 0 0 0 0 0 0; #P message 402 272 20 1441802 69; #P newex 402 251 57 1441802 loadbang; #P newex 419 435 39 1441802 line~; #P newex 402 458 27 1441802 *~; #P newex 419 414 73 1441802 pack 0. 100; #P newex 402 370 43 1441802 cycle~; #P flonum 419 395 61 10 0. 0.99 3 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 97 327 123 1441802 expr ($f1-257)/256.; #P newex 97 348 183 1441802 expr 0.25*((8.*$f1*$f1*$f1*$f1)-(8.*$f1*$f1)+1.)+0.25*((4.*$f1*$f1*$f1)-(3.*$f1))+0.25*($f1*$f1*2.-1.)+0.25*$f1; #P button 26 267 15 0; #P newex 68 306 39 1441802 t i f; #P newex 68 405 69 1441802 peek~ xfer; #P newex 26 285 52 1441802 Uzi 513; #P newex 361 134 253 1441802 expr (8.*$f1*$f1*$f1*$f1)-(8.*$f1*$f1)+1.; #P newex 312 159 189 1441802 expr (4.*$f1*$f1*$f1)-(3.*$f1); #P number 214 90 35 10 1 4 3 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 214 113 157 1441802 gate 4 1; #P newex 263 184 113 1441802 expr $f1*$f1*2.-1.; #P button 8 28 15 0; #P newex 50 67 39 1441802 t i f; #P newex 50 209 69 1441802 peek~ xfer; #P newex 8 46 52 1441802 Uzi 513; #P newex 366 536 81 1441802 lookup~ xfer; #P message 808 132 51 1441802 size \$1; #P flonum 808 114 69 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; #P newex 808 93 69 1441802 !/ 513000.; #P newex 786 51 54 1441802 grab 2; #P newex 786 30 54 1441802 loadbang; #P newex 830 72 73 1441802 adstatus sr; #P newex 761 211 141 1441802 buffer~ xfer 11.632653; #P newex 79 88 123 1441802 expr ($f1-257)/256.; #P window setfont Times 10.; #P comment 686 29 100 1310730 This gets the current MSP sampling rate and divides it into 513000 to get the number of milliseconds equivalent 513 samples of sound. (By default \, the lookup~ object uses 512 samples in a buffer~ \, plus one for interpolation on the last sample.; #P connect 13 0 10 0; #P connect 22 0 19 0; #P connect 10 2 12 0; #P connect 12 0 11 0; #P connect 19 2 21 0; #P connect 21 0 20 0; #P connect 12 1 1 0; #P fasten 17 0 11 1 317 180 84 180; #P fasten 18 0 11 1 366 155 84 155; #P fasten 14 0 11 1 268 205 84 205; #P fasten 15 0 11 1 219 135 84 135; #P connect 21 1 24 0; #P connect 24 0 23 0; #P connect 23 0 20 1; #P connect 16 0 15 0; #P connect 15 1 14 0; #P connect 15 2 17 0; #P connect 9 0 35 0; #P fasten 1 0 15 1 84 109 366 109; #P connect 15 3 18 0; #P connect 42 0 41 0; #P connect 41 0 9 0; #P connect 9 0 35 1; #P connect 30 0 31 0; #P connect 31 0 32 0; #P connect 32 0 33 0; #P connect 33 0 34 0; #P connect 34 0 26 0; #P connect 26 0 28 0; #P connect 28 0 41 1; #P connect 25 0 27 0; #P connect 27 0 29 0; #P connect 29 0 28 1; #P fasten 54 0 41 2 742 491 443 491; #P connect 37 0 36 0; #P connect 38 0 36 0; #P connect 40 0 36 0; #P connect 36 0 54 0; #P connect 52 0 53 0; #P connect 53 0 55 0; #P connect 55 0 54 1; #P connect 39 0 38 0; #P fasten 8 0 2 0 813 207 766 207; #P connect 4 0 5 0; #P connect 5 1 6 0; #P connect 6 0 7 0; #P connect 7 0 8 0; #P connect 5 2 3 0; #P pop;