max v2; #N vpatcher 308 211 977 591; #P comment 120 291 78 196617 inverse real fft; #P comment 122 211 43 196617 real fft; #P message 281 312 27 196617 stop; #P message 213 312 65 196617 startwindow; #P newex 322 338 29 196617 dac~; #P newex 322 286 30 196617 line~; #P message 322 263 72 196617 0 \, 2000 2000; #P newex 322 312 65 196617 play~ bufrfft; #P hidden newex 522 292 48 196617 r 1066path; #P user umenu 83 140 72 196647 1 64 156 1; #X add bass.aif; #X add beat.aif; #X add fly.aif; #X add plastic.aif; #X add your_own...; #N vpatcher 93 462 631 722; #P message 59 102 28 196617 read; #P newex 59 69 89 196617 route your_own...; #N comlet popup comment in; #P inlet 59 26 15 0; #P newex 59 149 48 196617 s 1066path; #P newex 138 102 79 196617 sprintf read %s; #P user umenu 48 169 100 196647 1 64 185 1; #X add drums.aif; #X add voice.aif; #X add test.aif; #X add read a soundfile; #P connect 3 0 4 0; #P connect 4 0 5 0; #P fasten 1 0 2 0 143 134 64 134; #P connect 5 0 2 0; #P connect 4 1 1 0; #P pop; #P hidden newobj 145 162 43 196617 p loader; #P message 442 292 63 196617 vasp bufrfft; #N vpatcher 40 55 218 175; #P newex 45 79 61 196617 vasp.update; #P newex 45 56 45 196617 vasp.= 0; #N comlet vasp to clear in; #P inlet 45 26 15 0; #P connect 0 0 1 0; #P connect 1 0 2 0; #P pop; #P newobj 442 312 73 196617 p clear_buffer; #P newex 65 312 61 196617 vasp.update; #P message 65 267 63 196617 vasp bufrfft; #P newex 65 288 52 196617 vasp.r!fft; #P newex 65 232 61 196617 vasp.update; #P comment 52 100 254 196617 the imaginary part of the fft is assumed to be zero; #N vpatcher 40 55 418 371; #P button 183 82 15 0; #P newex 129 145 60 196617 prepend set; #N comlet waveform~ mode messages; #P inlet 129 121 15 0; #P newex 259 64 27 196617 << 1; #P newex 206 121 40 196617 change; #P newex 206 145 107 196617 select 0 1 2; #P newex 206 98 27 196617 |; #P newex 47 121 40 196617 change; #P outlet 129 252 15 0; #P message 47 145 65 196617 constrain \$1; #P newex 129 195 45 196617 loadbang; #P newex 47 40 222 196617 pushkeys; #P message 270 169 58 196617 mode move; #P message 206 213 61 196617 mode select; #P message 238 191 52 196617 mode loop; #P connect 3 0 7 0; #P connect 7 0 5 0; #P connect 12 0 13 0; #P fasten 2 0 6 0 275 243 134 243; #P fasten 1 0 6 0 211 243 134 243; #P fasten 0 0 6 0 243 243 134 243; #P fasten 5 0 6 0 52 243 134 243; #P connect 11 0 14 0; #P connect 14 0 8 0; #P connect 3 3 8 0; #P connect 8 0 10 0; #P connect 10 0 9 0; #P connect 13 0 1 0; #P connect 9 0 1 0; #P connect 4 0 1 0; #P connect 11 0 8 1; #P connect 9 1 0 0; #P connect 3 4 11 0; #P connect 9 2 2 0; #P pop; #P hidden newobj 321 52 49 196617 p wfkeys; #P hidden message 321 98 55 196617 set bufrfft; #P hidden newex 321 74 45 196617 loadbang; #P user waveform~ 321 118 312 99 3 9; #W mode select; #W mouseoutput continuous; #W unit ms; #W grid 1000.; #W ticks 8.; #W labels 1; #W vlabels 1; #W vticks 1; #W vzoom 1.; #W voffset 0.; #W bpm 120. 4.; #W frgb 0 0 0; #W brgb 255 255 255; #W rgb2 132 132 132; #W rgb3 0 0 0; #W rgb4 0 0 0; #W rgb5 255 255 255; #W rgb6 100 100 100; #W rgb7 100 100 100; #P message 65 187 63 196617 vasp bufrfft; #P newex 522 312 103 196617 buffer~ bufrfft 2000; #P newex 65 208 49 196617 vasp.rfft; #P comment 52 70 96 196617 inverse real fft; #P comment 52 48 89 196622 vasp.r!fft; #P comment 598 103 44 196617 source; #P comment 52 85 254 196617 opposite to cfft there is only one real input buffer; #P comment 52 142 31 196617 read; #P connect 7 0 5 0; #P connect 5 0 13 0; #P connect 15 0 14 0; #P connect 14 0 16 0; #P hidden connect 20 1 19 0; #P hidden fasten 6 1 10 0 620 333 638 333 638 94 326 94; #P hidden connect 9 0 10 0; #P hidden connect 11 0 8 0; #P hidden connect 10 0 8 0; #P connect 23 0 24 0; #P connect 24 0 22 0; #P connect 22 0 25 0; #P fasten 26 0 25 0 218 331 327 331; #P fasten 27 0 25 0 286 331 327 331; #P connect 22 0 25 1; #P connect 18 0 17 0; #P hidden connect 21 0 6 0; #P pop;