diff options
Diffstat (limited to 'doc/pddp/bonk~-help.pd')
-rw-r--r-- | doc/pddp/bonk~-help.pd | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/doc/pddp/bonk~-help.pd b/doc/pddp/bonk~-help.pd new file mode 100644 index 00000000..5f30c600 --- /dev/null +++ b/doc/pddp/bonk~-help.pd @@ -0,0 +1,289 @@ +#N canvas 0 0 555 619 10; +#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0 +14 -228856 -66577 0; +#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header bonk~ 3 12 0 18 +-204280 -1 0; +#X obj 0 235 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13 +-228856 -1 0; +#N canvas 208 227 494 344 META 0; +#X text 12 105 PLATFORM windows macosx gnulinux; +#X text 12 185 LIBRARY internal; +#X text 12 225 WEBSITE http://crca.ucsd.edu/~msp/; +#X text 12 65 LICENSE SIBSD; +#X text 12 205 AUTHOR Miller Puckette; +#X text 12 285 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch +to conform to the PDDP template for Pd version 0.42.; +#X text 12 5 GENRE help; +#X text 12 45 KEYWORDS signal analysis; +#X text 12 85 DESCRIPTION an attack detector for small percussion instruments +; +#X text 12 25 NAME bonk~; +#X text 12 125 INLET_0 signal thresh minvel mask bang debug print debounce +learn forget write read; +#X text 12 145 OUTLET_0 list; +#X text 12 165 OUTLET_1 list; +#X text 12 245 RELEASE_DATE 2009; +#X text 12 265 RELEASE_VERSION; +#X restore 500 597 pd META; +#X obj 0 300 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0 +13 -228856 -1 0; +#X obj 0 460 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12 +0 13 -228856 -1 0; +#X obj 0 559 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12 +0 13 -228856 -1 0; +#X obj 78 244 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#N canvas 45 491 428 101 Related_objects 0; +#X obj 21 42 env~; +#X obj 59 42 threshold~; +#X obj 135 42 fiddle~; +#X obj 191 42 sigmund~; +#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 7 1 [bonk~] Related Objects; +#X restore 100 597 pd Related_objects; +#X obj 78 308 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856 +-162280 0; +#X obj 483 3 bonk~; +#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/bonk~ -text +pdpedia: bonk~; +#X obj 234 135 spigot; +#X obj 151 79 bonk~; +#X obj 151 135 spigot; +#X obj 200 136 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 283 136 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 234 165 print cooked; +#X obj 151 165 print raw; +#X text 47 133 enable printout:; +#X obj 234 109 s bonk-cooked; +#N canvas 36 80 458 532 Messenges_to_bonk~ 0; +#X msg 11 222 bang; +#X msg 11 355 learn 1; +#X msg 11 401 learn 0; +#X msg 11 276 print; +#X msg 11 378 learn 10; +#X msg 11 30 thresh 6 50; +#X msg 11 180 mask 4 0.7; +#X msg 11 121 minvel 10; +#X msg 11 252 debug 0; +#X obj 11 509 outlet; +#X obj -1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 +0 14 -204280 -1 0; +#X text 6 1 Sending Messages to [bonk~]; +#X msg 11 424 forget; +#X msg 11 457 write templates.txt; +#X msg 11 484 read templates.txt; +#X msg 11 330 debounce 0; +#X obj 0 300 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 +0 14 -204280 -1 0; +#X text 6 300 Messages for Managing Templates; +#X text 94 179 - describes how energy in each frequency band masks +later energy in the band. Here the masking is total for 4 analysis +periods and then drops by 0.7 each period.; +#X text 72 221 - poll the current spectrum via "raw" outlet \, You +can set a very high threshold if you don't want attacks mixed in.; +#X text 72 252 - turn debugging on or off.; +#X text 72 276 - print out all settings and templates.; +#X text 92 330 - minimum time (msec) between attacks in learn mode +; +#X text 92 355 - forget all templates and start learning new ones. +The argument gives the number of times you will hit each instrument +(10 recommended.) Turn on the output volume above for audible feedback +as you train Bonk. "Learn 0" exits learn mode.; +#X text 92 423 - forget the last template. In Learn mode \, use "forget" +to erase and record over a template.; +#X text 136 457 - write templates to a file in text-editable format. +; +#X text 136 484 - read templates from a file.; +#N canvas 49 297 428 101 minvel_units 0; +#X obj 0 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 6 1 [bonk~] What units are used for "minvel"?; +#X text 17 36 "minvel" is in the units of the velocity output \, which +is the sum of the square roots of the amplitudes of the bands \, normalized +so that 100 is an attack of amplitude about one.; +#X restore 97 154 pd minvel_units; +#N canvas 56 241 428 102 thresh_units 0; +#X obj 0 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 6 1 [bonk~] What units are used for "thresh"?; +#X text 17 36 "thresh" is in "growth" units \, which is the sum of +the proportional growth in the 11 filter bands. Proportional growth +is essentially the logarithmic time derivative.; +#X restore 97 96 pd thresh_units; +#X text 94 29 - set low and high thresholds. Signal growth must exceed +the high one and then fall to the low one to make an attack. The unit +is the sum of the proportional growth in the 11 filter bands. Proportional +growth is essentially the logarithmic time derivative. (See subpatch +below for units.); +#X text 95 121 - minimum "velocity" to output (quieter notes are ignored). +(See subpatch below for units.); +#X connect 0 0 9 0; +#X connect 1 0 9 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 4 0 9 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; +#X connect 8 0 9 0; +#X connect 12 0 9 0; +#X connect 13 0 9 0; +#X connect 14 0 9 0; +#X connect 15 0 9 0; +#X restore 151 52 pd Messenges_to_bonk~; +#N canvas 122 160 428 404 synth 0; +#X obj 92 44 r bonk-cooked; +#X obj 92 69 unpack; +#X obj 92 119 * 12; +#X obj 92 144 div 7; +#X obj 92 94 + 1; +#X obj 92 194 mtof; +#X obj 92 244 osc~; +#X obj 92 269 cos~; +#X obj 92 169 + 47; +#X obj 189 267 line~; +#X obj 189 292 *~; +#X obj 189 317 lop~ 500; +#X obj 92 294 *~; +#X obj 83 381 dac~; +#X obj 233 185 dbtorms; +#X obj 233 135 * 0.5; +#X obj 233 160 + 50; +#X obj 191 209 f; +#X msg 153 179 bang; +#X obj 238 103 inlet; +#X obj 91 327 hip~ 5; +#X msg 14 44 0 60; +#X obj 92 219 sig~; +#X msg 189 242 \$1 \, 0 200; +#X obj 0 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 6 1 [bonk~] Demo Synthesizer; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 8 0; +#X connect 4 0 2 0; +#X connect 5 0 18 0; +#X connect 5 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 12 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 12 1; +#X connect 12 0 20 0; +#X connect 14 0 17 1; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 17 0 23 0; +#X connect 18 0 17 0; +#X connect 19 0 15 0; +#X connect 20 0 13 1; +#X connect 20 0 13 0; +#X connect 21 0 1 0; +#X connect 22 0 6 0; +#X connect 23 0 9 0; +#X restore 359 145 pd synth; +#X floatatom 359 122 0 0 0 0 - - -; +#X msg 359 89 0; +#X msg 390 89 90; +#X text 392 108 output volume; +#X text 406 123 (0-100); +#X obj 78 350 cnv 17 3 100 empty \$0-pddp.cnv.let.0 1 5 9 0 16 -228856 +-162280 0; +#X text 98 308 list; +#X text 98 350 list; +#X text 147 187 In this patch \, after starting DSP \, you can print +out the raw or cooked output using the two "spigots" or listen to a +synthesizer output by raising its volume.; +#X text 11 23 an attack detector for small percussion instruments; +#X obj 114 52 adc~; +#N canvas 96 417 428 145 more_info 0; +#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 10 33 The [bonk~] object takes an audio signal input and looks +for "attacks" defined as sharp changes in the spectral envelope of +the incoming sound. Optionally \, and less reliably \, you can have +[bonk~] check the attack against a collection of stored templates to +try to guess which of two or more instruments was hit. [bonk~] is described +theoretically in the 1998 ICMC proceedings \, reprinted on crca.ucsd.edu/~msp +.; +#X text 7 1 [bonk~] More Info; +#X restore 100 568 pd more_info; +#X text 80 478 0-7; +#X text 98 244 signal; +#X text 168 244 - the incoming signal to analyize.; +#X text 98 264 For all other messages see the the subpatch titled "Messenges_to_bonk~" +in the example above.; +#X text 168 308 - the raw spectrum of the attack \, provided as a list +of 11 numbers giving the signal "loudness" in the 11 frequency bands +used.; +#X text 169 477 By default [bonk~]'s analysis is carried out on a 256-point +window (6 msec at 44.1 kHz) and the analysis period is 128 samples. +These and other parameters may be overridden using creation arguments +as shown in the subpatch below:; +#N canvas 29 64 507 520 creation_arguments 0; +#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0 +14 -204280 -1 0; +#X text 15 250 -npts 256; +#X text 15 270 -hop 128; +#X text 15 290 -nfilters 11; +#X text 15 310 -halftones 6; +#X text 15 430 -overlap 1; +#X text 18 483 -firstbin 1; +#X text 15 370 -minbandwidth 1.5; +#X text 16 135 All frequency parameters are specified in 'bins'. One +bin is the sample rate divided by the window size. The minimum possible +bandwidth is 1.5 bins. Higher bandwidths give numerically more robust +outputs.; +#X text 17 37 [bonk~] uses a filterbank whose center frequencies are +spaced equally at low frequencies and proportionally at high ones - +i.e. \, they increase linearly \, then exponentially. They are determined +by the filters' bandwidths and overlap. The bandwidths are specified +proportionally to frequency but bounded below by a specified minimum. +; +#X text 7 2 [bonk~] Creation Arguments; +#X text 16 202 Below are the creation arguments and their default values. +Notice that all are specified as (flag \, value) pairs which may be +given in any order:; +#X text 137 248 - window size in points.; +#X text 136 268 - analysis period ("hop size") in points.; +#X text 137 288 - number of filters to use.; +#X text 136 309 - desired bandwidth of filters in halftones \, effective +in the exponentially spaced region. (At lower center frequencies the +bandwidth is supported by the "minbandwidth" parameter below).; +#X text 136 370 - minimum bandwidth in bins. If the bandwidth specified +by "halftones" is smaller than this \, this value is used. This must +be at least 1.5.; +#X text 135 430 - overlap factor between filters. If 1 \, the filters +are spaced to line up at their half-power points. Other values specify +more or fewer filters proportionally.; +#X text 135 483 - center frequency \, in bins \, of the lowest filter. +The others are computed from this.; +#X restore 100 534 pd creation_arguments; +#X text 168 350 - the "cooked" output which gives an instrument number +(counting up from zero) \, a "velocity" \, and a "brightness" value +(the balancing point of the loudness distribution over the filter bank-- +nominally 11 filters). This "velocity" is the sum of the square roots +of the amplitudes of the bands \, normalized so that 100 is an attack +of amplitude of about 1 . The instrument number is significant only +if [bonk~] has a "template set" in memory.; +#X obj 4 597 pddp/pddplink pddp/help.pd -text help; +#X obj 455 51 pddp/dsp-reminder; +#X connect 12 0 17 0; +#X connect 13 0 14 0; +#X connect 13 1 12 0; +#X connect 13 1 20 0; +#X connect 14 0 18 0; +#X connect 15 0 14 1; +#X connect 16 0 12 1; +#X connect 21 0 13 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 23 0; +#X connect 33 0 13 0; |