aboutsummaryrefslogtreecommitdiff
path: root/reanimator~-help.pd
diff options
context:
space:
mode:
Diffstat (limited to 'reanimator~-help.pd')
-rw-r--r--reanimator~-help.pd163
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;