From d2eec74a4d8c21aad495ba61539486b24d7ab8dc Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Wed, 9 Oct 2002 10:19:04 +0000 Subject: moved from zexy/zexy to zexy svn path=/trunk/externals/zexy/; revision=169 --- examples/limiter~.pd | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 examples/limiter~.pd (limited to 'examples/limiter~.pd') diff --git a/examples/limiter~.pd b/examples/limiter~.pd new file mode 100644 index 0000000..3749f18 --- /dev/null +++ b/examples/limiter~.pd @@ -0,0 +1,226 @@ +#N canvas 283 98 625 388 8; +#X text 189 15 limiter; +#X text 187 25 ========; +#N canvas 0 0 591 391 creation 0; +#X text 211 152 creates a default limiter (MONO \, 9-samples-buffer) +; +#X text 213 189 creates a limiter(MONO \, 10ms-buffer); +#X text 213 223 creates a limiter (multichannel \, 9-samples-buffer) +; +#X text 216 256 creates a limiter (multichannel \, 1ms-buffer !!); +#X text 82 17 "limiter [] [ [ [...]]]"; +#X text 148 70 creating inlets depends ONLY on the number of arguments +\, not on the arguments themselves... !; +#X text 218 313 creates a limiter (multichannel \, 9-samples-buffer) +; +#X text 113 187 ______________; +#X text 89 150 _________________; +#X text 145 220 _________; +#X text 114 254 ______________; +#X text 199 311 __; +#X obj 23 151 limiter~; +#X obj 23 185 limiter~ 10; +#X obj 22 219 limiter~ 0 1 2 3; +#X obj 22 253 limiter~ 1 2; +#X obj 18 310 limiter~ We need 4 inlets; +#X restore 39 202 page creation; +#N canvas 62 0 762 828 modes 0; +#X text -259 189 MODE 0 : 1-treshold-limiter; +#X text -261 384 MODE 1 : 2-tresholds-limiter; +#X msg 62 255 print; +#X obj 16 316 limiter~; +#X obj 39 141 limiter~; +#X msg 103 123 help; +#X msg 102 104 print; +#X msg 39 32 mode 0; +#X msg 102 31 LIMIT; +#X msg 39 50 mode 1; +#X msg 102 49 CRACK; +#X msg 39 67 mode 2; +#X msg 102 66 COMPRESS; +#X text 172 48 crack limiter (2 tresholds); +#X text 172 66 compressor (1 treshold); +#X text 181 102 context status; +#X text 82 30 ==; +#X text 81 49 ==; +#X text 80 68 ==; +#X msg 77 302 LIMIT; +#X obj 77 286 loadbang; +#X text 171 30 normal limiter (1 treshold) [default]; +#X msg 61 459 print; +#X obj 13 522 limiter~; +#X obj 74 492 loadbang; +#X msg 74 508 CRACK; +#X msg 47 716 print; +#X obj 60 760 loadbang; +#X text -255 590 MODE 2 : compressor; +#X msg 60 776 COMPRESS; +#X msg 52 629 ratio 0.5; +#X text 159 628 set compress-ratio (0.5 == 1:2); +#X text 159 605 set the treshold \, where the compressor should start +to compress; +#X text 162 677 set the compressor (limit/treshold/ratio); +#X text 161 655 set limit/holdtime/releasetime at once; +#X text 163 717 view actual settings; +#X text 147 459 view actual settings; +#X msg 64 188 limit 90; +#X msg 64 211 set 105 40 150; +#X msg 62 404 set 105 40 150; +#X msg 65 426 set2 120 1 10; +#X msg 51 654 set 110 40 150; +#X msg 51 611 treshold 10; +#X msg 50 677 compress 96 88 0.5; +#X text 158 591 set the output-limit; +#X msg 51 593 limit 98; +#X text 148 254 view actual settings; +#X text 149 212 set limit/holdtime/releasetime at once; +#X text 149 185 set output limit; +#X obj -1 790 limiter~; +#X text 145 404 set limiter1 (output-limit/hold-time/release-time) +; +#X text -260 621 the output signal will never become louder than the +specified output-limit.; +#X text -260 643 if the input-signal becomes loader than the input-treshold +\, a compressor will start working \, compressing the dynamic range +by the specified ratio. Signals lesser than the treshold will pass +through uncompressed.; +#X text -231 59 set the limiter~ to one of the 3 modes; +#X text 144 380 set both limits; +#X text -261 220 this is simple : the output will not become bigger +than the specified limit. When the input becomes small enough again +so that this condition is matched even without (positive) amplification +(this is \, when the input signal level falls below the limit) \, the +amplification will increase gradually (depending on hold- & release-time) +towards 1; +#X text 144 427 set limiter2 (input-treshold/hold-time/release-time) +; +#X msg 62 381 limits 100 108; +#X text -260 414 this limiter can be used to handle disgusting things +like cracks \, which are much louder than the "normal" musical signal. +Typically hold- and release-times for the second limiter are far smaller +than those for the first \, to ensure that the disturbance will pass +quite fast (since the crack would disturb the sensation anyhow \, we +do not care much about the distortion caused by a fast limiter). The +treshold for the 2nd limiter must be greater than the ouput-limit (if +not \, the limiter will be reset to MODE 0); +#X text -257 288 all levels (limts/tresholds) should be given in dB +to produce satisfying results (following pd's agreement on the deziBel-scale +\, 100dB are equal to 1 \, 0dB equals 0 \, ...); +#X text 184 123 context(!) help; +#X connect 2 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X connect 9 0 4 0; +#X connect 10 0 4 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 19 0 3 0; +#X connect 20 0 19 0; +#X connect 22 0 23 0; +#X connect 24 0 25 0; +#X connect 25 0 23 0; +#X connect 26 0 49 0; +#X connect 27 0 29 0; +#X connect 29 0 49 0; +#X connect 30 0 49 0; +#X connect 37 0 3 0; +#X connect 38 0 3 0; +#X connect 39 0 23 0; +#X connect 40 0 23 0; +#X connect 41 0 49 0; +#X connect 42 0 49 0; +#X connect 43 0 49 0; +#X connect 45 0 49 0; +#X connect 57 0 23 0; +#X restore 184 201 page modes; +#X msg 338 192 print; +#X obj 385 316 dac~; +#X obj 385 259 *~; +#X obj 416 259 *~; +#X floatatom 401 112 0 0 0; +#X floatatom 482 110 0 0 0; +#X floatatom 440 111 0 0 0; +#X text 437 98 both; +#X text 396 98 left; +#X text 478 98 right; +#X obj 416 206 limiter~ 50 1; +#N canvas 0 153 455 493 tabwrite 0; +#X graph graph1 0 -1 32767 1 130 336 330 196; +#X array array1 32768 float 0; +#X pop; +#X obj 111 63 inlet~; +#X msg 214 78 \; array1 resize 32768; +#X obj 111 85 tabwrite~ array1; +#X obj 151 64 bang~; +#X obj 214 59 loadbang; +#X obj 337 88 block~ 32768 8; +#X connect 1 0 3 0; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X restore 443 318 pd tabwrite; +#X obj 416 317 env~; +#X floatatom 416 335 4 0 0; +#X text 30 184 to learn more about this object \, try these; +#X text 48 301 http://iem.kug.ac.at/~zmoelnig; +#N canvas 59 76 600 400 generator~ 0; +#X obj 86 49 inlet; +#X obj 252 54 inlet; +#X obj 112 229 outlet~; +#X obj 112 185 *~; +#X obj 151 185 *~; +#X obj 122 128 osc~ 440; +#X obj 151 145 osc~ 689.062; +#X obj 112 163 line~; +#X obj 167 162 line~; +#X msg 167 128 \$1 100; +#X msg 112 111 \$1 100; +#X obj 86 97 f; +#X obj 252 98 f; +#X obj 154 229 outlet~; +#X obj 86 72 dbtorms; +#X obj 252 78 dbtorms; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 3 0 2 0; +#X connect 4 0 13 0; +#X connect 5 0 3 1; +#X connect 6 0 4 0; +#X connect 7 0 3 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 14 0 11 0; +#X connect 15 0 12 0; +#X restore 416 161 pd generator~; +#X obj 426 240 nop~; +#X obj 385 240 nop~; +#X text 37 91 it is quite important to delay the original signals before +the limiter-amplification is applied to prevent clicks !!!; +#X text 52 283 1906:forum::für::umläute:2001; +#X text 36 41 limiter will output the amplification-factor that has +to be applied on all INlet~s to get a beautiful limited multichannel-signal +that preserves the balance between the channels; +#X text 401 72 level of the inlets; +#X text 389 83 (give some 190dB and notice no clipping); +#X connect 4 0 14 0; +#X connect 6 0 5 0; +#X connect 7 0 5 1; +#X connect 7 0 16 0; +#X connect 7 0 15 0; +#X connect 8 0 20 0; +#X connect 9 0 20 1; +#X connect 10 0 20 0; +#X connect 10 0 20 1; +#X connect 14 0 7 0; +#X connect 14 0 6 1; +#X connect 16 0 17 0; +#X connect 20 0 14 0; +#X connect 20 0 22 0; +#X connect 20 1 14 1; +#X connect 20 1 21 0; +#X connect 21 0 7 1; +#X connect 22 0 6 0; -- cgit v1.2.1