~ubuntu-branches/ubuntu/dapper/tap-plugins/dapper

« back to all changes in this revision

Viewing changes to doc/ladspa/dynamics.html

  • Committer: Bazaar Package Importer
  • Author(s): Anand Kumria
  • Date: 2005-10-31 18:45:50 UTC
  • Revision ID: james.westby@ubuntu.com-20051031184550-80syq495jzgad34r
Tags: 0.7.0-2
* Include documentation (Closes: #303230)
* Revert change to biquad_run function (Closes: #315575)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 
2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
4
 
 
5
<head>
 
6
<title>TAP-plugins</title>
 
7
<meta name="generator" content="GNU Emacs 21.2.1">
 
8
<meta http-equiv="Content-Type" content="text/html;
 
9
charset=iso-8859-1">
 
10
<meta name="description" content="Tom's Audio Processing plugins for
 
11
audio engineering on the Linux platform.">
 
12
<meta name="keywords" content="TAP-plugins TAP Reverb Editor
 
13
Reverberator Equalizer EQ Vibrato Tremolo Echo Tom Szilagyi LADSPA
 
14
JACK Plugin Linux Audio">
 
15
<meta name="author" content="Tom Szilagyi">
 
16
</head>
 
17
 
 
18
<body bgcolor=#ffffff>
 
19
<table cellpadding="5" cellspacing="0" border="0" bgcolor=#ffffc0
 
20
width="100%">
 
21
<tr><td>
 
22
<font size="+2" color=#004060><b>TAP</b>-plugins</font><br>
 
23
<font color=#004060>Tom's Audio Processing plugins</font><br>
 
24
<font size="-1" color=#004060><i>for audio engineering on the Linux
 
25
platform</i></font>
 
26
</td><td>
 
27
<center>
 
28
<a href="../index.html">[ Home ]</a>
 
29
<a href="../ladspa.html">[ LADSPA plugins ]</a>
 
30
<a href="../reverbed.html">[ TAP Reverb Editor ]</a>
 
31
</center>
 
32
<hr>
 
33
<center>
 
34
<a href="releases.html">[ Releases ]</a>
 
35
<a href="cvs.html">[ CVS ]</a>
 
36
<a href="general.html">[ General Info ]</a>
 
37
<a href="manuals.html">[ Plugin Manuals ]</a>
 
38
</center>
 
39
</td></tr>
 
40
</table>
 
41
 
 
42
<blockquote>
 
43
<a href="autopan.html">[&nbsp;TAP&nbsp;AutoPanner&nbsp;]</a>
 
44
<a href="chorusflanger.html">[&nbsp;TAP&nbsp;Chorus/Flanger&nbsp;]</a>
 
45
<a href="deesser.html">[&nbsp;TAP&nbsp;DeEsser&nbsp;]</a>
 
46
<a href="dynamics.html">[&nbsp;TAP&nbsp;Dynamics&nbsp;(Mono&nbsp;&&nbsp;Stereo)&nbsp;]</a>
 
47
<a href="eq.html">[&nbsp;TAP&nbsp;Equalizer&nbsp;and&nbsp;TAP&nbsp;Equalizer/BW&nbsp;]</a>
 
48
<a href="doubler.html">[&nbsp;TAP&nbsp;Fractal&nbsp;Doubler&nbsp;]</a>
 
49
<a href="pinknoise.html">[&nbsp;TAP&nbsp;Pink/Fractal&nbsp;Noise&nbsp;]</a>
 
50
<a href="pitch.html">[&nbsp;TAP&nbsp;Pitch&nbsp;Shifter&nbsp;]</a>
 
51
<a href="reflector.html">[&nbsp;TAP&nbsp;Reflector&nbsp;]</a>
 
52
<a href="reverb.html">[&nbsp;TAP&nbsp;Reverberator&nbsp;]</a>
 
53
<a href="rotspeak.html">[&nbsp;TAP&nbsp;Rotary&nbsp;Speaker&nbsp;]</a>
 
54
<a href="limiter.html">[&nbsp;TAP&nbsp;Scaling&nbsp;Limiter&nbsp;]</a>
 
55
<a href="sigmoid.html">[&nbsp;TAP&nbsp;Sigmoid&nbsp;Booster&nbsp;]</a>
 
56
<a href="echo.html">[&nbsp;TAP&nbsp;Stereo&nbsp;Echo&nbsp;]</a>
 
57
<a href="tremolo.html">[&nbsp;TAP&nbsp;Tremolo&nbsp;]</a>
 
58
<a href="tubewarmth.html">[&nbsp;TAP&nbsp;TubeWarmth&nbsp;]</a>
 
59
<a href="vibrato.html">[&nbsp;TAP&nbsp;Vibrato&nbsp;]</a>
 
60
</blockquote>
 
61
 
 
62
<h2>TAP Dynamics (Mono & Stereo)</h2>
 
63
<img src="tap_dynamics_m.png" alt="[TAP Dynamics (M) GUI as shown in Ardour]">
 
64
<br><br>
 
65
<img src="tap_dynamics_st.png" alt="[TAP Dynamics (St) GUI as shown in Ardour]">
 
66
<p>
 
67
<b>TAP Dynamics</b> is a versatile tool for changing the dynamic
 
68
content of your tracks. Currently it supports 15 dynamics transfer
 
69
functions, among which there are compressors, limiters, expanders and
 
70
noise gates. However, the plugin itself supports arbitrary dynamics
 
71
transfer functions, so you may add your own functions as well, without
 
72
any actual programming.
 
73
</p>
 
74
<p>
 
75
The plugin comes in two versions: Mono (M) and Stereo (St). This is
 
76
needed because independent processing of two channels is not always
 
77
desirable in the case of stereo material. The stereo version has an
 
78
additional control to set the appropriate mode for stereo processing
 
79
(you may still choose to process the two channels independently,
 
80
although the same effect is achieved by using the mono version).
 
81
</p>
 
82
 
 
83
<h3>General information</h3>
 
84
 
 
85
<table cellspacing="0" cellpadding="5" border="1">
 
86
<tr><th align="left">Unique ID</th><td>2152 (Mono), 2153 (Stereo)</td>
 
87
<tr><th align="left">I/O ports</th><td>1 input / 1 output (Mono), 2 inputs / 2 outputs (Stereo)</td>
 
88
<tr><th align="left">CPU usage (44.1 kHz)</th><td>1.9% [1]</td>
 
89
<tr><th align="left">CPU usage (96 kHz)</th><td>3.9% [1]</td>
 
90
<tr><th align="left">Hard RT Capable</th><td>No (see Notes)</td></tr>
 
91
<tr><th align="left">In-place operation</th><td>Supported</td>
 
92
<tr><th align="left">run_adding() function</th><td>Provided</td>
 
93
</table>
 
94
 
 
95
[1] When placed on a stereo track with equal settings, the difference
 
96
between the results of the mono and stereo version is not significant.
 
97
 
 
98
 
 
99
<h3>Usage tips</h3>
 
100
<p>
 
101
The Attack and Release controls set the parameters for the envelope
 
102
computation code. By setting smaller values, the envelope level will
 
103
follow the actual momentary volume level more accurately; by setting
 
104
larger values, envelopes will be more sluggish. As a rule of thumb,
 
105
the release time should be about 2-4 times as much as the attack time,
 
106
but this rule is very weak: don't hesitate to set anything else if
 
107
that is what you need.
 
108
</p>
 
109
<p>
 
110
Setting small attack/release times means that the plugin will spring
 
111
into action on every beat. Setting relatively long attack/release
 
112
times (above 200-300 ms) yield an effect that tends to compensate for
 
113
volume changes in a track, and lets shorter changes (beats) get
 
114
through.
 
115
</p>
 
116
<p>
 
117
The envelope level determines the amount of gain applied to the input
 
118
signal, with respect to the dynamics function set. There will be times
 
119
when you need to modify the threshold/limit levels of a function to
 
120
get the best results. The Offset Gain control is provided for this
 
121
reason. By setting this control, you specify the gain with which the
 
122
whole dynamics function is shifted horizontally, in the negative
 
123
direction. To put it another way, you may think of this control like a
 
124
gain control applied to the input signal just before it reaches the
 
125
envelope stage; however, note that this gain will not show up in the
 
126
indicated envelope levels. Let's take an example: if you set the
 
127
Function to, say, "Hard limiter at -12 dB", and set an Offset Gain of
 
128
+6 dB, the result will be a hard limiter at -18 dB. Use this control
 
129
to adjust the chosen function to the actual level of your track.
 
130
</p>
 
131
<p>
 
132
The Stereo version has an additional control: Stereo Mode. It has
 
133
three values: Independent, Average and Peak. This setting controls how
 
134
the envelope levels are used to determine the needed gain adjustment.
 
135
When in Independent mode, the two envelope levels control the two
 
136
channel's gains independently. In Average mode, the average of the two
 
137
envelope levels is computed and the gain determined by this average
 
138
level is applied to both input channels. Peak mode is the same as
 
139
Average mode, but the greater envelope level is taken instead of the
 
140
average of the two envelope levels.
 
141
</p>
 
142
<p>
 
143
Generally, you will want to use Average or Peak mode on a stereo mix
 
144
in order to retain stereo balance. Independent mode tends to cancel
 
145
out larger volume differences between the two channels; of course,
 
146
this may be just what you want.
 
147
</p>
 
148
 
 
149
<h3>Dynamics transfer functions</h3>
 
150
<p>
 
151
The plots of the dynamics functions are shown below. The identity
 
152
function (which always yields zero gain modification) is plot as a
 
153
yellow line. The actual function's plot is red. At any input level,
 
154
the gain modification is the vertical distance between the yellow and
 
155
red curves.
 
156
</p>
 
157
<table cellspacing="0" cellpadding="5" border="1">
 
158
<tr><th>No. </th><th>Dynamics function</th></tr>
 
159
 
 
160
<tr><td valign="top">0</td><td>
 
161
<img src="tap_dynamics_00.png" alt="Dynamics function no. 0">
 
162
</td></tr>
 
163
 
 
164
<tr><td valign="top">1</td><td>
 
165
<img src="tap_dynamics_01.png" alt="Dynamics function no. 1">
 
166
</td></tr>
 
167
 
 
168
<tr><td valign="top">2</td><td>
 
169
<img src="tap_dynamics_02.png" alt="Dynamics function no. 2">
 
170
</td></tr>
 
171
 
 
172
<tr><td valign="top">3</td><td>
 
173
<img src="tap_dynamics_03.png" alt="Dynamics function no. 3">
 
174
</td></tr>
 
175
 
 
176
<tr><td valign="top">4</td><td>
 
177
<img src="tap_dynamics_04.png" alt="Dynamics function no. 4">
 
178
</td></tr>
 
179
 
 
180
<tr><td valign="top">5</td><td>
 
181
<img src="tap_dynamics_05.png" alt="Dynamics function no. 5">
 
182
</td></tr>
 
183
 
 
184
<tr><td valign="top">6</td><td>
 
185
<img src="tap_dynamics_06.png" alt="Dynamics function no. 6">
 
186
</td></tr>
 
187
 
 
188
<tr><td valign="top">7</td><td>
 
189
<img src="tap_dynamics_07.png" alt="Dynamics function no. 7">
 
190
</td></tr>
 
191
 
 
192
<tr><td valign="top">8</td><td>
 
193
<img src="tap_dynamics_08.png" alt="Dynamics function no. 8">
 
194
</td></tr>
 
195
 
 
196
<tr><td valign="top">9</td><td>
 
197
<img src="tap_dynamics_09.png" alt="Dynamics function no. 9">
 
198
</td></tr>
 
199
 
 
200
<tr><td valign="top">10</td><td>
 
201
<img src="tap_dynamics_10.png" alt="Dynamics function no. 10">
 
202
</td></tr>
 
203
 
 
204
<tr><td valign="top">11</td><td>
 
205
<img src="tap_dynamics_11.png" alt="Dynamics function no. 11">
 
206
</td></tr>
 
207
 
 
208
<tr><td valign="top">12</td><td>
 
209
<img src="tap_dynamics_12.png" alt="Dynamics function no. 12">
 
210
</td></tr>
 
211
 
 
212
<tr><td valign="top">13</td><td>
 
213
<img src="tap_dynamics_13.png" alt="Dynamics function no. 13">
 
214
</td></tr>
 
215
 
 
216
<tr><td valign="top">14</td><td>
 
217
<img src="tap_dynamics_14.png" alt="Dynamics function no. 14">
 
218
</td></tr>
 
219
 
 
220
</table>
 
221
 
 
222
<br><br>
 
223
 
 
224
<table cellspacing="0" cellpadding="5" border"1" bgcolor="#f0f0f0">
 
225
<tr><td>
 
226
<h3>How to add a new dynamics function</h3>
 
227
<p>
 
228
If you want to add a new function, here is how to do it. If you are
 
229
not interested in creating your own functions, you can safely skip
 
230
this boxed section.
 
231
</p>
 
232
<p>
 
233
You have to specify the following parameters in order to describe a
 
234
dynamics transfer function.
 
235
</p>
 
236
<p>
 
237
<i>(a)</i> The number of breakpoints on the input/output plane (the
 
238
maximum number is 20).
 
239
<br>
 
240
<i>(b)</i> For each breakpoint, the input (X) and output (Y) values
 
241
are needed. Input coordinates must be greater or equal to -80 dB,
 
242
output coordinates may be arbitrary.
 
243
<br>
 
244
</p>
 
245
<p>
 
246
Function data is described in the file
 
247
<code>tap_dynamics_presets.h</code> in a structure written in C
 
248
syntax. But don't be scared, you don't have to be a C programmer to be
 
249
able to add a new function. Just follow the instructions.
 
250
</p>
 
251
<p>
 
252
First of all, at the top of the file you find this:<br><br>
 
253
<code>/* Number of dynamics presets */<br>
 
254
#define NUM_MODES 15</code><br><br>
 
255
It is important that this number always equals to the functions
 
256
described in the file. For this reason, you have to increase this
 
257
value if you add a new preset.
 
258
</p>
 
259
<p>
 
260
Below is an existing function, as it looks in the file. Note that
 
261
fractional numbers are given in C float format. This means that a
 
262
decimal dot is found in every number ( <code>.0</code> is appended if
 
263
it happens to be an integer) and it is ended with the letter
 
264
<code>f</code>.
 
265
<br><br>
 
266
 
 
267
<code>
 
268
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
269
        { /* Compressor/Gate */<br>
 
270
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
271
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
272
                5,<br>
 
273
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
274
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
275
                {<br>
 
276
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
277
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
278
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
279
                        {-80.0f, -105.0f},<br>
 
280
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
281
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
282
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
283
                        {-62.0f, -80.0f},<br>
 
284
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
285
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
286
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
287
                        {-15.4f, -15.4f},<br>
 
288
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
289
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
290
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
291
                        {0.0f, -12.0f},<br>
 
292
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
293
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
294
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
295
                        {20.0f, -7.6f},<br>
 
296
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
297
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
298
                },<br>
 
299
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
300
        },<br>
 
301
</code><br><br>
 
302
 
 
303
This function consists of 5 breakpoints <i>(a)</i>.  Each breakpoint
 
304
has two coordinates, the first value is the input, the second is the
 
305
output
 
306
<i>(b)</i>.
 
307
</p>
 
308
<p>
 
309
When you have designed a new function, all you have to do is append it
 
310
in a form shown above, to the end of
 
311
<code>tap_dynamics_presets.h</code>, but before the last closing
 
312
<code>};</code> brace. After re-compiling the plugin, your new
 
313
dynamics function should be available. (Don't forget to increment the
 
314
<code>NUM_MODES</code> constant at the top of the file, as shown
 
315
above, or your new function will not show up.)
 
316
</p>
 
317
<p>
 
318
If you have developed a new preset that you think is useful, please
 
319
mail it with your name and e-mail address to the author so it can be
 
320
included in the next release. You will be given due credit, of course.
 
321
</p>
 
322
 
 
323
</td><tr>
 
324
</table>
 
325
 
 
326
 
 
327
 
 
328
<h3>Summary of user controls</h3>
 
329
 
 
330
<table cellspacing="0" cellpadding="5" border="1">
 
331
<tr><th>name</th><th>min. value</th><th>default value</th><th>max. value</th></tr>
 
332
 
 
333
<tr align="center"><td>Attack [ms]</td>
 
334
<td>4</td>
 
335
<td>128</td>
 
336
<td>500</td></tr>
 
337
<tr align="center"><td>Release [ms]</td>
 
338
<td>4</td>
 
339
<td>502</td>
 
340
<td>1000</td></tr>
 
341
<tr align="center"><td>Offset Gain [dB]</td>
 
342
<td>-20</td>
 
343
<td>0</td>
 
344
<td>20</td></tr>
 
345
<tr align="center"><td>Makeup Gain [dB]</td>
 
346
<td>-20</td>
 
347
<td>0</td>
 
348
<td>20</td></tr>
 
349
<tr align="center"><td>Stereo Mode [2]</td>
 
350
<td>Independent</td>
 
351
<td>Independent</td>
 
352
<td>Peak</td></tr>
 
353
<tr align="center"><td>Function</td>
 
354
<td>0</td>
 
355
<td>0</td>
 
356
<td>14</td></tr>
 
357
 
 
358
</table>
 
359
[2] This control appears only in the Stereo version.
 
360
 
 
361
 
 
362
<h3>Notes</h3>
 
363
<p>
 
364
The plugin consumes varying amounts of CPU power, depending on the
 
365
exact function used. The plugin is by definition not hard RT capable,
 
366
although CPU usage tends to be fairly constant. CPU metrics were
 
367
measured with the function set to Expander, which is currently the
 
368
most complex function.
 
369
</p>
 
370
 
 
371
 
 
372
<br><hr>
 
373
<center>
 
374
$Id: dynamics.html,v 1.3 2004/08/17 13:05:16 tszilagyi Exp $
 
375
</center>
 
376
</body></html>