File: dynamics.html

package info (click to toggle)
tap-plugins-doc 20140526-3
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 888 kB
  • ctags: 2
  • sloc: makefile: 2
file content (369 lines) | stat: -rw-r--r-- 13,700 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>TAP-plugins</title>
<meta name="generator" content="GNU Emacs 21.2.1">
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<meta name="description" content="Tom's Audio Processing plugins for
audio engineering on the Linux platform.">
<meta name="keywords" content="TAP-plugins TAP Reverb Editor
Reverberator Equalizer EQ Vibrato Tremolo Echo Tom Szilagyi LADSPA
JACK Plugin Linux Audio">
<meta name="author" content="Tom Szilagyi">
</head>

<body bgcolor=#ffffff>
<table cellpadding="5" cellspacing="0" border="0" bgcolor=#ffffc0
width="100%">
<tr><td>
<font size="+2" color=#004060><b>TAP</b>-plugins</font><br>
<font color=#004060>Tom's Audio Processing plugins</font><br>
<font size="-1" color=#004060><i>for audio engineering on the Linux
platform</i></font>
</td><td>
<center>
<a href="../index.html">[ Home ]</a>
<a href="../ladspa.html">[ LADSPA plugins ]</a>
<a href="../reverbed.html">[ TAP Reverb Editor ]</a>
</center>
<hr>
<center>
<a href="releases.html">[ Releases ]</a>
<a href="general.html">[ General Info ]</a>
<a href="manuals.html">[ Plugin Manuals ]</a>
</center>
</td></tr>
</table>

<blockquote>
<a href="autopan.html">[&nbsp;TAP&nbsp;AutoPanner&nbsp;]</a>
<a href="chorusflanger.html">[&nbsp;TAP&nbsp;Chorus/Flanger&nbsp;]</a>
<a href="deesser.html">[&nbsp;TAP&nbsp;DeEsser&nbsp;]</a>
<a href="dynamics.html">[&nbsp;TAP&nbsp;Dynamics&nbsp;(Mono&nbsp;&&nbsp;Stereo)&nbsp;]</a>
<a href="eq.html">[&nbsp;TAP&nbsp;Equalizer&nbsp;and&nbsp;TAP&nbsp;Equalizer/BW&nbsp;]</a>
<a href="doubler.html">[&nbsp;TAP&nbsp;Fractal&nbsp;Doubler&nbsp;]</a>
<a href="pinknoise.html">[&nbsp;TAP&nbsp;Pink/Fractal&nbsp;Noise&nbsp;]</a>
<a href="pitch.html">[&nbsp;TAP&nbsp;Pitch&nbsp;Shifter&nbsp;]</a>
<a href="reflector.html">[&nbsp;TAP&nbsp;Reflector&nbsp;]</a>
<a href="reverb.html">[&nbsp;TAP&nbsp;Reverberator&nbsp;]</a>
<a href="rotspeak.html">[&nbsp;TAP&nbsp;Rotary&nbsp;Speaker&nbsp;]</a>
<a href="limiter.html">[&nbsp;TAP&nbsp;Scaling&nbsp;Limiter&nbsp;]</a>
<a href="sigmoid.html">[&nbsp;TAP&nbsp;Sigmoid&nbsp;Booster&nbsp;]</a>
<a href="echo.html">[&nbsp;TAP&nbsp;Stereo&nbsp;Echo&nbsp;]</a>
<a href="tremolo.html">[&nbsp;TAP&nbsp;Tremolo&nbsp;]</a>
<a href="tubewarmth.html">[&nbsp;TAP&nbsp;TubeWarmth&nbsp;]</a>
<a href="vibrato.html">[&nbsp;TAP&nbsp;Vibrato&nbsp;]</a>
</blockquote>

<h2>TAP Dynamics (Mono & Stereo)</h2>
<img src="tap_dynamics_m.png" alt="[TAP Dynamics (M) GUI as shown in Ardour]">
<br><br>
<img src="tap_dynamics_st.png" alt="[TAP Dynamics (St) GUI as shown in Ardour]">
<p>
<b>TAP Dynamics</b> is a versatile tool for changing the dynamic
content of your tracks. Currently it supports 15 dynamics transfer
functions, among which there are compressors, limiters, expanders and
noise gates. However, the plugin itself supports arbitrary dynamics
transfer functions, so you may add your own functions as well, without
any actual programming.
</p>
<p>
The plugin comes in two versions: Mono (M) and Stereo (St). This is
needed because independent processing of two channels is not always
desirable in the case of stereo material. The stereo version has an
additional control to set the appropriate mode for stereo processing
(you may still choose to process the two channels independently,
although the same effect is achieved by using the mono version).
</p>

