Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

added new implementation of compressor #11

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,877 changes: 5,848 additions & 29 deletions hv.compressor-help.pd

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions hv.compressor.mhroth-help.pd
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#N canvas 399 22 568 292 10;
#X obj 27 74 osc~ 440;
#X msg 268 130 threshold \$1;
#X floatatom 268 108 5 0 0 0 - - -, f 5;
#X obj 75 192 env~;
#X obj 27 193 env~;
#X obj 27 223 - 100;
#X floatatom 27 245 5 0 0 0 - - -, f 5;
#X obj 75 222 - 100;
#X floatatom 75 244 5 0 0 0 - - -, f 5;
#X floatatom 229 65 5 0 0 0 - - -, f 5;
#X msg 229 84 ratio \$1;
#X text 118 244 dB;
#X text 366 142 // arg \$2: ratio;
#X obj 75 165 hv.compressor.mhroth 60 2 40 40;
#X text 366 163 // arg \$1: attack (ms);
#X text 365 183 // arg \$2: release (ms);
#X text 368 120 // arg \$1: threshold (dBV+100);
#X text 25 25 mono compressor \, threshold \, ratio \, attack \, and
release settings;
#X connect 0 0 4 0;
#X connect 0 0 13 0;
#X connect 1 0 13 1;
#X connect 2 0 1 0;
#X connect 3 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X connect 9 0 10 0;
#X connect 10 0 13 1;
#X connect 13 0 3 0;
79 changes: 79 additions & 0 deletions hv.compressor.mhroth.pd
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#N canvas 269 23 450 451 10;
#X obj 258 236 inlet;
#X obj 46 149 r \$0-threshold;
#X obj 16 401 *~;
#X obj 16 14 inlet~ input;
#X obj 258 256 hv.dispatch \$0 ratio 1;
#X obj 258 277 hv.dispatch \$0 threshold 70;
#X obj 31 196 -~;
#X obj 31 218 max~ 0;
#X obj 31 378 exp~;
#X obj 42 239 r \$0-ratio;
#X obj 31 356 *~;
#X obj 46 173 - 100;
#X obj 42 262 t a a;
#X obj 54 307 /;
#X obj 42 285 - 1;
#X obj 54 331 * -0.115129;
#X obj 258 298 hv.dispatch \$0 attack 40;
#X obj 74 37 r \$0-attack;
#X obj 118 58 r \$0-release;
#X obj 16 425 outlet~;
#X text 76 218 hard knee at the threshold;
#N canvas 620 157 160 113 @hv_obj 0;
#X obj 16 9 inlet~;
#X obj 16 76 outlet~;
#X obj 16 54 log~;
#X obj 37 31 sig~ 2;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X restore 31 104 pd @hv_obj __log2~f;
#X obj 31 126 *~ 6.0206;
#X obj 258 321 hv.dispatch \$0 release 40;
#X obj 260 191 f \$1;
#X obj 277 145 f \$2;
#X obj 260 10 loadbang;
#X obj 260 32 t a a a a;
#X obj 260 212 s \$0-threshold;
#X obj 277 167 s \$0-ratio;
#X obj 294 101 f \$3;
#X obj 310 56 f \$4;
#X obj 293 123 s \$0-attack;
#X obj 310 78 s \$0-relase;
#X obj 31 81 hv.envfollow.v2;
#X text 92 126 dBV of envelope;
#X text 58 196 compare env to threshold (dBV);
#X connect 0 0 4 0;
#X connect 1 0 11 0;
#X connect 2 0 19 0;
#X connect 3 0 2 0;
#X connect 3 0 34 0;
#X connect 4 0 5 0;
#X connect 5 0 16 0;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 8 0 2 1;
#X connect 9 0 12 0;
#X connect 10 0 8 0;
#X connect 11 0 6 1;
#X connect 12 0 14 0;
#X connect 12 1 13 1;
#X connect 13 0 15 0;
#X connect 14 0 13 0;
#X connect 15 0 10 1;
#X connect 16 0 23 0;
#X connect 17 0 34 1;
#X connect 18 0 34 2;
#X connect 21 0 22 0;
#X connect 22 0 6 0;
#X connect 24 0 28 0;
#X connect 25 0 29 0;
#X connect 26 0 27 0;
#X connect 27 0 24 0;
#X connect 27 1 25 0;
#X connect 27 2 30 0;
#X connect 27 3 31 0;
#X connect 30 0 32 0;
#X connect 31 0 33 0;
#X connect 34 0 21 0;
182 changes: 98 additions & 84 deletions hv.compressor.pd
Original file line number Diff line number Diff line change
@@ -1,85 +1,99 @@
#N canvas 399 22 455 583 10;
#X obj 145 222 t b f;
#X obj 76 282 f;
#X obj 76 312 /;
#X obj 76 252 -;
#X obj 31 176 f;
#X obj 135 134 t b f f;
#X obj 76 342 +;
#X obj 266 16 inlet;
#X obj 159 70 t b b;
#X obj 145 199 r \$0-ratio;
#X obj 135 14 r \$0-threshold;
#X obj 31 55 env~ 256;
#X obj 31 139 t f f;
#N canvas 639 436 358 251 gainreduc 0;
#X obj 32 94 -;
#X obj 32 114 / 20;
#X obj 32 134 t b f;
#X msg 32 154 10;
#X obj 32 174 pow;
#X obj 32 34 inlet output;
#X obj 47 64 inlet input;
#X obj 32 206 outlet gain-reduction;
#X text 70 172 gr = 20*log10(output - input);
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#N canvas 356 23 526 691 10;
#X obj 315 56 inlet;
#X obj 28 52 inlet~ input;
#X obj 28 633 outlet~;
#X obj 43 179 r \$0-threshold;
#X obj 256 617 hv.dispatch \$0 knee 10;
#X obj 315 106 hv.dispatch \$0 threshold -20;
#X obj 315 86 hv.dispatch \$0 ratio 5;
#X obj 43 201 clip -100 0;
#X obj 43 247 line~;
#X obj 58 466 line~;
#X obj 315 126 hv.dispatch \$0 rms 1;
#X obj 205 124 r \$0-rms;
#N canvas 0 22 296 300 rms/peak 0;
#X obj 117 86 env~ 256;
#X obj 117 132 sig~;
#X msg 193 86 \$1 10;
#X obj 193 108 line~;
#X obj 26 25 inlet~;
#X obj 26 260 outlet~;
#X obj 193 28 inlet;
#X obj 117 188 -~;
#X obj 117 214 *~;
#X text 93 260 linear xfade \, y = a + x(b - a);
#X obj 117 108 - 100;
#X obj 26 80 abs~;
#X obj 26 132 rmstodb~;
#X obj 26 154 -~ 100;
#X connect 0 0 10 0;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 2 1 4 1;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 0 0;
#X connect 6 0 0 1;
#X restore 31 402 pd gainreduc;
#X obj 31 466 line~;
#X text 108 312 Gain reduction;
#X obj 31 422 min 1;
#X obj 31 222 moses 70;
#X obj 91 222 t f f;
#X obj 31 93 max;
#X obj 16 502 *~;
#X obj 16 532 outlet~ leftOutput;
#X text 78 445 ms attack/release;
#X obj 159 100 f \$1;
#X obj 195 100 f \$2;
#X obj 159 48 loadbang;
#X msg 31 444 \$1 40;
#X obj 16 14 inlet~ input;
#X obj 31 372 t a;
#X obj 266 36 hv.dispatch \$0 ratio 1;
#X obj 266 56 hv.dispatch \$0 threshold 70;
#X connect 0 0 1 0;
#X connect 0 1 2 1;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 17 0;
#X connect 5 0 4 0;
#X connect 5 1 17 1;
#X connect 5 2 18 0;
#X connect 6 0 28 0;
#X connect 7 0 29 0;
#X connect 8 0 23 0;
#X connect 8 1 24 0;
#X connect 9 0 0 0;
#X connect 10 0 5 0;
#X connect 11 0 19 0;
#X connect 12 0 4 0;
#X connect 12 1 13 1;
#X connect 13 0 16 0;
#X connect 14 0 20 1;
#X connect 16 0 26 0;
#X connect 17 0 28 0;
#X connect 17 1 3 0;
#X connect 18 0 3 1;
#X connect 18 1 6 1;
#X connect 19 0 12 0;
#X connect 20 0 21 0;
#X connect 23 0 5 0;
#X connect 24 0 0 0;
#X connect 25 0 8 0;
#X connect 26 0 14 0;
#X connect 27 0 20 0;
#X connect 27 0 11 0;
#X connect 28 0 13 0;
#X connect 29 0 30 0;
#X connect 3 0 8 1;
#X connect 4 0 0 0;
#X connect 4 0 11 0;
#X connect 6 0 2 0;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 10 0 1 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 5 0;
#X connect 13 0 7 1;
#X restore 142 160 pd rms/peak;
#X text 192 467 slope = 1 - (1 / ratio);
#X obj 43 390 -~;
#X obj 43 487 *~;
#X obj 43 522 min~ 0;
#X obj 28 598 *~;
#X obj 43 567 dbtorms~;
#X obj 43 544 +~ 100;
#X obj 315 246 r \$0-ratio;
#X msg 315 289 1 \$1;
#X obj 315 311 /;
#X obj 315 268 max 1;
#X msg 315 333 1 \$1;
#X obj 315 355 -;
#X obj 315 377 s \$0-slope;
#X obj 58 424 r \$0-slope;
#X obj 176 198 r \$0-attack;
#X obj 211 229 r \$0-release;
#X obj 315 146 hv.dispatch \$0 attack 0;
#X obj 315 166 hv.dispatch \$0 release 0;
#X text 192 487 gain_dB = slope * (threshold_dB - env_dB);
#X text 192 507 out = in * toAmp(min(gain_dB \, 0));
#X obj 43 223 pack f 10;
#X obj 58 444 pack f 10;
#X text 246 589 TODO:;
#X obj 142 265 hv.envfollow;
#X connect 0 0 6 0;
#X connect 1 0 12 0;
#X connect 1 0 17 0;
#X connect 3 0 7 0;
#X connect 5 0 10 0;
#X connect 6 0 5 0;
#X connect 7 0 34 0;
#X connect 8 0 14 0;
#X connect 9 0 15 1;
#X connect 10 0 30 0;
#X connect 11 0 12 1;
#X connect 12 0 37 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 19 0;
#X connect 17 0 2 0;
#X connect 18 0 17 1;
#X connect 19 0 18 0;
#X connect 20 0 23 0;
#X connect 21 0 22 0;
#X connect 22 0 24 0;
#X connect 23 0 21 0;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 27 0 35 0;
#X connect 28 0 37 1;
#X connect 29 0 37 2;
#X connect 30 0 31 0;
#X connect 34 0 8 0;
#X connect 35 0 9 0;
#X connect 37 0 14 1;
36 changes: 0 additions & 36 deletions hv.compressor2-help.pd

This file was deleted.

Loading