diff options
Diffstat (limited to 'reanimator~-help.pd')
-rw-r--r-- | reanimator~-help.pd | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/reanimator~-help.pd b/reanimator~-help.pd new file mode 100644 index 0000000..3e67bf0 --- /dev/null +++ b/reanimator~-help.pd @@ -0,0 +1,163 @@ +#N canvas 17 365 720 517 10; +#N canvas 132 212 480 321 reanimator-block 0; +#X obj 15 170 block~ 256; +#X obj 19 30 inlet~; +#X obj 154 33 inlet~; +#X obj 217 34 inlet; +#X obj 19 105 outlet~; +#X obj 86 105 outlet~; +#X obj 154 106 outlet~; +#X text 17 128 args: size of texture analysis(ms.) \, overlap factor +\, window factor; +#X obj 19 78 reanimator~ 5000 4 1; +#X connect 1 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 8 0; +#X connect 8 0 4 0; +#X connect 8 1 5 0; +#X connect 8 2 6 0; +#X restore 96 87 pd reanimator-block; +#N canvas 536 186 752 534 driver-sound 0; +#X text 13 300 try a vocal sound or other sound with strong formant +structure; +#X obj 31 194 soundfiler; +#X obj 31 160 openpanel; +#N canvas 0 22 450 300 graph1 0; +#X array reanimator-sound1 4e+06 float 2; +#X coords 0 1 4e+06 -1 200 140 1; +#X restore 237 13 graph; +#X msg 31 131 bang; +#X obj 227 284 outlet~; +#X msg 227 244 bang; +#X obj 348 228 spigot; +#X obj 385 205 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 133 244 then play it; +#X text 304 190 loop if you like; +#X msg 31 177 read -resize \$1 reanimator-sound1; +#X obj 227 268 tabplay~ reanimator-sound1; +#X text 63 132 open the driver sound; +#X connect 2 0 11 0; +#X connect 4 0 2 0; +#X connect 6 0 12 0; +#X connect 7 0 6 0; +#X connect 8 0 7 1; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 12 1 7 0; +#X restore 96 30 pd driver-sound; +#N canvas 349 43 518 368 texture-sound 0; +#X text 13 300 try a vocal sound or other sound with strong formant +structure; +#X obj 31 194 soundfiler; +#X obj 31 160 openpanel; +#N canvas 0 22 450 300 graph1 0; +#X array reanimator-sound2 1.25363e+06 float 2; +#X coords 0 1 1.25363e+06 -1 200 140 1; +#X restore 237 13 graph; +#X msg 31 131 bang; +#X obj 227 284 outlet~; +#X msg 227 244 bang; +#X obj 348 228 spigot; +#X obj 385 205 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 133 244 then play it; +#X text 304 190 loop if you like; +#X msg 31 177 read -resize \$1 reanimator-sound2; +#X obj 227 268 tabplay~ reanimator-sound2; +#X text 63 132 open the texture sound; +#X connect 2 0 11 0; +#X connect 4 0 2 0; +#X connect 6 0 12 0; +#X connect 7 0 6 0; +#X connect 8 0 7 1; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 12 1 7 0; +#X restore 160 49 pd texture-sound; +#X msg 499 356 \; pd dsp \$1; +#X obj 499 337 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X obj 96 269 dac~; +#X obj 160 150 snapshot~; +#X floatatom 160 172 5 0 0 0 - - -; +#X obj 324 167 snapshot~; +#X floatatom 324 189 5 0 0 0 - - -; +#X obj 324 134 metro 50; +#X obj 324 113 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X text 324 201 analysis sync; +#X text 158 184 matched frame; +#N canvas 913 441 569 496 messages 0; +#X obj 128 229 outlet; +#X msg 24 181 analyze; +#X msg 128 117 topbin \$1; +#X floatatom 128 81 5 0 0 0 - - -; +#X msg 206 117 inverse \$1; +#X obj 206 84 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X text 189 163 texture sound must be playing during analysis; +#X text 194 183 otherwise: crash!!!; +#X text 223 84 matches with *least* good frame; +#X text 128 39 top bin to match: lower means less CPU; +#X text 128 54 different (perhaps worse) matching; +#X obj 36 39 loadbang; +#X msg 36 65 20; +#X obj 231 213 fftease-system; +#N canvas 0 22 454 304 more-info 0; +#X text 18 60 How does this work? First load up a texture sound and +play it into the right inlet of reanimator~. While the texture sound +is playing \, send an "analyze" message and the texture sound will +be captured (5 seconds worth in this example patch). Once you see the +message "data acquisition completed" in the Pd window \, play any sound +into the left inlet and reanimator~ will output the best match from +the texture sound. If the input and output are the same sound \, the +match should be identical. Otherwise the result is "texture mapping" +the texture sound onto the driver sound. The key to effective use of +reanimator~ is in smart selections of driver and texture sounds.; +#X restore 382 225 pd more-info; +#X text 5 163 get texture sample; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X connect 5 0 4 0; +#X connect 11 0 12 0; +#X connect 12 0 3 0; +#X connect 13 0 0 0; +#X restore 255 71 pd messages; +#X text 51 287 reanimator performs spectral reanimation \, AKA audio +texture mapping. An online paper descripts this process in greater +detail. Essentially reanimator~ captures input from its rightmost inlet +and uses this as material to reconstitute sound coming in on the left. +Since this is done by searching all stored spectra \, there are limits +to how much sound may be recorded before overloading your computer's +CPU. Start with a small amount of sound \, say 5 seconds \, and gradually +increase until you find your practical limit. Once the texture sound +has been recorded \, it may be driven by unlimited amounts of material +in the leftmost inlet. Your driver should have a clear rhythmic profile. +A drum loop would be a good place to start.; +#X text 80 470 http://tinyurl.com/9324v; +#X text 57 450 more info below or google "spectral reanimation"; +#X text 261 31 <- load sounds into both buffers; +#X obj 122 202 hsl 128 15 0 4 0 0 empty empty empty -2 -6 0 8 -176298 +-1 -1 11100 1; +#X floatatom 119 225 5 0 0 0 - - -; +#X obj 96 246 *~ 1; +#X text 165 223 gain; +#X connect 0 0 21 0; +#X connect 0 1 6 0; +#X connect 0 2 8 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 4 0 3 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 10 0 8 0; +#X connect 10 0 6 0; +#X connect 11 0 10 0; +#X connect 14 0 0 2; +#X connect 19 0 20 0; +#X connect 20 0 21 1; +#X connect 21 0 5 0; +#X connect 21 0 5 1; |