<h3>General information</h3>

<table cellspacing="0" cellpadding="5" border="1">
<tr><th align="left">Unique ID</th><td>2152 (Mono), 2153 (Stereo)</td>
<tr><th align="left">I/O ports</th><td>1 input / 1 output (Mono), 2 inputs / 2 outputs (Stereo)</td>
<tr><th align="left">CPU usage (44.1 kHz)</th><td>1.9% [1]</td>
<tr><th align="left">CPU usage (96 kHz)</th><td>3.9% [1]</td>
<tr><th align="left">Hard RT Capable</th><td>No (see Notes)</td></tr>
<tr><th align="left">In-place operation</th><td>Supported</td>
<tr><th align="left">run_adding() function</th><td>Provided</td>
</table>

[1] When placed on a stereo track with equal settings, the difference
between the results of the mono and stereo version is not significant.


<h3>Usage tips</h3>
<p>
The Attack and Release controls set the parameters for the envelope
computation code. By setting smaller values, the envelope level will
follow the actual momentary volume level more accurately; by setting
larger values, envelopes will be more sluggish. As a rule of thumb,
the release time should be about 2-4 times as much as the attack time,
but this rule is very weak: don't hesitate to set anything else if
that is what you need.
</p>
<p>
Setting small attack/release times means that the plugin will spring
into action on every beat. Setting relatively long attack/release
times (above 200-300 ms) yield an effect that tends to compensate for
volume changes in a track, and lets shorter changes (beats) get
through.
</p>
<p>
The envelope level determines the amount of gain applied to the input
signal, with respect to the dynamics function set. There will be times
when you need to modify the threshold/limit levels of a function to
get the best results. The Offset Gain control is provided for this
reason. By setting this control, you specify the gain with which the
whole dynamics function is shifted horizontally, in the negative
direction. To put it another way, you may think of this control like a
gain control applied to the input signal just before it reaches the
envelope stage; however, note that this gain will not show up in the
indicated envelope levels. Let's take an example: if you set the
Function to, say, "Hard limiter at -12 dB", and set an Offset Gain of
+6 dB, the result will be a hard limiter at -18 dB. Use this control
to adjust the chosen function to the actual level of your track.
</p>
<p>
The Stereo version has an additional control: Stereo Mode. It has
three values: Independent, Average and Peak. This setting controls how
the envelope levels are used to determine the needed gain adjustment.
When in Independent mode, the two envelope levels control the two
channel's gains independently. In Average mode, the average of the two
envelope levels is computed and the gain determined by this average
level is applied to both input channels. Peak mode is the same as
Average mode, but the greater envelope level is taken instead of the
average of the two envelope levels.
</p>
<p>
Generally, you will want to use Average or Peak mode on a stereo mix
in order to retain stereo balance. Independent mode tends to cancel
out larger volume differences between the two channels; of course,
this may be just what you want.
</p>

<h3>Dynamics transfer functions</h3>
<p>
The plots of the dynamics functions are shown below. The identity
function (which always yields zero gain modification) is plot as a
yellow line. The actual function's plot is red. At any input level,
the gain modification is the vertical distance between the yellow and
red curves.
</p>
<table cellspacing="0" cellpadding="5" border="1">
<tr><th>No. </th><th>Dynamics function</th></tr>

<tr><td valign="top">0</td><td>
<img src="tap_dynamics_00.png" alt="Dynamics function no. 0">
</td></tr>

<tr><td valign="top">1</td><td>
<img src="tap_dynamics_01.png" alt="Dynamics function no. 1">
</td></tr>

<tr><td valign="top">2</td><td>
<img src="tap_dynamics_02.png" alt="Dynamics function no. 2">
</td></tr>

<tr><td valign="top">3</td><td>
<img src="tap_dynamics_03.png" alt="Dynamics function no. 3">
</td></tr>

<tr><td valign="top">4</td><td>
<img src="tap_dynamics_04.png" alt="Dynamics function no. 4">
</td></tr>

<tr><td valign="top">5</td><td>
<img src="tap_dynamics_05.png" alt="Dynamics function no. 5">
</td></tr>

<tr><td valign="top">6</td><td>
<img src="tap_dynamics_06.png" alt="Dynamics function no. 6">
</td></tr>

<tr><td valign="top">7</td><td>
<img src="tap_dynamics_07.png" alt="Dynamics function no. 7">
</td></tr>

<tr><td valign="top">8</td><td>
<img src="tap_dynamics_08.png" alt="Dynamics function no. 8">
</td></tr>

