aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/all_about_acoustic_conversions.pd
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-04-26 05:34:40 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-04-26 05:34:40 +0000
commitb8ed40f8c8bb856e4e2b1a5e314bd42ec7f1f9f6 (patch)
tree7dff78e8c09ad980953b6de7730066b0d001beb3 /doc/pddp/all_about_acoustic_conversions.pd
parent8ce2b8755d6c017e6ce5213e35e3e792d4ad8763 (diff)
made an object, [pddp_open] which opens a giving patch on the fly. This way, it is no longer necessary to instantiate an object in a help patch in order for it to be linked. For example, the [hid] help patch doesn't need an instance of [all_about_hid]. [all_about_hid] is opened upon request via [pddp_open]. This eliminates bugs and makes the help system load fast, since its loading much less.
svn path=/trunk/; revision=2824
Diffstat (limited to 'doc/pddp/all_about_acoustic_conversions.pd')
-rw-r--r--doc/pddp/all_about_acoustic_conversions.pd585
1 files changed, 585 insertions, 0 deletions
diff --git a/doc/pddp/all_about_acoustic_conversions.pd b/doc/pddp/all_about_acoustic_conversions.pd
new file mode 100644
index 00000000..1ead8b5f
--- /dev/null
+++ b/doc/pddp/all_about_acoustic_conversions.pd
@@ -0,0 +1,585 @@
+#N canvas 48 140 862 639 10;
+#X obj 12 82 mtof;
+#X floatatom 12 105 0 0 0 0 - - -;
+#X obj 12 129 ftom;
+#X floatatom 12 150 0 0 0 0 - - -;
+#X text 47 82 -- MIDI note number to frequency converter.;
+#N canvas 37 22 899 659 understanding_mtof 0;
+#X text 20 13 [mtof] will convert MIDI note numbers to Wave Freqeuency.
+This object exists in PD for the sake of convenience and speed of processing.
+;
+#X obj 37 165 mtof;
+#X floatatom 37 143 5 0 0 0 - - -;
+#X text 77 142 Select a MIDI note: (Middle C is 60).;
+#X floatatom 37 188 5 0 0 0 - - -;
+#X obj 37 207 osc~;
+#X floatatom 99 203 0 0 0 0 - - -;
+#N canvas 397 146 628 393 output 0;
+#X obj 393 156 t b;
+#X obj 393 106 f;
+#X obj 393 56 inlet;
+#X text 399 25 mute;
+#X obj 393 181 f;
+#X msg 480 174 0;
+#X msg 393 81 bang;
+#X obj 393 131 moses 1;
+#X obj 480 149 t b f;
+#X obj 452 113 moses 1;
+#X obj 138 144 dbtorms;
+#X obj 452 88 r master-lvl;
+#X obj 138 38 r master-lvl;
+#X obj 393 206 s master-lvl;
+#X obj 22 181 inlet~;
+#X obj 254 37 inlet;
+#X text 254 14 level;
+#X obj 254 152 s master-lvl;
+#X msg 151 61 set \$1;
+#X obj 151 85 outlet;
+#X obj 138 190 line~;
+#X obj 22 212 *~;
+#X obj 138 167 pack 0 50;
+#X text 34 159 audio;
+#X text 148 106 show level;
+#X obj 73 182 inlet~;
+#X obj 73 213 *~;
+#X obj 22 241 dac~ 1;
+#X obj 73 241 dac~ 2;
+#X msg 290 82 1;
+#X obj 265 59 sel 0;
+#X msg 265 119 \; pd dsp \$1;
+#X msg 265 82 0;
+#X connect 0 0 4 0;
+#X connect 1 0 7 0;
+#X connect 2 0 6 0;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 5 0 31 0;
+#X connect 6 0 1 0;
+#X connect 7 0 0 0;
+#X connect 7 1 8 0;
+#X connect 8 0 5 0;
+#X connect 9 1 4 1;
+#X connect 10 0 22 0;
+#X connect 11 0 1 1;
+#X connect 11 0 9 0;
+#X connect 12 0 10 0;
+#X connect 12 0 18 0;
+#X connect 14 0 21 0;
+#X connect 15 0 17 0;
+#X connect 15 0 30 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 1;
+#X connect 20 0 26 1;
+#X connect 21 0 27 0;
+#X connect 22 0 20 0;
+#X connect 25 0 26 0;
+#X connect 26 0 28 0;
+#X connect 29 0 31 0;
+#X connect 30 0 32 0;
+#X connect 30 1 29 0;
+#X connect 32 0 31 0;
+#X restore 37 232 pd output;
+#X msg 128 204 MUTE;
+#X text 164 203 <-- Turn up your volume here.;
+#X text 15 260 HERE IS THE ALTERNATIVE;
+#X obj 36 321 mtof;
+#X floatatom 36 281 5 0 0 0 - - -;
+#X floatatom 15 345 0 0 0 0 - - -;
+#X floatatom 123 461 0 0 0 0 - - -;
+#X obj 138 312 <= -1500;
+#X obj 138 332 expr 1-$f1;
+#X obj 95 352 spigot;
+#X obj 95 295 t f f;
+#X obj 95 372 min 1499;
+#X obj 95 419 expr (8.17579891564*exp(0.0577622650*$f1));
+#X obj 151 352 s zero;
+#X obj 123 440 r zero;
+#X obj 96 485 bang;
+#X obj 36 482 bang;
+#X obj 36 502 realtime;
+#X floatatom 161 576 0 0 0 0 - - -;
+#X obj 204 499 bang;
+#X obj 161 499 bang;
+#X obj 161 519 realtime;
+#X floatatom 161 540 0 0 0 0 - - -;
+#X obj 365 389 *;
+#X obj 408 342 loadbang;
+#X obj 365 408 exp;
+#X obj 365 428 *;
+#X floatatom 365 448 0 0 0 0 - - -;
+#X obj 397 431 r zero;
+#X text 79 277 Select a MIDI note here.;
+#X obj 477 572 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 477 12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 496 123 The examples at the botton left are PD structures which
+emulate the source code of the [mtof] object. In one case \, I have
+used the [expr] object to perform the necessary calculation. In the
+other case \, I used PD's Arithmetic objects to perform the calculation.
+;
+#X text 498 291 Secondly \, the incoming MIDI note number is translated
+into a frequency value by the simple equation:;
+#X text 494 330 (8.17579891564 * exp(0.0577622650 * MIDI_note)) = frequency
+;
+#X text 498 355 For curiosity's sake \, I included a timer to show
+how much faster the [mtof] object is compared to the two alternative
+methods.;
+#X text 162 556 Arithmetic is __?__ milliseconds slower than [mtof].
+;
+#X text 159 592 [expr] is __?__ milliseconds slower than [mtof].;
+#X text 12 363 RESULT A;
+#X text 123 476 RESULT B;
+#X text 364 465 RESULT C;
+#X msg 408 363 0.0577623;
+#X msg 408 403 8.1758;
+#X text 504 12 THE ALTERNATIVE EXPLAINED;
+#X text 499 33 The [mtof] object is really just a function defined
+in PD's source code - which is programmed in "C".;
+#X text 497 67 As such \, it operates very quickly. If a similar function
+were to be created using PD's arithmetic objects \, the process would
+be quite a bit slower. How much slower?;
+#X text 498 409 As well \, notice that RESULT C (the output from PD's
+basic arithmetic objects) is not as accurate as the other two methods:
+[mtof] and/or [expr]. This is because the message boxes and the [*]
+object round off the operands because they cannot handle enough decimal
+places.;
+#X text 498 200 The first order of business performed by these examples
+is the filtering out of all numbers less than -1500 and greater than
+1499 (Just like the [mtof] source code). In other words \, "overflows
+and underflows are clipped" as Miller Puckette stated in the original
+documentation for this object.;
+#X text 22 62 MIDI notes usually range between 0 and 127 from an incoming
+MIDI controller. However \, in PD negative numbers to -1500 and positive
+numbers to 1499 are also supported and decimal places can be used to
+achive microtonal pitches.;
+#X text 11 125 CONVENIENT? YES!;
+#X connect 1 0 4 0;
+#X connect 2 0 1 0;
+#X connect 4 0 5 0;
+#X connect 5 0 7 0;
+#X connect 6 0 7 2;
+#X connect 7 0 6 0;
+#X connect 8 0 7 3;
+#X connect 11 0 13 0;
+#X connect 11 0 24 0;
+#X connect 12 0 11 0;
+#X connect 12 0 18 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 1;
+#X connect 16 0 21 0;
+#X connect 17 0 19 0;
+#X connect 18 0 17 0;
+#X connect 18 1 15 0;
+#X connect 19 0 20 0;
+#X connect 19 0 23 0;
+#X connect 19 0 31 0;
+#X connect 20 0 14 0;
+#X connect 22 0 14 0;
+#X connect 23 0 25 1;
+#X connect 24 0 25 0;
+#X connect 24 0 28 0;
+#X connect 25 0 26 0;
+#X connect 27 0 29 1;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 31 0 33 0;
+#X connect 32 0 49 0;
+#X connect 32 0 50 0;
+#X connect 33 0 34 0;
+#X connect 34 0 35 0;
+#X connect 34 0 27 0;
+#X connect 36 0 35 0;
+#X connect 39 0 38 0;
+#X connect 49 0 31 1;
+#X connect 50 0 34 1;
+#X restore 175 99 pd understanding_mtof;
+#X text 47 129 -- Frequency to MIDI note number converter.;
+#N canvas 118 22 919 630 understanding_ftom 0;
+#X floatatom 38 86 5 0 0 0 - - -;
+#X floatatom 38 131 5 0 0 0 - - -;
+#X text 12 215 HERE IS THE ALTERNATIVE;
+#X floatatom 33 236 5 0 0 0 - - -;
+#X floatatom 12 300 0 0 0 0 - - -;
+#X obj 507 572 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 507 12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 9 318 RESULT A;
+#X text 534 12 THE ALTERNATIVE EXPLAINED;
+#X text 527 67 As such \, it operates very quickly. If a similar function
+were to be created using PD's arithmetic objects \, the process would
+be quite a bit slower. How much slower?;
+#X text 12 68 CONVENIENT? YES!;
+#X text 22 14 [ftom] will convert Wave/Signal Frequency to MIDI note
+numbers. This object exists in PD for the sake of convenience and speed
+of processing.;
+#X text 78 85 Select a Frequency: (i.e. 440 hz is an "A" above middle
+C);
+#X obj 38 108 ftom;
+#X obj 38 158 makenote 100 500;
+#X obj 38 181 noteout;
+#X text 76 232 Select a FREQUENCY here.;
+#X obj 33 276 ftom;
+#X text 529 33 The [ftom] object is really just a function defined
+in PD's source code - which is programmed in "C".;
+#X text 526 123 The examples at the botton left are PD structures which
+emulate the source code of the [ftom] object. In one case \, I have
+used the [expr] object to perform the necessary calculation. In the
+other case \, I used PD's Arithmetic objects to perform the calculation.
+;
+#X obj 64 256 moses 0;
+#X msg 64 277 -1500;
+#X floatatom 64 408 0 0 0 0 - - -;
+#X floatatom 114 346 0 0 0 0 - - -;
+#X obj 114 313 * 17.3123;
+#X obj 114 273 * 0.122312;
+#X obj 114 293 log;
+#X obj 101 385 expr (17.3123405046*log(.12231220585*$f1));
+#X text 64 423 RESULT B;
+#X text 113 359 RESULT C;
+#X obj 93 449 bang;
+#X obj 33 446 bang;
+#X obj 33 466 realtime;
+#X floatatom 158 540 0 0 0 0 - - -;
+#X obj 201 463 bang;
+#X obj 158 463 bang;
+#X obj 158 483 realtime;
+#X floatatom 158 504 0 0 0 0 - - -;
+#X text 189 520 Arithmetic is __?__ milliseconds slower than [mtof].
+;
+#X text 156 556 [expr] is __?__ milliseconds slower than [mtof].;
+#X text 528 200 Firstly \, the PD source code "clips" overflows and
+underflows. This means simply that frequencies LESS THAN zero cannot
+be tranlated into a MIDI note value - so they're ignored completely
+and the object responds with "-1500".;
+#X text 528 291 Secondly \, the incoming frequency is translated into
+a MIDI note value by the simple equation:;
+#X text 524 330 (17.3123405046 * log(0.12231220585 * Frequency)) =
+MIDI_note;
+#X text 528 355 For curiosity's sake \, I included a timer to show
+how much faster the [ftom] object is compared to the two alternative
+methods.;
+#X text 528 409 As well \, notice that RESULT C (the output from PD's
+basic arithmetic objects) is not as accurate as the other two methods:
+[ftom] and/or [expr]. This is because the message boxes and the [*]
+object round off the operands because they cannot handle enough decimal
+places.;
+#X text 145 119 Note that fractional values have no effect. MIDI controllers
+only accept integers. Perhaps a subroutine could be designed to parse
+the decimal places and manipulate the pitch bend controller to achieve
+microtonal control?;
+#X connect 0 0 13 0;
+#X connect 1 0 14 0;
+#X connect 3 0 17 0;
+#X connect 3 0 20 0;
+#X connect 4 0 31 0;
+#X connect 6 0 5 0;
+#X connect 13 0 1 0;
+#X connect 14 0 15 0;
+#X connect 14 1 15 1;
+#X connect 17 0 4 0;
+#X connect 20 0 21 0;
+#X connect 20 1 25 0;
+#X connect 20 1 27 0;
+#X connect 21 0 22 0;
+#X connect 21 0 23 0;
+#X connect 22 0 30 0;
+#X connect 23 0 34 0;
+#X connect 24 0 23 0;
+#X connect 25 0 26 0;
+#X connect 26 0 24 0;
+#X connect 27 0 22 0;
+#X connect 30 0 32 1;
+#X connect 31 0 32 0;
+#X connect 31 0 35 0;
+#X connect 32 0 33 0;
+#X connect 34 0 36 1;
+#X connect 35 0 36 0;
+#X connect 36 0 37 0;
+#X restore 174 145 pd understanding_ftom;
+#X floatatom 12 61 0 0 0 0 - - -;
+#X floatatom 12 231 0 0 0 0 - - -;
+#X floatatom 12 276 0 0 0 0 - - -;
+#X floatatom 12 187 0 0 0 0 - - -;
+#X obj 12 208 dbtorms;
+#X obj 12 255 rmstodb;
+#N canvas 65 78 423 452 understanding_dbtorms 0;
+#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X text 24 94 The difficulty in measuring the volume of an instrument
+however is caused by 'distance'. For example \, at one metre away from
+a door bell \, the amplitude might be 70 Decibels \, while at 50 metres
+away the same door bell is just a fraction of that amplitude.;
+#X text 25 33 DECIBELS are units by which we measure amplitude. A human
+voice is approximately 70 Decibels - a snare drum is approximately
+120 Decibels - the threshold of pain for the human ear is approximately
+110 Decibels (poor drummers!);
+#X text 23 174 Literally \, a Decibel is one-tenth of a Bel. A Bel
+\, according to a medical dictionary is approximately the threshold
+of the human ear at 1000 hz. I know that this seems a little vague
+\, and perhaps this isn't the best way to explain it - we might as
+well be measuring "fortnights" and "bunches" and "Alens"! Anyways...I'm
+not an acoustician.;
+#X restore 39 24 pd What_is_a_decibel?;
+#N canvas 0 22 440 242 What_does_RMS_mean? 0;
+#X text 24 21 RMS is an acronym meaning "Root Mean Square".;
+#X text 23 43 In the analog realm \, RMS is the result of an equation
+performed on electrical flow. It is used to measure voltage or current.
+It is important to note however \, that it does NOT measure "power".
+It's also important to recognize that our ears perceive changes in
+amplitude (decibels) more than we perceive changes in RMS levels.;
+#X text 23 133 In the digital realm \, i.e. PD! \, RMS is better defined
+as "a measurement of a signal taken by squaring data points along the
+curve \, finding the mean \, and then determining the square root of
+that mean value.;
+#X restore 39 47 pd What_does_RMS_mean?;
+#X text 19 80 [dbtorms] in PD performs the following equation to convert
+the data: Note that incoming values less than 0 or greater than 485
+are considered overflow or underflow and are clipped/ignored.;
+#X text 22 241 Example:;
+#X floatatom 24 293 0 0 0 0 - - -;
+#X obj 24 313 moses 0;
+#X msg 24 333 0;
+#X obj 86 352 min 485;
+#X text 17 149 (exp((2.302585092994 * 0.05) * (db_value - 100)) = RMS
+;
+#X floatatom 24 397 0 0 0 0 - - -;
+#X obj 151 310 dbtorms;
+#X floatatom 151 330 0 0 0 0 - - -;
+#X obj 86 372 expr (exp((2.302585092994*0.05)*($f1-100)));
+#X text 18 178 On a scale of zero to 100 decibels \, the [dbtorms]
+produces exponential values between 0 and 1;
+#X msg 24 264 0;
+#X msg 57 264 100;
+#X obj 61 332 sel 0;
+#X connect 4 0 5 0;
+#X connect 4 0 10 0;
+#X connect 5 0 6 0;
+#X connect 5 1 16 0;
+#X connect 6 0 9 0;
+#X connect 7 0 12 0;
+#X connect 10 0 11 0;
+#X connect 12 0 9 0;
+#X connect 14 0 4 0;
+#X connect 15 0 4 0;
+#X connect 16 0 6 0;
+#X connect 16 1 7 0;
+#X restore 155 227 pd understanding_dbtorms;
+#X text 66 209 -- Decibels to RMS converter.;
+#X text 66 256 -- RMS to Decibels converter.;
+#X floatatom 12 357 0 0 0 0 - - -;
+#X floatatom 12 402 0 0 0 0 - - -;
+#X floatatom 12 313 0 0 0 0 - - -;
+#X obj 12 334 dbtopow;
+#X obj 12 381 powtodb;
+#N canvas 349 60 423 452 understanding_rmstodb 0;
+#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X text 24 94 The difficulty in measuring the volume of an instrument
+however is caused by 'distance'. For example \, at one metre away from
+a door bell \, the amplitude might be 70 Decibels \, while at 50 metres
+away the same door bell is just a fraction of that amplitude.;
+#X text 25 33 DECIBELS are units by which we measure amplitude. A human
+voice is approximately 70 Decibels - a snare drum is approximately
+120 Decibels - the threshold of pain for the human ear is approximately
+110 Decibels (poor drummers!);
+#X text 23 174 Literally \, a Decibel is one-tenth of a Bel. A Bel
+\, according to a medical dictionary is approximately the threshold
+of the human ear at 1000 hz. I know that this seems a little vague
+\, and perhaps this isn't the best way to explain it - we might as
+well be measuring "fortnights" and "bunches" and "Alens"! Anyways...I'm
+not an acoustician.;
+#X restore 39 24 pd What_is_a_decibel?;
+#N canvas 0 22 440 242 What_does_RMS_mean? 0;
+#X text 24 21 RMS is an acronym meaning "Root Mean Square".;
+#X text 23 43 In the analog realm \, RMS is the result of an equation
+performed on electrical flow. It is used to measure voltage or current.
+It is important to note however \, that it does NOT measure "power".
+It's also important to recognize that our ears perceive changes in
+amplitude (decibels) more than we perceive changes in RMS levels.;
+#X text 23 133 In the digital realm \, i.e. PD! \, RMS is better defined
+as "a measurement of a signal taken by squaring data points along the
+curve \, finding the mean \, and then determining the square root of
+that mean value.;
+#X restore 39 47 pd What_does_RMS_mean?;
+#X text 22 219 Example:;
+#X floatatom 24 259 0 0 0 0 - - -;
+#X floatatom 24 422 0 0 0 0 - - -;
+#X floatatom 151 354 0 0 0 0 - - -;
+#X msg 68 278 0;
+#X text 19 80 [rmstodb] in PD performs the following equation to convert
+the data: Note that incoming values less than 0 is consider underflow
+and is clipped/ignored.;
+#X text 18 178 On a scale of zero to 1 decibels \, the [rmstodb] produces
+logarithmic values between 0 and 100 \, although higher values can
+also be produced.;
+#X obj 151 334 rmstodb;
+#X obj 24 358 max 0;
+#X obj 24 401 max 0;
+#X obj 24 379 expr (100+((20/2.302585092994)*log($f1)));
+#X text 18 136 (100 + ((20/2.302585092994) * log(RMS_value)));
+#X obj 24 278 / 1000;
+#X floatatom 24 310 0 0 0 0 - - -;
+#X msg 101 278 1;
+#X connect 3 0 14 0;
+#X connect 6 0 15 0;
+#X connect 9 0 5 0;
+#X connect 10 0 12 0;
+#X connect 11 0 4 0;
+#X connect 12 0 11 0;
+#X connect 14 0 15 0;
+#X connect 15 0 9 0;
+#X connect 15 0 10 0;
+#X connect 16 0 15 0;
+#X restore 153 273 pd understanding_rmstodb;
+#X text 66 335 -- Decibels to power converter.;
+#X text 66 382 -- power to Decibels converter.;
+#N canvas 460 106 429 458 understanding_dbtopow 0;
+#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X text 24 94 The difficulty in measuring the volume of an instrument
+however is caused by 'distance'. For example \, at one metre away from
+a door bell \, the amplitude might be 70 Decibels \, while at 50 metres
+away the same door bell is just a fraction of that amplitude.;
+#X text 25 33 DECIBELS are units by which we measure amplitude. A human
+voice is approximately 70 Decibels - a snare drum is approximately
+120 Decibels - the threshold of pain for the human ear is approximately
+110 Decibels (poor drummers!);
+#X text 23 174 Literally \, a Decibel is one-tenth of a Bel. A Bel
+\, according to a medical dictionary is approximately the threshold
+of the human ear at 1000 hz. I know that this seems a little vague
+\, and perhaps this isn't the best way to explain it - we might as
+well be measuring "fortnights" and "bunches" and "Alens"! Anyways...I'm
+not an acoustician.;
+#X restore 39 24 pd What_is_a_decibel?;
+#X floatatom 21 205 0 0 0 0 - - -;
+#X floatatom 21 309 0 0 0 0 - - -;
+#X floatatom 148 242 0 0 0 0 - - -;
+#N canvas 0 22 442 244 What_does_power_mean? 0;
+#X text 30 25 What does power mean? I really don't know? I can't determine
+from my own research or from PD's documentation why or how this data
+is used. All that I do know \, is that PD provides these objects for
+a good reason -- I just don't know the reason.;
+#X text 27 103 Having said that \, I would enjoy learning from somebody
+who DOES know more about these objects and their usage. All that I
+can offer is an explanation of the equation used to perform these conversions.
+;
+#X restore 39 47 pd What_does_power_mean?;
+#X text 18 80 [dbtopow] in PD performs the following equation to convert
+the data: Note that incoming values less than 0 or greater than 870
+are considered overflow or underflow and are clipped/ignored.;
+#X obj 148 222 dbtopow;
+#X obj 21 226 max 0;
+#X obj 21 246 min 870;
+#X text 17 149 exp((2.302585092994 * 0.1) * (db_value - 100)) = Power
+;
+#X obj 21 269 expr exp((2.302585092994*0.1)*($f1-100));
+#X connect 1 0 6 0;
+#X connect 1 0 7 0;
+#X connect 6 0 3 0;
+#X connect 7 0 8 0;
+#X connect 8 0 10 0;
+#X connect 10 0 2 0;
+#X restore 154 354 pd understanding_dbtopow;
+#N canvas 348 60 429 458 understanding_powtodb 0;
+#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X text 24 94 The difficulty in measuring the volume of an instrument
+however is caused by 'distance'. For example \, at one metre away from
+a door bell \, the amplitude might be 70 Decibels \, while at 50 metres
+away the same door bell is just a fraction of that amplitude.;
+#X text 25 33 DECIBELS are units by which we measure amplitude. A human
+voice is approximately 70 Decibels - a snare drum is approximately
+120 Decibels - the threshold of pain for the human ear is approximately
+110 Decibels (poor drummers!);
+#X text 23 174 Literally \, a Decibel is one-tenth of a Bel. A Bel
+\, according to a medical dictionary is approximately the threshold
+of the human ear at 1000 hz. I know that this seems a little vague
+\, and perhaps this isn't the best way to explain it - we might as
+well be measuring "fortnights" and "bunches" and "Alens"! Anyways...I'm
+not an acoustician.;
+#X restore 39 24 pd What_is_a_decibel?;
+#X text 22 241 Example:;
+#X floatatom 22 261 0 0 0 0 - - -;
+#X floatatom 22 363 0 0 0 0 - - -;
+#X floatatom 149 298 0 0 0 0 - - -;
+#N canvas 0 22 442 244 What_does_power_mean? 0;
+#X text 30 25 What does power mean? I really don't know? I can't determine
+from my own research or from PD's documentation why or how this data
+is used. All that I do know \, is that PD provides these objects for
+a good reason -- I just don't know the reason.;
+#X text 27 103 Having said that \, I would enjoy learning from somebody
+who DOES know more about these objects and their usage. All that I
+can offer is an explanation of the equation used to perform these conversions.
+;
+#X restore 39 47 pd What_does_power_mean?;
+#X text 17 81 [powtodb] in PD performs the following equation to convert
+the data: Note that incoming values less than 0 are considered underflow
+and are clipped/ignored.;
+#X text 17 149 (100 + ((10/2.302585092994) * log(POWER_value))) = Debibels
+;
+#X obj 149 278 powtodb;
+#X obj 22 281 max 0;
+#X obj 22 321 expr (100 + ((10/2.302585092994)*log($f1)));
+#X obj 22 342 max 0;
+#X connect 2 0 8 0;
+#X connect 2 0 9 0;
+#X connect 8 0 4 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 3 0;
+#X restore 154 401 pd understanding_powtodb;
+#X text 13 439 RELATED OBJECTS;
+#X obj 14 458 dbtopow~;
+#X obj 68 458 dbtorms~;
+#X obj 123 458 rmstodb~;
+#X obj 178 458 powtodb~;
+#X obj 233 458 mtof~;
+#X obj 270 458 ftom~;
+#X obj 14 483 expr;
+#X obj 46 483 expr~;
+#N canvas 0 22 452 302 other_objects_from_related_libraries 0;
+#X obj 26 39 db2v;
+#X obj 65 38 f2note;
+#X obj 115 39 b2db;
+#X obj 150 40 t3_sig~;
+#X obj 205 40 m2f~;
+#X obj 249 41 tmtof;
+#X text 18 96 These objects are offered in PD only if you have downloaded
+and properly installed the appropriate library. These objects may or
+may not exist in a single library.;
+#X text 17 145 The best places to find information about PD's libraries
+is:;
+#X text 14 167 www.puredata.org and click on "Downloads" then "Software"
+;
+#X text 15 183 or;
+#X text 16 197 iem.kug.ac.at/pdb/;
+#X restore 14 518 pd other_objects_from_related_libraries;
+#X obj 90 483 rmstopow~;
+#X obj 154 485 powtorms~;
+#X obj 220 485 sig~;
+#X obj 254 485 snapshot~;
+#X obj 5 2 cnv 15 850 20 empty empty all_about_acoustic_conversions
+20 10 1 18 -233017 -66577 0;
+#X obj 821 3 pddp;
+#X text 439 41 Please note: I have no idea why it's necessary for Pd
+to measure decibels \, rms \, or power. It seems to me that RMS and
+Power are extremely important in the analog world (so that an engineer
+doesn't blow up a transistor)...but in Pd \, these things are just
+numbers which have been abstracted from their original analog counterparts.
+I would really appreciate if somebody could help me understand these
+concepts and finish this document. Why are these objects present in
+Pd? WHY should they be used and what benefits to they produce in a
+digital process?;
+#X text 14 574 This document was updated for Pd version 0.35 test 29
+by Dave Sabine as part of a project called pddp proposed to build comprehensive
+documentation for Pd.;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 8 0 0 0;
+#X connect 9 0 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X connect 13 0 10 0;
+#X connect 17 0 21 0;
+#X connect 19 0 20 0;
+#X connect 20 0 17 0;
+#X connect 21 0 18 0;