aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/all_about_acoustic_conversions.pd
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pddp/all_about_acoustic_conversions.pd')
-rw-r--r--doc/pddp/all_about_acoustic_conversions.pd750
1 files changed, 394 insertions, 356 deletions
diff --git a/doc/pddp/all_about_acoustic_conversions.pd b/doc/pddp/all_about_acoustic_conversions.pd
index 4a6b6868..00a59a8a 100644
--- a/doc/pddp/all_about_acoustic_conversions.pd
+++ b/doc/pddp/all_about_acoustic_conversions.pd
@@ -1,20 +1,23 @@
-#N canvas 13 30 762 530 10;
-#X obj 22 62 mtof;
-#X floatatom 22 85 0 0 0 0 - - -;
-#X obj 22 109 ftom;
-#X floatatom 22 130 0 0 0 0 - - -;
-#X text 57 62 -- 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.
+#N canvas 0 0 448 570 10;
+#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header acoustic_conversions
+20 10 1 18 -261106 -33289 0;
+#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
+#X obj 180 63 mtof;
+#X floatatom 180 86 0 0 0 0 - - -;
+#X obj 180 110 ftom;
+#X floatatom 180 131 0 0 0 0 - - -;
+#N canvas 13 23 428 336 understanding_mtof 0;
+#X text 19 36 [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 45 195 mtof;
+#X floatatom 45 173 5 0 0 0 - - -;
+#X text 85 172 Select a MIDI note: (Middle C is 60).;
+#X floatatom 45 218 5 0 0 0 - - -;
+#X obj 45 237 osc~;
+#X floatatom 107 217 0 0 0 0 - - -;
+#N canvas 396 146 628 393 output 0;
#X obj 393 156 t b;
#X obj 393 106 f;
#X obj 393 56 inlet;
@@ -78,82 +81,121 @@ This object exists in Pd for the sake of convenience and speed of processing.
#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
+#X restore 45 262 pd output;
+#X msg 116 239 MUTE;
+#X text 133 217 <-- Turn up your volume here.;
+#X text 19 85 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 19 145 CONVENIENT? YES!;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [mtof];
+#N canvas 14 48 428 488 Alternatives_to_mtof 0;
+#N canvas 14 48 428 416 mtof_patches 0;
+#X text 25 36 HERE IS THE ALTERNATIVE;
+#X obj 46 97 mtof;
+#X floatatom 46 57 5 0 0 0 - - -;
+#X floatatom 25 121 0 0 0 0 - - -;
+#X floatatom 133 237 0 0 0 0 - - -;
+#X obj 148 88 <= -1500;
+#X obj 148 108 expr 1-$f1;
+#X obj 105 128 spigot;
+#X obj 105 71 t f f;
+#X obj 105 148 min 1499;
+#X obj 105 195 expr (8.17579891564*exp(0.0577622650*$f1));
+#X obj 161 128 s zero;
+#X obj 133 216 r zero;
+#X obj 106 261 bang;
+#X obj 46 258 bang;
+#X obj 46 278 realtime;
+#X floatatom 171 352 0 0 0 0 - - -;
+#X obj 214 275 bang;
+#X obj 171 275 bang;
+#X obj 171 295 realtime;
+#X floatatom 171 316 0 0 0 0 - - -;
+#X obj 375 165 *;
+#X obj 418 118 loadbang;
+#X obj 375 184 exp;
+#X obj 375 204 *;
+#X floatatom 375 224 0 0 0 0 - - -;
+#X obj 407 207 r zero;
+#X text 89 53 Select a MIDI note here.;
+#X text 172 332 Arithmetic is __?__ milliseconds slower than [mtof].
+;
+#X text 169 368 [expr] is __?__ milliseconds slower than [mtof].;
+#X text 22 139 RESULT A;
+#X text 133 252 RESULT B;
+#X text 374 241 RESULT C;
+#X msg 418 139 0.0577623;
+#X msg 418 179 8.1758;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 An alternative to [mtof];
+#X connect 1 0 3 0;
+#X connect 1 0 14 0;
+#X connect 2 0 1 0;
+#X connect 2 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 1;
+#X connect 6 0 11 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 8 1 5 0;
+#X connect 9 0 10 0;
+#X connect 9 0 13 0;
+#X connect 9 0 21 0;
+#X connect 10 0 4 0;
+#X connect 12 0 4 0;
+#X connect 13 0 15 1;
+#X connect 14 0 15 0;
+#X connect 14 0 18 0;
+#X connect 15 0 16 0;
+#X connect 17 0 19 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 21 0 23 0;
+#X connect 22 0 33 0;
+#X connect 22 0 34 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 24 0 17 0;
+#X connect 26 0 25 0;
+#X connect 33 0 21 1;
+#X connect 34 0 24 1;
+#X restore 22 452 pd mtof_patches;
+#X text 19 121 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
+#X text 19 268 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 19 332 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 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
+#X text 20 37 The [mtof] object is really just a function defined in
+Pd's source code - which is programmed in "C".;
+#X text 20 74 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
+#X text 19 376 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
+#X text 19 190 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 text 19 302 (8.17579891564 * exp(0.0577622650 * MIDI_note)) = frequency
+;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Alternatives to [mtof];
+#X restore 22 302 pd Alternatives_to_mtof;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
@@ -161,151 +203,125 @@ achive microtonal pitches.;
#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 185 79 pd understanding_mtof;
-#X text 57 109 -- 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
+#X restore 23 63 pd understanding_mtof;
+#N canvas 15 29 428 344 understanding_ftom 0;
+#X floatatom 21 109 5 0 0 0 - - -;
+#X floatatom 21 154 5 0 0 0 - - -;
+#X text 19 89 CONVENIENT? YES!;
+#X text 19 37 [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
+#X text 61 108 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
+#X obj 21 131 ftom;
+#X obj 21 181 makenote 100 500;
+#X obj 21 204 noteout;
+#X text 37 225 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 obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [ftom];
+#N canvas 14 48 428 488 Alternatives_to_ftom 0;
+#X text 19 71 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 19 37 The [ftom] object is really just a function defined in
+Pd's source code - which is programmed in "C".;
+#X text 19 117 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
+#X text 19 184 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
+#X text 19 255 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
+#X text 19 310 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 19 364 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 text 19 285 (17.3123405046 * log(0.12231220585 * Frequency)) = MIDI_note
+;
+#N canvas 14 48 428 416 ftom_patches 0;
+#X text 19 39 HERE IS THE ALTERNATIVE;
+#X floatatom 40 60 5 0 0 0 - - -;
+#X floatatom 19 124 0 0 0 0 - - -;
+#X text 16 142 RESULT A;
+#X text 83 56 Select a FREQUENCY here.;
+#X obj 40 100 ftom;
+#X obj 71 80 moses 0;
+#X msg 71 101 -1500;
+#X floatatom 71 232 0 0 0 0 - - -;
+#X floatatom 121 170 0 0 0 0 - - -;
+#X obj 121 137 * 17.3123;
+#X obj 121 97 * 0.122312;
+#X obj 121 117 log;
+#X obj 108 209 expr (17.3123405046*log(.12231220585*$f1));
+#X text 71 247 RESULT B;
+#X text 120 183 RESULT C;
+#X obj 100 273 bang;
+#X obj 40 270 bang;
+#X obj 40 290 realtime;
+#X floatatom 165 364 0 0 0 0 - - -;
+#X obj 208 287 bang;
+#X obj 165 287 bang;
+#X obj 165 307 realtime;
+#X floatatom 165 328 0 0 0 0 - - -;
+#X text 196 344 Arithmetic is __?__ milliseconds slower than [mtof].
+;
+#X text 163 380 [expr] is __?__ milliseconds slower than [mtof].;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 An alternative to [ftom];
+#X connect 1 0 5 0;
+#X connect 1 0 6 0;
+#X connect 2 0 17 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 6 1 11 0;
+#X connect 6 1 13 0;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 16 0;
+#X connect 9 0 20 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 10 0;
+#X connect 13 0 8 0;
+#X connect 16 0 18 1;
+#X connect 17 0 18 0;
+#X connect 17 0 21 0;
+#X connect 18 0 19 0;
+#X connect 20 0 22 1;
#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 184 125 pd understanding_ftom;
-#X floatatom 22 41 0 0 0 0 - - -;
-#X floatatom 22 211 0 0 0 0 - - -;
-#X floatatom 22 256 0 0 0 0 - - -;
-#X floatatom 22 167 0 0 0 0 - - -;
-#X obj 22 188 dbtorms;
-#X obj 22 235 rmstodb;
-#N canvas 65 78 423 452 understanding_dbtorms 0;
-#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X connect 22 0 23 0;
+#X restore 22 442 pd ftom_patches;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Alternatives to [ftom];
+#X restore 21 297 pd Alternatives_to_ftom;
+#X connect 0 0 5 0;
+#X connect 1 0 6 0;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 6 1 7 1;
+#X restore 23 110 pd understanding_ftom;
+#X floatatom 180 42 0 0 0 0 - - -;
+#X floatatom 180 212 0 0 0 0 - - -;
+#X floatatom 180 257 0 0 0 0 - - -;
+#X floatatom 180 168 0 0 0 0 - - -;
+#X obj 180 189 dbtorms;
+#X obj 180 236 rmstodb;
+#N canvas 14 77 428 407 understanding_dbtorms 0;
+#N canvas 3 118 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
@@ -320,8 +336,8 @@ 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 restore 20 350 pd What_is_a_decibel?;
+#N canvas 5 174 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.
@@ -332,48 +348,49 @@ amplitude (decibels) more than we perceive changes in RMS levels.;
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
+#X restore 20 373 pd What_does_RMS_mean?;
+#X text 17 158 Example:;
+#X floatatom 20 210 0 0 0 0 - - -;
+#X obj 20 230 moses 0;
+#X msg 20 250 0;
+#X obj 82 269 min 485;
+#X floatatom 20 314 0 0 0 0 - - -;
+#X obj 147 227 dbtorms;
+#X floatatom 147 247 0 0 0 0 - - -;
+#X obj 82 289 expr (exp((2.302585092994*0.05)*($f1-100)));
+#X text 18 116 On a scale of zero to 100 decibels \, the [dbtorms]
+produces exponential values between 0 and 1;
+#X msg 20 181 0;
+#X msg 53 181 100;
+#X obj 57 249 sel 0;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [dbtorms];
+#X text 18 92 (exp((2.302585092994 * 0.05) * (db_value - 100)) = RMS
+;
+#X text 18 37 [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 3 0 4 0;
+#X connect 3 0 8 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 165 207 pd understanding_dbtorms;
-#X text 76 189 -- Decibels to RMS converter.;
-#X text 76 236 -- RMS to Decibels converter.;
-#X floatatom 22 337 0 0 0 0 - - -;
-#X floatatom 22 382 0 0 0 0 - - -;
-#X floatatom 22 293 0 0 0 0 - - -;
-#X obj 22 314 dbtopow;
-#X obj 22 361 powtodb;
-#N canvas 349 60 423 452 understanding_rmstodb 0;
-#N canvas 0 22 452 302 What_is_a_decibel? 0;
+#X connect 4 1 14 0;
+#X connect 5 0 7 0;
+#X connect 6 0 10 0;
+#X connect 8 0 9 0;
+#X connect 10 0 7 0;
+#X connect 12 0 3 0;
+#X connect 13 0 3 0;
+#X connect 14 0 5 0;
+#X connect 14 1 6 0;
+#X restore 23 189 pd understanding_dbtorms;
+#X floatatom 180 338 0 0 0 0 - - -;
+#X floatatom 180 383 0 0 0 0 - - -;
+#X floatatom 180 294 0 0 0 0 - - -;
+#X obj 180 315 dbtopow;
+#X obj 180 362 powtodb;
+#N canvas 13 87 428 440 understanding_rmstodb 0;
+#N canvas 4 161 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
@@ -388,8 +405,8 @@ 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 restore 21 383 pd What_is_a_decibel?;
+#N canvas 3 246 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.
@@ -400,41 +417,42 @@ amplitude (decibels) more than we perceive changes in RMS levels.;
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
+#X restore 21 406 pd What_does_RMS_mean?;
+#X text 18 157 Example:;
+#X floatatom 21 179 0 0 0 0 - - -;
+#X floatatom 21 345 0 0 0 0 - - -;
+#X floatatom 148 279 0 0 0 0 - - -;
+#X msg 65 201 0;
+#X text 18 107 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 163 253 pd understanding_rmstodb;
-#X text 76 315 -- Decibels to power converter.;
-#X text 76 362 -- 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 obj 148 257 rmstodb;
+#X obj 21 279 max 0;
+#X obj 21 323 max 0;
+#X obj 21 301 expr (100+((20/2.302585092994)*log($f1)));
+#X obj 21 201 / 1000;
+#X floatatom 21 233 0 0 0 0 - - -;
+#X msg 98 201 1;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [rmstodb];
+#X text 18 82 (100 + ((20/2.302585092994) * log(RMS_value)));
+#X text 18 37 [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 connect 3 0 12 0;
+#X connect 6 0 13 0;
+#X connect 8 0 5 0;
+#X connect 9 0 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 0;
+#X connect 12 0 13 0;
+#X connect 13 0 8 0;
+#X connect 13 0 9 0;
+#X connect 14 0 13 0;
+#X restore 23 236 pd understanding_rmstodb;
+#N canvas 7 22 428 333 understanding_dbtopow 0;
+#N canvas 0 46 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
@@ -449,11 +467,11 @@ 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 restore 22 267 pd What_is_a_decibel?;
+#X floatatom 22 128 0 0 0 0 - - -;
+#X floatatom 22 234 0 0 0 0 - - -;
+#X floatatom 149 167 0 0 0 0 - - -;
+#N canvas 3 96 442 209 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
@@ -462,24 +480,27 @@ a good reason -- I just don't know the reason.;
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
+#X restore 22 290 pd What_does_power_mean?;
+#X obj 149 145 dbtopow;
+#X obj 22 150 max 0;
+#X obj 22 172 min 870;
+#X text 19 92 exp((2.302585092994 * 0.1) * (db_value - 100)) = Power
+;
+#X obj 22 194 expr exp((2.302585092994*0.1)*($f1-100));
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [dbtopow];
+#X text 19 37 [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 5 0;
#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 164 334 pd understanding_dbtopow;
-#N canvas 348 60 429 458 understanding_powtodb 0;
+#X connect 5 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 9 0;
+#X connect 9 0 2 0;
+#X restore 23 315 pd understanding_dbtopow;
+#N canvas 13 22 428 336 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
@@ -495,12 +516,12 @@ 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 restore 22 274 pd What_is_a_decibel?;
+#X text 19 110 Example:;
+#X floatatom 22 131 0 0 0 0 - - -;
+#X floatatom 22 237 0 0 0 0 - - -;
+#X floatatom 149 170 0 0 0 0 - - -;
+#N canvas 2 68 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
@@ -509,58 +530,33 @@ a good reason -- I just don't know the reason.;
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
+#X restore 22 297 pd What_does_power_mean?;
+#X text 18 37 [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 text 17 84 (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 obj 149 148 powtodb;
+#X obj 22 153 max 0;
+#X obj 22 193 expr (100 + ((10/2.302585092994)*log($f1)));
+#X obj 22 215 max 0;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Understanding [powtodb];
#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 164 381 pd understanding_powtodb;
-#X text 23 419 RELATED OBJECTS;
-#X obj 24 438 dbtopow~;
-#X obj 78 438 dbtorms~;
-#X obj 133 438 rmstodb~;
-#X obj 188 438 powtodb~;
-#X obj 243 438 mtof~;
-#X obj 280 438 ftom~;
-#X obj 24 463 expr;
-#X obj 56 463 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 24 498 pd other_objects_from_related_libraries;
-#X obj 100 463 rmstopow~;
-#X obj 164 465 powtorms~;
-#X obj 230 465 sig~;
-#X obj 264 465 snapshot~;
-#X obj 5 2 cnv 15 750 20 empty empty all_about_acoustic_conversions
-20 10 1 18 -233017 -66577 0;
-#X obj 721 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
-;
-#X text 389 41 Please note: I have no idea why it's necessary for Pd
+#X restore 23 362 pd understanding_powtodb;
+#X text 215 63 - MIDI note number to frequency;
+#X text 215 110 - Frequency to MIDI note number;
+#X text 234 190 - Decibels to RMS;
+#X text 234 237 - RMS to Decibels;
+#X text 234 316 - Decibels to power;
+#X text 234 363 - power to Decibels;
+#X text 21 412 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
@@ -569,15 +565,57 @@ 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 connect 0 0 1 0;
-#X connect 1 0 2 0;
+#X obj 1 548 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
+14 -233017 -33289 0;
+#N canvas 323 229 494 344 META 0;
+#X text 12 105 HELP_PATCH_AUTHORS Dave Sabine \, May 5 \, 2003 . Jonathan
+Wilkes revised the patch to conform to the PDDP template for Pd version
+0.42.;
+#X text 12 45 KEYWORDS conversion;
+#X text 12 85 LIBRARY PDDP;
+#X text 12 5 GENRE all_about_pd;
+#X text 12 25 NAME mtof ftom dbtorms rmstodb dbtopow powtodb;
+#X text 12 65 DESCRIPTION examples of objects that do conversions between
+acoustic units;
+#X restore 392 550 pd META;
+#N canvas 12 355 428 212 Related_objects 0;
+#X obj 23 42 dbtopow~;
+#X obj 77 42 dbtorms~;
+#X obj 132 42 rmstodb~;
+#X obj 187 42 powtodb~;
+#X obj 242 42 mtof~;
+#X obj 279 42 ftom~;
+#X obj 23 69 expr;
+#X obj 58 69 expr~;
+#X obj 98 69 sig~;
+#X obj 132 69 snapshot~;
+#X text 150 99 [rmstopow~];
+#X text 230 99 [powtorms~];
+#X text 150 120 [b2db];
+#X text 193 120 [tmtof];
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 20 10
+1 18 -261106 -33289 0;
+#X text 7 1 Acoustic Objects- Related Objects;
+#X obj 21 122 pddp/helplink iemlib/db2v;
+#X obj 21 142 pddp/helplink iemlib/f2note;
+#X obj 21 162 pddp/helplink iemlib/t3_sig~;
+#X obj 21 182 pddp/helplink iemlib/m2f~;
+#X obj 21 103 pddp/pddplink all_about_externals.pd -text _________
+;
+#X obj 21 103 pddp/pddplink all_about_externals.pd -text Externals
+;
+#X text 152 135 Which library for these four?;
+#X restore 103 550 pd Related_objects;
+#X obj 6 550 pddp/pddplink pddp/help.pd -text help;
#X connect 2 0 3 0;
-#X connect 8 0 0 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 8 0 2 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;
+#X connect 15 0 19 0;
+#X connect 17 0 18 0;
+#X connect 18 0 15 0;
+#X connect 19 0 16 0;