<tr><td valign="top">9</td><td>
<img src="tap_dynamics_09.png" alt="Dynamics function no. 9">
</td></tr>

<tr><td valign="top">10</td><td>
<img src="tap_dynamics_10.png" alt="Dynamics function no. 10">
</td></tr>

<tr><td valign="top">11</td><td>
<img src="tap_dynamics_11.png" alt="Dynamics function no. 11">
</td></tr>

<tr><td valign="top">12</td><td>
<img src="tap_dynamics_12.png" alt="Dynamics function no. 12">
</td></tr>

<tr><td valign="top">13</td><td>
<img src="tap_dynamics_13.png" alt="Dynamics function no. 13">
</td></tr>

<tr><td valign="top">14</td><td>
<img src="tap_dynamics_14.png" alt="Dynamics function no. 14">
</td></tr>

</table>

<br><br>

<table cellspacing="0" cellpadding="5" border"1" bgcolor="#f0f0f0">
<tr><td>
<h3>How to add a new dynamics function</h3>
<p>
If you want to add a new function, here is how to do it. If you are
not interested in creating your own functions, you can safely skip
this boxed section.
</p>
<p>
You have to specify the following parameters in order to describe a
dynamics transfer function.
</p>
<p>
<i>(a)</i> The number of breakpoints on the input/output plane (the
maximum number is 20).
<br>
<i>(b)</i> For each breakpoint, the input (X) and output (Y) values
are needed. Input coordinates must be greater or equal to -80 dB,
output coordinates may be arbitrary.
<br>
</p>
<p>
Function data is described in the file
<code>tap_dynamics_presets.h</code> in a structure written in C
syntax. But don't be scared, you don't have to be a C programmer to be
able to add a new function. Just follow the instructions.
</p>
<p>
First of all, at the top of the file you find this:<br><br>
<code>/* Number of dynamics presets */<br>
#define NUM_MODES 15</code><br><br>
It is important that this number always equals to the functions
described in the file. For this reason, you have to increase this
value if you add a new preset.
</p>
<p>
Below is an existing function, as it looks in the file. Note that
fractional numbers are given in C float format. This means that a
decimal dot is found in every number ( <code>.0</code> is appended if
it happens to be an integer) and it is ended with the letter
<code>f</code>.
<br><br>

<code>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        { /* Compressor/Gate */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                5,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        {-80.0f, -105.0f},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        {-62.0f, -80.0f},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        {-15.4f, -15.4f},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        {0.0f, -12.0f},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                        {20.0f, -7.6f},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        },<br>
</code><br><br>

This function consists of 5 breakpoints <i>(a)</i>.  Each breakpoint
has two coordinates, the first value is the input, the second is the
output
<i>(b)</i>.
</p>
<p>
When you have designed a new function, all you have to do is append it
in a form shown above, to the end of
<code>tap_dynamics_presets.h</code>, but before the last closing
<code>};</code> brace. After re-compiling the plugin, your new
dynamics function should be available. (Don't forget to increment the
<code>NUM_MODES</code> constant at the top of the file, as shown
above, or your new function will not show up.)
</p>
<p>
If you have developed a new preset that you think is useful, please
mail it with your name and e-mail address to the author so it can be
included in the next release. You will be given due credit, of course.
</p>

</td><tr>
</table>



<h3>Summary of user controls</h3>

<table cellspacing="0" cellpadding="5" border="1">
<tr><th>name</th><th>min. value</th><th>default value</th><th>max. value</th></tr>

<tr align="center"><td>Attack [ms]</td>
<td>4</td>
<td>128</td>
<td>500</td></tr>
<tr align="center"><td>Release [ms]</td>
<td>4</td>
<td>502</td>
<td>1000</td></tr>
<tr align="center"><td>Offset Gain [dB]</td>
<td>-20</td>
<td>0</td>
<td>20</td></tr>
<tr align="center"><td>Makeup Gain [dB]</td>
<td>-20</td>
<td>0</td>
<td>20</td></tr>
<tr align="center"><td>Stereo Mode [2]</td>
<td>Independent</td>
<td>Independent</td>
<td>Peak</td></tr>
<tr align="center"><td>Function</td>
<td>0</td>
<td>0</td>
<td>14</td></tr>

</table>
[2] This control appears only in the Stereo version.


<h3>Notes</h3>
<p>
The plugin consumes varying amounts of CPU power, depending on the
exact function used. The plugin is by definition not hard RT capable,
although CPU usage tends to be fairly constant. CPU metrics were
measured with the function set to Expander, which is currently the
most complex function.
</p>
</body></html>