compressor~.pd 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. #N canvas 585 225 590 290 10;
  2. #N canvas 0 23 557 246 hv.envfollow 0;
  3. #X obj 27 145 -~;
  4. #X obj 27 124 sig~ 1;
  5. #X obj 12 187 rpole~;
  6. #X obj 283 12 loadbang;
  7. #X obj 283 33 samplerate~;
  8. #X obj 78 68 *;
  9. #X obj 12 166 *~;
  10. #X obj 12 213 outlet~;
  11. #X obj 192 68 *;
  12. #X text 251 103 temp = abs(in);
  13. #X text 251 163 else;
  14. #X obj 165 110 r~ \$0-env;
  15. #X obj 68 201 s~ \$0-env;
  16. #X text 261 143 env = temp + attack_coeff * (env - temp);
  17. #X text 261 183 env = temp + release_coeff * (env - temp);
  18. #X obj 283 54 / 1000;
  19. #X text 251 80 http://www.musicdsp.org/archive.php?classid=2#97;
  20. #X obj 12 42 inlet~;
  21. #X obj 12 89 abs~;
  22. #N canvas 0 23 427 275 coeff 0;
  23. #X obj 53 55 inlet;
  24. #X obj 53 150 exp;
  25. #X msg 53 172 \$1 10;
  26. #X obj 53 194 line~;
  27. #X obj 53 125 /;
  28. #X msg 53 103 -4.60517 \$1;
  29. #X obj 53 82 max 1;
  30. #X obj 53 216 outlet~;
  31. #X text 109 217 coeff = exp(-1 / (Fs * time_ms));
  32. #X connect 0 0 6 0;
  33. #X connect 1 0 2 0;
  34. #X connect 2 0 3 0;
  35. #X connect 3 0 7 0;
  36. #X connect 4 0 1 0;
  37. #X connect 5 0 4 0;
  38. #X connect 6 0 5 0;
  39. #X restore 192 89 pd coeff;
  40. #N canvas 0 23 427 275 coeff 0;
  41. #X obj 53 55 inlet;
  42. #X obj 53 150 exp;
  43. #X msg 53 172 \$1 10;
  44. #X obj 53 194 line~;
  45. #X obj 53 125 /;
  46. #X msg 53 103 -4.60517 \$1;
  47. #X obj 53 82 max 1;
  48. #X obj 53 216 outlet~;
  49. #X text 109 217 coeff = exp(-1 / (Fs * time_ms));
  50. #X connect 0 0 6 0;
  51. #X connect 1 0 2 0;
  52. #X connect 2 0 3 0;
  53. #X connect 3 0 7 0;
  54. #X connect 4 0 1 0;
  55. #X connect 5 0 4 0;
  56. #X connect 6 0 5 0;
  57. #X restore 78 89 pd coeff;
  58. #X text 251 122 if (tmp > env);
  59. #N canvas 522 86 480 241 hv.multiplex 0;
  60. #X obj 38 197 outlet~;
  61. #N canvas 467 216 159 96 @hv_obj 0;
  62. #X obj 60 18 inlet~;
  63. #X obj 15 18 inlet~;
  64. #X obj 15 65 outlet~;
  65. #X obj 15 42 *~;
  66. #X connect 0 0 3 1;
  67. #X connect 1 0 3 0;
  68. #X connect 3 0 2 0;
  69. #X restore 38 112 pd @hv_obj __and~f;
  70. #N canvas 467 216 188 166 @hv_obj 0;
  71. #X obj 79 11 inlet~;
  72. #X obj 31 11 inlet~;
  73. #X obj 16 112 outlet~;
  74. #X obj 16 37 sig~ 1;
  75. #X obj 16 61 -~;
  76. #X obj 16 89 *~;
  77. #X connect 0 0 5 1;
  78. #X connect 1 0 4 1;
  79. #X connect 3 0 4 0;
  80. #X connect 4 0 5 0;
  81. #X connect 5 0 2 0;
  82. #X restore 162 114 pd @hv_obj __andnot~f;
  83. #N canvas 538 372 182 89 @hv_obj 0;
  84. #X obj 66 18 inlet~;
  85. #X obj 15 18 inlet~;
  86. #X obj 15 65 outlet~;
  87. #X obj 15 42 +~, f 9;
  88. #X connect 0 0 3 1;
  89. #X connect 1 0 3 0;
  90. #X connect 3 0 2 0;
  91. #X restore 38 157 pd @hv_obj __or~f;
  92. #X obj 285 34 inlet~ lhs;
  93. #X obj 384 34 inlet~ rhs;
  94. #X obj 38 34 inlet~ input-a;
  95. #X obj 162 34 inlet~ input-b;
  96. #N canvas 0 23 144 197 @hv_obj 0;
  97. #X obj 23 69 -~;
  98. #X obj 23 94 clip~ -1e-37 0;
  99. #X obj 23 18 inlet~;
  100. #X obj 67 19 inlet~;
  101. #X obj 23 159 outlet~;
  102. #X obj 23 136 *~ 1e+37;
  103. #X obj 23 44 min~;
  104. #X obj 23 115 +~ 1e-37;
  105. #X connect 0 0 1 0;
  106. #X connect 1 0 7 0;
  107. #X connect 2 0 6 0;
  108. #X connect 3 0 6 1;
  109. #X connect 3 0 0 1;
  110. #X connect 5 0 4 0;
  111. #X connect 6 0 0 0;
  112. #X connect 7 0 5 0;
  113. #X restore 285 73 pd @hv_obj __gt~f;
  114. #X connect 1 0 3 0;
  115. #X connect 2 0 3 1;
  116. #X connect 3 0 0 0;
  117. #X connect 4 0 8 0;
  118. #X connect 5 0 8 1;
  119. #X connect 6 0 1 0;
  120. #X connect 7 0 2 1;
  121. #X connect 8 0 2 0;
  122. #X connect 8 0 1 1;
  123. #X restore 78 131 pd hv.multiplex;
  124. #X obj 78 42 inlet;
  125. #X obj 192 42 inlet;
  126. #X text 192 22 release (ms);
  127. #X text 78 22 attack (ms);
  128. #X connect 0 0 6 1;
  129. #X connect 1 0 0 0;
  130. #X connect 2 0 7 0;
  131. #X connect 2 0 12 0;
  132. #X connect 3 0 4 0;
  133. #X connect 4 0 15 0;
  134. #X connect 5 0 20 0;
  135. #X connect 6 0 2 0;
  136. #X connect 8 0 19 0;
  137. #X connect 11 0 22 3;
  138. #X connect 15 0 5 1;
  139. #X connect 15 0 8 1;
  140. #X connect 17 0 18 0;
  141. #X connect 18 0 6 0;
  142. #X connect 18 0 22 2;
  143. #X connect 19 0 22 1;
  144. #X connect 20 0 22 0;
  145. #X connect 22 0 0 1;
  146. #X connect 22 0 2 1;
  147. #X connect 23 0 5 0;
  148. #X connect 24 0 8 0;
  149. #X restore 27 112 pd hv.envfollow;
  150. #X obj 12 31 inlet~;
  151. #X obj 27 133 -~;
  152. #X obj 131 77 inlet;
  153. #X obj 131 98 + 100;
  154. #X obj 131 119 dbtorms;
  155. #X obj 27 154 *~;
  156. #X msg 187 119 1 \$1;
  157. #X obj 187 140 /;
  158. #X obj 187 98 inlet;
  159. #X obj 27 175 +~;
  160. #X obj 27 196 /~;
  161. #X obj 12 238 *~;
  162. #X obj 70 31 inlet;
  163. #X obj 114 31 inlet;
  164. #X obj 12 259 outlet~;
  165. #X text 12 11 inlet;
  166. #X text 70 11 attack;
  167. #X text 114 11 release;
  168. #X text 131 57 threshold;
  169. #X text 187 78 ratio;
  170. #X obj 197 13 loadbang;
  171. #X obj 197 34 f \$1;
  172. #X obj 247 34 f \$2;
  173. #X obj 287 34 f \$3;
  174. #X obj 347 34 f \$4;
  175. #X obj 27 217 ma.tanh~;
  176. #X connect 0 0 2 0;
  177. #X connect 0 0 11 1;
  178. #X connect 1 0 12 0;
  179. #X connect 1 0 0 0;
  180. #X connect 2 0 6 0;
  181. #X connect 3 0 4 0;
  182. #X connect 4 0 5 0;
  183. #X connect 5 0 2 1;
  184. #X connect 5 0 10 1;
  185. #X connect 6 0 10 0;
  186. #X connect 7 0 8 0;
  187. #X connect 8 0 6 1;
  188. #X connect 9 0 7 0;
  189. #X connect 10 0 11 0;
  190. #X connect 11 0 26 0;
  191. #X connect 12 0 15 0;
  192. #X connect 13 0 0 1;
  193. #X connect 14 0 0 2;
  194. #X connect 21 0 22 0;
  195. #X connect 21 0 23 0;
  196. #X connect 21 0 25 0;
  197. #X connect 21 0 24 0;
  198. #X connect 22 0 0 1;
  199. #X connect 23 0 0 2;
  200. #X connect 24 0 4 0;
  201. #X connect 25 0 7 0;
  202. #X connect 26 0 12 1;