mirror of
https://github.com/LMMS/lmms.git
synced 2026-01-23 05:48:03 -05:00
1716 lines
53 KiB
HTML
1716 lines
53 KiB
HTML
<html>
|
|
<head>
|
|
<title>The CAPS Audio Plugin Suite</title>
|
|
<style type=text/css>
|
|
body, table {
|
|
font-family: Helvetica, Tahoma, Geneva, sans-serif;
|
|
}
|
|
|
|
h1, h2 {
|
|
padding-top: 2pt;
|
|
padding-bottom: 2pt;
|
|
border-bottom: solid 1px black;
|
|
sborder-top: solid 1px black;
|
|
sbackground-color: #eeeeee;
|
|
stext-align: center;
|
|
}
|
|
|
|
h3 {
|
|
width: 70%;
|
|
border-bottom: solid 1px #cccccc;
|
|
margin-top: 24pt;
|
|
}
|
|
|
|
h4 {
|
|
width: 70%;
|
|
border-bottom: dotted 1px #dddddd;
|
|
}
|
|
|
|
a {
|
|
font-weight: normal;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
a:visited {
|
|
color: #7f7f00;
|
|
}
|
|
|
|
a:link {
|
|
color: #1d30e7;
|
|
}
|
|
|
|
a.quitte,a.quitte:visited {
|
|
text-decoration: none;
|
|
}
|
|
|
|
a.foot {
|
|
color: #7588ff;
|
|
}
|
|
|
|
td.sm {
|
|
font-size: 90%;
|
|
}
|
|
|
|
td.q {
|
|
padding-left: 20px;
|
|
padding-right: 20px;
|
|
padding-top: 16px;
|
|
padding-bottom: 16px;
|
|
}
|
|
|
|
td.q a, td.q a:visited {
|
|
text-decoration: none;
|
|
color: #ffffff;
|
|
}
|
|
|
|
td.q a.quitte {
|
|
font-size: 16pt;
|
|
}
|
|
|
|
#gray {background-color: #dddddd;}
|
|
#c0 {background-color: #5da0d7;}
|
|
#c1 {background-color: #efaa59;}
|
|
#c2 {background-color: #efcb30;}
|
|
#c3 {background-color: #84a68c;}
|
|
#c4 {background-color: #a80d1b;}
|
|
#c5 {background-color: #7a6fa0;} // originally night magenta
|
|
|
|
sup {
|
|
font-size: 30%;
|
|
}
|
|
|
|
div.foot {
|
|
padding-top: 2pt;
|
|
padding-bottom: 2pt;
|
|
border-top: solid 1px black;
|
|
border-bottom: solid 1px black;
|
|
background-color: #eeeeee;
|
|
}
|
|
|
|
p.attrib {
|
|
font-size: 90%;
|
|
text-align: right;
|
|
}
|
|
|
|
#foot {
|
|
font-size: 90%;
|
|
}
|
|
|
|
#bg {
|
|
//padding-top: 1pt;
|
|
//padding-bottom: 1pt;
|
|
font-size: 120%;
|
|
}
|
|
|
|
#warn {
|
|
color: #ff0000;
|
|
}
|
|
|
|
|
|
h3 {margin-top: 18em;}
|
|
h4 {font-size: 11pt; padding-top: 2em;}
|
|
h5 {font-size: medium; margin-bottom: .5em;}
|
|
p {max-width: 42em;}
|
|
body {margin: 18px;}
|
|
p#foot {border-top: solid 1px black;}
|
|
h3 {font-size: 14pt; border-bottom: solid 1px black;}
|
|
h4 {color: #aa0000; border-bottom: solid 1px black;}
|
|
h4 {margin-top: 21px;margin-bottom: 0px;}
|
|
ul {max-width: 36em; margin-bottom: 1em;}
|
|
ul#plugs {margin-top: 1em; font-size:80%;}
|
|
li.bg {font-size: large;}
|
|
li {margin-bottom: .4em;}
|
|
table {padding-bottom:1em; border-bottom: solid 1px black;margin-bottom: 12px;} </style>
|
|
</head>
|
|
|
|
<body>
|
|
<center>
|
|
<div align=left>
|
|
|
|
<h2>The CAPS Audio Plugin Suite</h2> <table border=0 width=100% cellpadding=0 cellspacing=0>
|
|
<tr>
|
|
<td align=left width=20%>
|
|
<b>Release 0.4.5</b>
|
|
</td>
|
|
<td rowspan=2 align=center>
|
|
<a href=http://quitte.de/dsp/caps.html title="Yes, this page, only guaranteed fresh!">http://quitte.de/dsp/caps.html</a>
|
|
</td>
|
|
<td align=right width=20%>
|
|
<b>Tim Goetze</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align=left>
|
|
March 26, 2011 </td>
|
|
<td align=right>
|
|
<a href=mailto:tim@quitte.de?subject=CAPS>tim@quitte.de</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
</tr>
|
|
</table>
|
|
|
|
<ul>
|
|
<li class=bg><a href=#FrontMatter>Front Matter</a></li>
|
|
<li class=bg><a href=#Download>Download</a></li>
|
|
<li class=bg><a href=#Installation>Installation</a></li>
|
|
<li class=bg><a href=#WhatYouShouldKnow>What You Should Know</a></li>
|
|
<li class=bg><a href=#GimmeASetupAlready>Give me a Guitar Setup Already!</a></li>
|
|
<li class=bg><a href=#ThePlugins>The Plugins</a>
|
|
|
|
<ul id=plugs type=square>
|
|
<li><a href=#Generic>Generic</a></li><ul type=circle>
|
|
<li><a href=#Eq>Eq</a> – classic ten-band equalizer</li>
|
|
<li><a href=#Eq2x2>Eq2x2</a> – stereo version of Eq</li>
|
|
<li><a href=#Compress>Compress</a> – a compressor suitable for single instruments</li>
|
|
<li><a href=#Pan>Pan</a> – pan and optional width</li>
|
|
<li><a href=#Narrower>Narrower</a> – stereo image width reduction, useful for headphone listening</li>
|
|
</ul>
|
|
<li><a href=#Emulation>Emulation</a></li><ul type=circle>
|
|
<li><a href=#PreampIII>PreampIII</a> – simplistic tube preamp circuit</li>
|
|
<li><a href=#PreampIV>PreampIV</a> – simplistic tube preamp with tone controls</li>
|
|
<li><a href=#ToneStack>ToneStack</a> – tube preamp tone controls</li>
|
|
<li><a href=#ToneStackLT>ToneStackLT</a> – tube preamp tone controls 44.1</li>
|
|
<li><a href=#AmpIII>AmpIII</a> – tube amp</li>
|
|
<li><a href=#AmpIV>AmpIV</a> – tube amp with tone controls</li>
|
|
<li><a href=#AmpV>AmpV</a> – tube amp with power supply modulation</li>
|
|
<li><a href=#AmpVTS>AmpVTS</a> – tube amp with a ToneStack circuit</li>
|
|
<li><a href=#CabinetI>CabinetI</a> – emulation of classical speaker cabinets</li>
|
|
<li><a href=#CabinetII>CabinetII</a> – refined version of CabinetI</li>
|
|
<li><a href=#Clip>Clip</a> – hard 'transistor' clipping</li>
|
|
</ul>
|
|
<li><a href=#Effects>Effects</a></li><ul type=circle>
|
|
<li><a href=#ChorusI>ChorusI</a> – a versatile classic</li>
|
|
<li><a href=#StereoChorusI>StereoChorusI</a> – when one channel is not enough</li>
|
|
<li><a href=#ChorusII>ChorusII</a> – variant with fractal modulation</li>
|
|
<li><a href=#StereoChorusII>StereoChorusII</a> – stereo variant with fractal modulation</li>
|
|
<li><a href=#PhaserI>PhaserI</a> – another classic</li>
|
|
<li><a href=#PhaserII>PhaserII</a> – variant with fractal modulation</li>
|
|
<li><a href=#SweepVFI>SweepVFI</a> – resonant filter modulated by a fractal</li>
|
|
<li><a href=#SweepVFII>SweepVFII</a> – resonant filter modulated by a fractal</li>
|
|
<li><a href=#AutoWah>AutoWah</a> – resonant envelope-following filter</li>
|
|
<li><a href=#Scape>Scape</a> – stereo delay plus resonant filters, fractal modulation</li>
|
|
</ul>
|
|
<li><a href=#Generators>Generators</a></li><ul type=circle>
|
|
<li><a href=#VCOs>VCOs</a> – sawtooth / triangle / square wave generator</li>
|
|
<li><a href=#VCOd>VCOd</a> – double VCO with detune and hard sync</li>
|
|
<li><a href=#CEO>CEO</a> – chief executive oscillator</li>
|
|
<li><a href=#Sin>Sin</a> – testing and tuning helper</li>
|
|
<li><a href=#White>White</a> – white noisz</li>
|
|
<li><a href=#Lorenz>Lorenz</a> – a fractal singing in a broken voice</li>
|
|
<li><a href=#Roessler>Roessler</a> – a roaring fractal</li>
|
|
</ul>
|
|
<li><a href=#Reverb>Reverb</a></li><ul type=circle>
|
|
<li><a href=#JVRev>JVRev</a> – a digital reverb technology classic</li>
|
|
<li><a href=#Plate>Plate</a> – versatile refined digital reverb</li>
|
|
<li><a href=#Plate2x2>Plate2x2</a> – 2-in, 2-out version of Plate</li>
|
|
</ul>
|
|
<li><a href=#Others>Others</a></li><ul type=circle>
|
|
<li><a href=#Click>Click</a> – practice, practice, practice!</li>
|
|
<li><a href=#Dirac>Dirac</a> – one-sample impulse generator</li>
|
|
<li><a href=#HRTF>HRTF</a> – head-related transfer function</li>
|
|
</ul>
|
|
</ul></li>
|
|
<li class=bg><a href=#Appendix>Appendix</a></li>
|
|
<ul type=square>
|
|
<li><a href=#DataSheet>Plugin Data Sheets</a></li>
|
|
<li><a href=#Changelog>Changelog</a></li>
|
|
</ul>
|
|
</ul>
|
|
|
|
<br>
|
|
|
|
<a name=FrontMatter><h3>Front Matter</h3></a>
|
|
<p>
|
|
<b>CAPS</b>, the C* Audio Plugin Suite, is a collection of
|
|
refined LADSPA audio plugins capable of (and mainly
|
|
intended for) realtime operation. The suite includes DSP units emulating
|
|
instrument amplifiers, stomp-box classics,
|
|
versatile 'virtual analogue' oscillators,
|
|
fractal oscillation, reverb, equalization and more.
|
|
</p>
|
|
<p>
|
|
My favourite user's quote:
|
|
<i>“... if your amps beat your plugins, they
|
|
are *very good* amps.. ;-)”</i> – Thanks, Pete!
|
|
</p>
|
|
<p>
|
|
Most of the suite is of my own invention,
|
|
while some plugins are rewrites of
|
|
existing designs, included for
|
|
excellence or interest.
|
|
Inspiring code was authored by
|
|
(in no particular order):
|
|
Andrew Simper, Perry Cook, Gary Scavone,
|
|
Steve Harris, Richard Dobson, Bram de Jong,
|
|
Robert Bristow-Johnson and others.
|
|
</p>
|
|
<p>
|
|
The <a href=#ToneStack>ToneStack</a> plugins and the
|
|
tone controls of the <a href=#AmpVTS>AmpVTS</a> unit
|
|
have been designed and implemented by
|
|
<a href=http://ccrma.stanford.edu/~dtyeh/>David Yeh</a> at
|
|
<a href=http://ccrma.stanford.edu/>CCRMA</a>.
|
|
</p>
|
|
<p>
|
|
Invaluable suggestions, bug hunting and fixing and
|
|
numerous patient reminders
|
|
of the sorry state of affairs
|
|
have been graciously
|
|
provided by (among others and in no particular order)
|
|
Sampo Savolainen, Damon Chaplin, Paul Winkler and Niclas Wretström.
|
|
</p>
|
|
<p>
|
|
All of CAPS is <a href=COPYING>free software</a> and distributed
|
|
in source code.
|
|
</p>
|
|
<br>
|
|
|
|
<h5>* What's with the C?</h5>
|
|
<p>
|
|
So what does the <i>C</i> in the name stand for? Honestly, I don't know.
|
|
</p>
|
|
<p>
|
|
<i>Complete?</i> Not yet. <br>
|
|
<i>C</i> as in the programming language? The source is C++.<br>
|
|
<i>Crap?</i> Heaven forbid!<br>
|
|
<i>Cute?</i> Why not ...<br>
|
|
<i>Common?</i> Not bad either. <br>
|
|
<i>C,</i> the latin numeral for one-hundred? Some more to go, but I
|
|
like the idea.
|
|
</p>
|
|
<p>
|
|
I've got it! <i>C</i> as in <i>The <u>C</u>aps Audio Plugin Suite!</i>
|
|
A classic.
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<a name=Download><h3>Download</h3></a>
|
|
<p>
|
|
CAPS is distributed under the
|
|
<a href=COPYING>GNU General Public License</a>. Other licensing terms
|
|
can be arranged if you wish, please feel free to contact me.
|
|
</p>
|
|
|
|
<h5>No Guarantee</h5>
|
|
<p>
|
|
While I have bred all the plugins in the suite with the greatest care,
|
|
there is no guarantee
|
|
that they will all retain perfect manners under all possible
|
|
circumstances. Take, for example, the <a href=#Lorenz>Lorenz</a>
|
|
plugin, which models
|
|
a fractal system. How am I to guarantee its
|
|
output will never go out of range, if people far more knowledgeable
|
|
about this fractal than me assert its unpredictable behaviour?
|
|
</p>
|
|
|
|
<p style="border:dotted 1px #777777;padding:3pt;">
|
|
This collection is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
</p>
|
|
|
|
<p>
|
|
Download the latest release
|
|
<a href=caps_0.4.5.tar.gz>here, it is caps_0.4.5.tar.gz (772 kB)</a>.
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<a name=Installation><h3>Installation</h3></a>
|
|
|
|
<p>
|
|
Provided you run Linux,
|
|
installation is simply:
|
|
</p>
|
|
|
|
<pre align=left>
|
|
$ tar xvfz caps_0.4.5.tar.gz
|
|
$ cd caps-0.4.5
|
|
$ ./configure.py
|
|
$ make
|
|
$ su
|
|
# make install</pre>
|
|
|
|
<p>
|
|
The <tt>configure.py</tt> step is optional on Linux but recommended
|
|
for optimum performance.
|
|
</p>
|
|
<p>
|
|
You should now be able use the plugins from the collection
|
|
in any LADSPA-aware host program,
|
|
like the wonderful <a href=http://pure-data.org>pd</a> with
|
|
the <code>plugin~</code>
|
|
<a href=http://pure-data.sourceforge.net/>external</a>,
|
|
the inimitable <a href=http://jack-rack.sourceforge.net/>jack-rack</a>,
|
|
the impressive <a href=http://ardour.org>ardour</a>,
|
|
the versatile <a href=http://eca.cx>ecasound</a>,
|
|
the classic <a href=http://www-ccrma.stanford.edu/software/snd/>snd</a>,
|
|
and numerous other applications large and small.
|
|
</p>
|
|
|
|
<p>
|
|
You don't run Linux? Why not
|
|
<a href=http://www.debian.org>downgrade now</a>?
|
|
</p>
|
|
|
|
<h5>OSX</h5>
|
|
<p>
|
|
<tt>configure.py</tt> should detect an OSX build and prepare the
|
|
relevant flags for Apple's different-thinking <tt>ld</tt>
|
|
implementation.
|
|
Mind you, this is untested by me and
|
|
not guaranteed to actually work. If it does, please
|
|
tell me. Thanks!
|
|
</p>
|
|
|
|
<h5>Troubleshooting</h5>
|
|
<p>
|
|
With no external dependencies, compiling CAPS
|
|
should rarely fail on a Linux box. If it
|
|
does on your machine, please send the output of the <tt>make</tt>
|
|
command so we can try and fix the problem.
|
|
</p>
|
|
|
|
<h5>Bugs</h5>
|
|
<p>
|
|
If any of the plugins in the suite do not work with your host program
|
|
of choice, or don't work as advertised, please
|
|
<a href=mailto:tim@quitte.de?subject=caps-bug>send a bug report</a>.
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<a name=WhatYouShouldKnow><h3>What You Should Know</h3></a>
|
|
|
|
<h5>Parameter Smoothing</h5>
|
|
<p>
|
|
To prevent zipper noise, many plugin control inputs are subject
|
|
to internal parameter smoothing where the effort seems justified.
|
|
This is achieved by sweeping parameters internal to the plugin.
|
|
The duration of this sweep will vary with the audio system setup.
|
|
For realtime use and most known LADSPA hosts it is equal to the audio
|
|
block size (in <tt>jackd</tt> terms: the "frames per period").
|
|
</p>
|
|
|
|
<h5>Sample Rate</h5>
|
|
<p>
|
|
The CAPS plugins are designed to be used at
|
|
sample rates of 44.1 kHz or higher. Operation at lower sample rates
|
|
is generally possible but untested.
|
|
Especially the resonant filters in the
|
|
<a href=#SweepVFI>SweepVFI</a>,
|
|
<a href=#SweepVFII>SweepVFII</a>,
|
|
<a href=#AutoWah>AutoWah</a> and
|
|
<a href=#Scape>Scape</a> plugins can self-oscillate out of
|
|
bounds at low sample rates and high filter cutoff frequency settings.
|
|
It is a wise idea to do some silent test runs testing
|
|
the entire parameter range to see if
|
|
the plugin works as expected before relying on its operation at
|
|
sample rates below 44.1 kHz.
|
|
</p>
|
|
<p>
|
|
In the plugin listing, for every unit you'll see a note like
|
|
<em>All sample rates</em>. This means that the plugin should sound the
|
|
same no matter what sample rate it is run at. If it doesn't, holler at
|
|
me.
|
|
A note like <em>44.1 kHz only</em> means you
|
|
can still run the plugin at other sample rates without having to fear
|
|
for your life, but the sonic experience may differ from what is
|
|
advertised.
|
|
</p>
|
|
<p>
|
|
Usage at sample rates of 176 kHz or higher may cause problems with some
|
|
plugins. We recommend not exceeding 100 kHz for all applications.
|
|
</p>
|
|
|
|
<h5>Realtime Use</h5>
|
|
<p>
|
|
All of the plugins in the suite are hard-realtime capable. In some
|
|
cases, parameter smoothing will take a marginal number of
|
|
extra CPU cycles when a control value is changed, as well as when the
|
|
plugin is starting or resuming operation.
|
|
</p>
|
|
|
|
<h5>In-Place and Mixing/Replacing Operation</h5>
|
|
<p>
|
|
All of the plugins in the suite support any combination of in-place,
|
|
mixing and replacing operation.
|
|
</p>
|
|
|
|
<h5>Denormals</h5>
|
|
<p>
|
|
Denormal numbers
|
|
(<a href=http://en.wikipedia.org/wiki/Denormal>wikipedia</a>)
|
|
are the bane of DSP on common computer systems because they seriously
|
|
slow down computing speed. In CAPS, various approaches are employed to
|
|
prevent this problem from arising. Most of the plugins add an inaudible
|
|
signal (-266 dB) at the Nyquist
|
|
(<a href=http://en.wikipedia.org/wiki/Nyquist_frequency>wikipedia</a>)
|
|
or at a fixed lower frequency which keeps calculations out of the critical
|
|
zone around zero. In addition, if you run <tt>configure.py</tt> prior
|
|
to building CAPS, SSE extensions will be employed to aid in this task if
|
|
they are available on the build system.
|
|
</p>
|
|
|
|
<h5>I'd love to hear from you. Really!</h5>
|
|
<p>
|
|
You like something about CAPS? Don't like it?
|
|
Either way, tell me – otherwise
|
|
I'll never be able to improve it!
|
|
</p>
|
|
|
|
<h5>Known Bugs and Limitations</h5>
|
|
<ul>
|
|
<li>
|
|
CPU usage figures, if given, may be inaccurate or even off by an
|
|
order of magnitude.
|
|
</li>
|
|
<li>
|
|
8x oversampling consumes a lot of CPU power.
|
|
</li>
|
|
<li>
|
|
Since version 0.4.0, CAPS cannot be compiled with gcc 2.95 any more.
|
|
</li>
|
|
<li>
|
|
Processing blocks larger than 2<sup>31</sup> - 1 aren't supported.
|
|
</li>
|
|
<li>
|
|
Old <tt>jack-rack</tt> host versions have some crazy ideas about the
|
|
default control parameters of the CAPS plugins – they're all
|
|
over the place.
|
|
</li>
|
|
<li>
|
|
Sample rates in excess of 100 kHz may cause some plugins to develop
|
|
problems.
|
|
</li>
|
|
<li>
|
|
The <a href=#White>White</a> plugin
|
|
actually produces a slightly purplish signal despite the rather
|
|
boastful claims of signal purity made elsewhere.
|
|
</li>
|
|
</ul>
|
|
|
|
<br>
|
|
<a name=GimmeASetupAlready><h3>Give me a Guitar Setup Already!</h3></a>
|
|
|
|
<p>
|
|
Start your guitar signal chain with an
|
|
<a href=#AmpVTS>AmpVTS</a>, followed by a
|
|
<a href=#CabinetII>CabinetII</a> and finish with a
|
|
<a href=#Plate>Plate</a> reverb.
|
|
Season to taste, done.
|
|
</p><p>
|
|
Additional effects like
|
|
<a href=#ChorusII>chorus</a>,
|
|
<a href=#PhaserII>phaser</a> or
|
|
<a href=#AutoWah>auto wah</a> would drop in right before or right after
|
|
the Cabinet (I usually prefer the latter).
|
|
</p>
|
|
|
|
<br>
|
|
|
|
<a name=ThePlugins><h3>The Plugins</h3></a>
|
|
|
|
<a name=Generic><h3>Generic</h3></a>
|
|
|
|
<a name=Eq><h4>Eq</h4></a>
|
|
<p>
|
|
A ten-band, octave-spread equalizer. Based on a traditional analogue
|
|
design and about as faithful as digital IIR filtering allows.
|
|
Individual band filters are <nobr>6 dB / octave</nobr>.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates (bands beyond Nyquist are disabled).</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>31 Hz, 63 Hz, 125 Hz, 250 Hz, 500 Hz, 1 kHz, 2 kHz, 4 kHz, 8 kHz, 16 kHz</b></li>
|
|
control the gain in dB for the respective band.</p></li>
|
|
</ul>
|
|
|
|
<a name=Eq2x2><h4>Eq2x2</h4></a>
|
|
<p>
|
|
By popular demand, a stereo-in, stereo-out version of the
|
|
<a href=#Eq>Eq unit</a>.
|
|
Same controls as Eq.
|
|
</p>
|
|
|
|
<a name=Compress><h4>Compress</h4></a>
|
|
|
|
<p>
|
|
A mono compressor, based on the SC1 design by
|
|
<a href=http://plugin.org.uk>Steve Harris</a> (in other words, a ripoff)
|
|
with minor tweaks. Be
|
|
careful with the gain and ratio controls, the output signal can easily
|
|
exceed 0 dB.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>gain (dB)</b><p>
|
|
controls the maximum gain applied by the unit.</p></li>
|
|
<li><b>ratio (1:n)</b><p>
|
|
controls the overall gain.</p></li>
|
|
<li><b>attack (s)</b><p>
|
|
controls the speed at which the circuit acts on a rising input signal
|
|
envelope.</p></li>
|
|
<li><b>release (s)</b><p>
|
|
controls the speed at which the circuit acts on a decaying input signal
|
|
envelope.</p></li>
|
|
<li><b>threshold (dB)</b><p>
|
|
sets the envelope level that the compressor starts acting at.</p></li>
|
|
<li><b>knee radius (dB)</b><p>
|
|
controls the softness of the transition between unaltered and
|
|
compressed signal.</p></li>
|
|
</ul>
|
|
|
|
<a name=Pan><h4>Pan</h4></a>
|
|
<p>
|
|
Places a monaural source in the stereo field. For some extra spicing,
|
|
the unit can also add a low-pass filtered echo at the far
|
|
ends of the stereo field to make the signal sound 'wider' (recreating
|
|
the old doubling effect with a twist). You can
|
|
(and should!) control the loudness and timing of the echo; what's best
|
|
depends largely on the source signal.
|
|
</p>
|
|
<p>
|
|
<em>No parameter smoothing.</em>
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>pan</b><p>
|
|
position</p></li>
|
|
<li><b>width</b><p>
|
|
echo volume</p></li>
|
|
<li><b>t</b><p>
|
|
delay in milliseconds<p></li>
|
|
<li><b>mono</b><p>
|
|
if non-zero, causes the unit to mix the stereo output back down to mono
|
|
and output that (on both outbound ports).
|
|
The purpose is to check for mono
|
|
compatibility of the output.<p></li>
|
|
</ul>
|
|
|
|
<a name=Narrower><h4>Narrower</h4></a>
|
|
<p>
|
|
Reduces the width of a stereophonic signal.
|
|
Very useful for headphone listeners.
|
|
</p>
|
|
<p>
|
|
<em>No parameter smoothing.</em>
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>strength</b><p>
|
|
amount of width reduction</p></li>
|
|
</ul>
|
|
|
|
|
|
<a name=Emulation><h3>Emulation</h3></a>
|
|
|
|
<a name=PreampIII><h4>PreampIII</h4></a>
|
|
<p>
|
|
One further step in the evolution of my
|
|
<a href=http://quitte.de/dsp/preamp.html>tube preamplifier emulation</a>. This one
|
|
uses conventional polyphase FIR filters for 8x oversampling,
|
|
which helps make the unit sound a good deal cleaner than the
|
|
IIR-based predecessor.
|
|
</p>
|
|
<p>
|
|
The first steps towards this unit were based on a <tt>spice</tt> model
|
|
of the preamplifier circuit in a Fender 5F4 design ('Super' tube amp,
|
|
a close relative of the famed 'Bassman', which is the ancestor of the
|
|
Marshall lineage). Further evolution was
|
|
based on measurements of my 'Super 60' (mid-1980s) amp and, of course,
|
|
personal preference.
|
|
The plugin offers a softer kind of preamp clipping
|
|
than the actual circuit, though it can be made to clip as harsh as the
|
|
original thing if given enough gain.
|
|
</p>
|
|
<p>
|
|
A word of caution: at high 'temperature' settings, an input
|
|
signal peaking above 0 dB can drive
|
|
the first 'tube' stage into hard clipping. Since this stage of the
|
|
circuit is run at the nominal sample rate, aliasing and thus sound
|
|
quality degradation will occur.
|
|
Do not overdrive the input, instead use the 'gain' knob for
|
|
harsh distortion, it offers more than enough of it. This applies to all
|
|
Preamp and Amp units.
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
<ul>
|
|
<li><b>gain</b><p>
|
|
controls the level of saturation. For a balanced (0 dB max.)
|
|
input signal,
|
|
hard clipping will not occur below a gain value of 1.
|
|
</p></li>
|
|
<li><b>temperature</b><p>
|
|
emulates the level of the input signal, thus how much the first
|
|
preamplifier tube will colour the signal.
|
|
The effect is very subtle.</p></li>
|
|
</ul>
|
|
|
|
<a name=PreampIV><h4>PreampIV</h4></a>
|
|
<p>
|
|
A variation on <a href=#PreampIII>PreampIII</a> with added tone controls
|
|
before the clipping stage. The tone controls have the same
|
|
flaws as their analog counterparts (phase cancellation at high band
|
|
gains). But exactly because they are not linear-phase, they are quite
|
|
useful in altering the distortion characteristics of the circuit.
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
<p>
|
|
Same parameters as <a href=#PreampIII>PreampIII</a>, plus the following
|
|
(all in dB units):
|
|
</p>
|
|
<ul>
|
|
<li><b>bass</b><p>
|
|
80 Hz band</p></li>
|
|
<li><b>mid</b><p>
|
|
300 Hz band</p></li>
|
|
<li><b>treble</b><p>
|
|
1200 Hz band</p></li>
|
|
<li><b>hi</b><p>
|
|
4800 Hz band</p></li>
|
|
</ul>
|
|
|
|
<a name=ToneStack><h4>ToneStack</h4></a>
|
|
<p>
|
|
A close model of the tone stack of a traditional instrument
|
|
amplifier (of Fender origin), designed and implemented by David Yeh,
|
|
discussed in [<a name=yeh06-1 href=#yeh06>2</a>]
|
|
(see <a href=http://ccrma.stanford.edu/~dtyeh/tonestack/>his project page at CCRMA</a>).
|
|
</p><p>
|
|
This is the 'procedural' implementation which uses a direct form II filter,
|
|
adapts to the actual sample rate and offers the choice of model
|
|
from a selection of several classic tone stacks.
|
|
(The AC-30 is a crude approximation for which David isn't to blame. I
|
|
simply dropped in the parameters although the circuit doesn't
|
|
match the one David modeled.)
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
<ul>
|
|
<li><b>model</b><p>
|
|
0 - '59 Bassman<br>
|
|
1 - '69 Twin Reverb<br>
|
|
2 - '64 Princeton<br>
|
|
3 - '59/'81 JCM 800<br>
|
|
4 - '78 Club & Country<br>
|
|
5 - '59/'86 AC-30 of sorts
|
|
</li>
|
|
<li><b>bass</b></li>
|
|
<li><b>mid</b></li>
|
|
<li><b>treble</b></li>
|
|
</ul>
|
|
|
|
<a name=ToneStackLT><h4>ToneStackLT</h4></a>
|
|
<p>
|
|
This version of David Yeh's <a href=#ToneStack>ToneStack</a> replaces
|
|
the procedural approach and direct form II filter
|
|
with a lattice filter and operation on
|
|
precalculated simulation data. It's a fixed implementation of the
|
|
'59 Bassman model.
|
|
</p>
|
|
<p><em>44.1 kHz</em></p>
|
|
<ul>
|
|
<li><b>bass</b></li>
|
|
<li><b>mid</b></li>
|
|
<li><b>treble</b></li>
|
|
</ul>
|
|
|
|
|
|
<a name=AmpIII><h4>AmpIII</h4></a>
|
|
<p>
|
|
A <a href=#PreampIII>PreampIII</a> circuit plus a tube power amplifier
|
|
emulation giving that smooth drive.
|
|
</p>
|
|
<p>
|
|
We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
<p>
|
|
Same controls as <a href=#PreampIII>PreampIII</a>, plus:
|
|
</p>
|
|
<ul>
|
|
<li><b>drive</b><p>
|
|
controls the 'master volume' of the circuit, i.e. how much
|
|
coloring and compression the emulated power amplifier produces.</p></li>
|
|
</ul>
|
|
|
|
<a name=AmpIV><h4>AmpIV</h4></a>
|
|
<p>
|
|
A <a href=#PreampIV>PreampIV</a> with the same output amp stage
|
|
emulation that <a href=#AmpIII>AmpIII</a> employs. Controls are the
|
|
same as on <a href=#PreampIV>PreampIV</a>, plus the 'drive' inherited
|
|
from <a href=#AmpIII>AmpIII</a>.
|
|
</p>
|
|
<p>
|
|
We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
|
|
<a name=AmpV><h4>AmpV</h4></a>
|
|
<p>
|
|
This circuit is loosely based on the <a href=#AmpIII>AmpIII</a> design.
|
|
The preamplifier stage has been augmented and tuned
|
|
to provide a warmer frequency response as well as slightly different
|
|
clipping characteristics. But more significantly, AmpV emulates the
|
|
shortcomings of an unregulated power supply and their effect on the
|
|
total gain of the circuit, the operating point of the tubes and the
|
|
clipping response.
|
|
</p><p>
|
|
AmpV's forte is a mellow sound at the transition from clean to rough,
|
|
at lowish 'gain' settings and moderate 'watts'.
|
|
</p>
|
|
<p>
|
|
We recommend you use <a href=#AmpVTS>AmpVTS</a> instead.
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
<ul>
|
|
<li><b>gain</b><p>
|
|
controls the amount of edge added in the preamplifier stage. The
|
|
parameter mapping has been optimized for fine control in the clean to
|
|
medium-rough range.
|
|
</p></li>
|
|
<li><b>bass</b><p>
|
|
controls the attenuation or amplification of low frequencies
|
|
before the preamp tube (the value is expressed in dB).
|
|
Technically, a low-shelving equalizer filter.
|
|
</p></li>
|
|
<li><b>tone</b><p>
|
|
controls post-preamplifier circuit filtering. At the zero setting,
|
|
the effect is turned off. At its maximum, there is some resonance
|
|
quite high in the spectrum.
|
|
</p></li>
|
|
<li><b>drive</b><p>
|
|
controls power-amplification stage saturation, which gives a fair bit
|
|
of warmth and some compression.
|
|
</p></li>
|
|
<li><b>watts</b><p>
|
|
controls how capable the emulated power supply is. At its minimum
|
|
setting, the effects of supply voltage modulation are
|
|
the most pronounced.
|
|
At the maximum setting, they are effectively removed (which is
|
|
recommended for high-'gain' setups).
|
|
</p></li>
|
|
</ul>
|
|
|
|
<a name=AmpVTS><h4>AmpVTS</h4></a>
|
|
<p>
|
|
An <a href=#AmpV>AmpV</a> with the tone controls replaced with
|
|
the fine <a href=#ToneStack>ToneStack</a> by David Yeh. And a ton of
|
|
other modifications (most notably the availability of an extra 28 dB
|
|
of gain).
|
|
</p>
|
|
<p><em>All sample rates.</em></p>
|
|
|
|
|
|
<a name=CabinetI><h4>CabinetI</h4></a>
|
|
|
|
<p>
|
|
A collection of filters emulating the frequency response
|
|
of various guitar combo amps or speaker cabinets, using the
|
|
method outlined
|
|
<a href=http://quitte.de/dsp/unmatched.html>here</a>.
|
|
</p>
|
|
<p>
|
|
You'll find a more exact, but also a lot more cycle-hungry and
|
|
latency-inflicting rendering of
|
|
these responses in
|
|
<a href=http://plugin.org.uk>Steve Harris' collection</a>, from which
|
|
they were borrowed.
|
|
</p>
|
|
<p>
|
|
We recommend you use the successor unit <a href=#CabinetII>CabinetII</a>
|
|
instead.
|
|
</p>
|
|
<p>
|
|
<em>44.1 kHz (48 kHz gives a slightly different, but still usable frequency response.)</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>model</b><p>
|
|
0 - identity filter (what goes in, goes out).<br>
|
|
1 - 'unmatched', as I still like to call it. A Matchless Chieftain.<br>
|
|
2 - the same, but the recording was taken with the microphone on-axis.<br>
|
|
3 - Superchamp (a Fender, isn't it?)<br>
|
|
4 - Fender Vibrolux 68<br>
|
|
5 - Marshall 'Plexi'
|
|
</li>
|
|
<li><b>gain (dB)</b><p>
|
|
volume control.</p></li>
|
|
</ul>
|
|
|
|
<a name=CabinetII><h4>CabinetII</h4></a>
|
|
|
|
<p>
|
|
A refined version of <a href=#CabinetI>CabinetI</a>.
|
|
This version offers a much more
|
|
faithful rendering of the original speaker cabinet frequency responses
|
|
due to a modified filter approximation, double the filter order and
|
|
(limited) adaptability to sample rate.
|
|
</p><p>
|
|
Unlike conventional impulse response emulators who rely on brute-force
|
|
convolution, FFT-based algorithms or the patent-encumbered zero-latency
|
|
variant of the latter, the Cabinet units employ IIR filters for
|
|
truly resonant behaviour. As a result, their sound is more lively.
|
|
</p><p>
|
|
Same controls as <a href=#CabinetI>CabinetI</a>.
|
|
</p>
|
|
<p>
|
|
<em>44.1, 48, 88.2 and 96 kHz (nearest match chosen at runtime)</em>
|
|
<br>
|
|
</p>
|
|
|
|
<a name=Clip><h4>Clip</h4></a>
|
|
<p>
|
|
A spin-off of the <a href=#PreampIII>PreampIII</a> effort.
|
|
8x oversampled hard clipping (sometimes called 'diode' or
|
|
'transistor' clipping).
|
|
The clip threshold is fixed at -1 dB (overshoot
|
|
from the up- and downsampling filters could exceed 0 dB were the threshold
|
|
higher).
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>gain (dB)</b><p>
|
|
controls pre-clipping amplification.</p></li>
|
|
</ul>
|
|
|
|
<a name=Effects><h3>Effects</h3></a>
|
|
|
|
<a name=ChorusI><h4>ChorusI</h4></a>
|
|
|
|
<p>
|
|
Mono version, with a feedback circuit. The parameter range suits more
|
|
subtle effects as well as all-out flanging. Modifying the 't' parameter
|
|
when 'feedback' is non-zero will cause zipper noise.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>t (ms)</b><p>
|
|
delay time.</p></li>
|
|
<li><b>width (ms)</b><p>
|
|
controls the amount of pitch change.</p></li>
|
|
<li><b>rate (Hz)</b><p>
|
|
the speed of the pitch modulation.</p></li>
|
|
<li><b>blend</b><p>
|
|
the amount of dry and fed-back signal in the output.</p></li>
|
|
<li><b>feedforward</b><p>
|
|
amount of modulated signal in the output.</p></li>
|
|
<li><b>feedback</b><p>
|
|
amount of signal with fixed delay in the modulation input.</p></li>
|
|
</ul>
|
|
|
|
<a name=StereoChorusI><h4>StereoChorusI</h4></a>
|
|
|
|
<p>
|
|
Two <a href=#ChorusI>ChorusI</a> circuits in parallel,
|
|
sharing the same input (and delay
|
|
line). Same parameters as the mono version, plus one.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>phase</b></li><p>
|
|
controls the relation of the two LFOs. 0 means in-phase, 0.5 is
|
|
quadrature, and 1 is anti-phase.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<a name=ChorusII><h4>ChorusII</h4></a>
|
|
|
|
<p>
|
|
A variation on the <a href=#ChorusI>ChorusI</a> unit; this one employs
|
|
a Roessler fractal to steer the signal modulation, resulting in less
|
|
predictable and thus more interesting sound.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>t (ms)</b><p>
|
|
delay time.</p></li>
|
|
<li><b>width (ms)</b><p>
|
|
controls the amount of pitch change.</p></li>
|
|
<li><b>rate</b><p>
|
|
the speed of the pitch modulation.</p></li>
|
|
<li><b>blend</b><p>
|
|
the amount of dry and fed-back signal in the output.</p></li>
|
|
<li><b>feedforward</b><p>
|
|
amount of modulated signal in the output.</p></li>
|
|
<li><b>feedback</b><p>
|
|
amount of signal with fixed delay in the modulation input.</p></li>
|
|
</ul>
|
|
|
|
<a name=StereoChorusII><h4>StereoChorusII</h4></a>
|
|
|
|
<p>
|
|
Two <a href=#ChorusII>ChorusII</a> circuits in parallel,
|
|
sharing the same input (and delay
|
|
line). Same parameters as the mono version.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
|
|
<a name=PhaserI><h4>PhaserI</h4></a>
|
|
|
|
<p>
|
|
Nothing out of the ordinary, just a phaser like I like to have them.
|
|
A phaser unit works by sweeping notches in the frequency response; this one
|
|
has six comb filters, for six notches.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>rate (Hz)</b><p>
|
|
controls the speed of the modulation.</p></li>
|
|
<li><b>depth</b><p>
|
|
the strength of the effect.</p></li>
|
|
<li><b>spread</b><p>
|
|
the distance of the notched frequency bands.</p></li>
|
|
<li><b>feedback</b><p>
|
|
controls the amount of resonance.</p></li>
|
|
</ul>
|
|
|
|
<a name=PhaserII><h4>PhaserII</h4></a>
|
|
|
|
<p>
|
|
A variation of the <a href=#PhaserI>PhaserI</a> circuit which relies
|
|
on a Lorenz fractal for the modulation source, improving hugely on
|
|
output sound variation.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>rate</b><p>
|
|
controls the speed of the modulation.</p></li>
|
|
<li><b>depth</b><p>
|
|
the strength of the effect.</p></li>
|
|
<li><b>spread</b><p>
|
|
the distance of the notched frequency bands.</p></li>
|
|
<li><b>feedback</b><p>
|
|
controls the amount of resonance.</p></li>
|
|
</ul>
|
|
|
|
<a name=SweepVFI><h4>SweepVFI</h4></a>
|
|
|
|
<p>
|
|
A resonant filter whose cutoff frequency is swept by a
|
|
<a href=#Lorenz>Lorenz</a> fractal. With the default parameters
|
|
(moderate Q, cutoff around 800 Hz and band pass mode)
|
|
it makes a nice Wah effect if you lower the 'h' parameter by a fair amount.
|
|
</p>
|
|
<p>
|
|
Another idea is to set it to very high Q and frequency in low pass mode
|
|
and filter some noise, for synthetic bird chirping (high h value)
|
|
or theremin-like sounds (low h, lower frequency).
|
|
</p>
|
|
<p>
|
|
Please note that the most useful settings for the 'h' parameter
|
|
are <i>very</i> low, around 0.01 - 0.09. Unfortunately there's no way
|
|
to provide a default setting as low as this without compromising
|
|
the range of the control.
|
|
</p>
|
|
<p>
|
|
And be careful, high Q resonance can peak at up to +18 dB.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates (modulation rate and character are sample rate dependent).</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
cutoff frequency (band center for band pass filtering).</p></li>
|
|
<li><b>Q</b><p>
|
|
filter resonance.</p></li>
|
|
<li><b>mode</b><p>
|
|
0 - low pass<br>
|
|
1 - band pass</p></li>
|
|
<li><b>depth:x</b></li>
|
|
<li><b>depth:y</b></li>
|
|
<li><b>depth:z</b><p>
|
|
control how the modulation is mixed from the state of the attractor.</p></li>
|
|
<li><b>h</b><p>
|
|
step size of the fractal.</p></li>
|
|
</ul>
|
|
|
|
<a name=SweepVFII><h4>SweepVFII</h4></a>
|
|
|
|
<p>
|
|
A variation on <a href=#SweepVFI>SweepVFI</a>,
|
|
with the filter Q (bandwidth/resonance)
|
|
modulated by a second <a href=#Lorenz>Lorenz</a> fractal.
|
|
</p>
|
|
<p>
|
|
Please note that the most useful settings for the 'h' parameter
|
|
are <i>very</i> low, around 0.01 - 0.09. Unfortunately there's no way
|
|
to provide a default setting as low as this without compromising
|
|
the range of the control.
|
|
</p>
|
|
<p>
|
|
And be careful, high Q resonance can peak at up to +18 dB.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates (modulation rate and character are sample rate dependent).</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
cutoff frequency (band center for band pass filtering).</p></li>
|
|
<li><b>Q</b><p>
|
|
filter resonance.</p></li>
|
|
<li><b>mode</b><p>
|
|
0 - low pass<br>
|
|
1 - band pass</p></li>
|
|
<li><b>f:depth:x</b></li>
|
|
<li><b>f:depth:y</b></li>
|
|
<li><b>f:depth:z</b><p>
|
|
control how the filter cutoff modulation is mixed
|
|
from the state of the attractor.</p></li>
|
|
<li><b>f:h</b><p>
|
|
step size of the fractal modulating the cutoff.</p></li>
|
|
<li><b>Q:depth:x</b></li>
|
|
<li><b>Q:depth:y</b></li>
|
|
<li><b>Q:depth:z</b><p>
|
|
control how the filter Q modulation is mixed
|
|
from the state of the attractor.</p></li>
|
|
<li><b>Q:h</b><p>
|
|
step size of the fractal modulating filter Q.</p></li>
|
|
</ul>
|
|
|
|
<a name=AutoWah><h4>AutoWah</h4></a>
|
|
<p>
|
|
The same resonant filter as used by the <a href=#SweepVFI>SweepVFI</a>
|
|
and <a href=#SweepVFII>SweepVFII</a> units, the difference being that
|
|
the filter is hard-wired for bandpass operation and
|
|
the band centre frequency is modulated by an envelope-following circuit.
|
|
In short, an effect commonly known and esteemed as an automatic wah,
|
|
or AutoWah. Probably most useful with instruments allowing fine control over
|
|
dynamics at all times.
|
|
</p>
|
|
<p>
|
|
Be careful with the Q parameter, high resonance can peak at up to +18 dB.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates (modulation rate and character may be sample rate dependent).</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
filter band centre frequency.</p></li>
|
|
<li><b>Q</b><p>
|
|
resonance.</p></li>
|
|
<li><b>depth</b><p>
|
|
strength of the modulation.</p></li>
|
|
</ul>
|
|
|
|
|
|
<a name=Scape><h4>Scape</h4></a>
|
|
|
|
<p>
|
|
This plugin will generate quite expansive soundscapes from even the
|
|
most modest input signals.
|
|
</p>
|
|
<p>
|
|
Technically, 'Scape' is a
|
|
stereo delay, with the panning of the echo modulated by a pair of
|
|
fractals.
|
|
The delay times are adjustable through
|
|
a 'bpm' knob, augmented by a beat division parameter.
|
|
The input as well as the delayed signals are processed by a
|
|
collection of resonant filters, with frequency and cutoff modulated
|
|
in sync to the current tempo.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>bpm</b><p>
|
|
beats per minute.</p></li>
|
|
<li><b>divider</b><p>
|
|
controls whether the groove is ternary or binary.</p></li>
|
|
<li><b>feedback</b><p>
|
|
controls the length of the delay tail.</p></li>
|
|
<li><b>dry</b><p>
|
|
the amount of dry signal mixed to the outputs.</p></li>
|
|
<li><b>blend</b><p>
|
|
the amount of wet signal mixed to the outputs.</p></li>
|
|
</ul>
|
|
|
|
|
|
|
|
<a name=Generators><h3>Generators</h3></a>
|
|
|
|
<a name=VCOs><h4>VCOs</h4></a>
|
|
|
|
<p>
|
|
An oscillator capable of producing the standard
|
|
triangle, sawtooth and square waveforms of analog fame,
|
|
and almost any conceivable blend
|
|
thereof. 8x oversampled, thus needs a lot of cycles. Sorry about that,
|
|
but you don't get the flexibility and fat sound for free.
|
|
</p>
|
|
<p>
|
|
About the morphing controls:
|
|
</p>
|
|
<ul type=circle>
|
|
<li>For a <b>triangle wave,</b> set both <i>tri .. saw</i> and
|
|
<i>~ .. square</i> to 0 (this is the default setting).</li>
|
|
<li>To morph into a <b>sawtooth,</b> pull up <i>tri .. saw</i>.</li>
|
|
<li>For a <b>square wave</b> instead, pull up <i>~ .. square</i>. When
|
|
the value reaches 1, <i>tri .. saw</i> fully controls the pulse
|
|
width.</li>
|
|
</ul>
|
|
<p>
|
|
For a more intuitive approach, thinking of both controls
|
|
in terms of 'dull .. sharp' for a start
|
|
can't hurt.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
the frequency.</p></li>
|
|
<li><b>tri .. saw</b><p>
|
|
controls the morph between triangle and sawtooth, and the pulse
|
|
width of square oscillation.</p></li>
|
|
<li><b>~ .. square</b><p>
|
|
controls the morph between triangle/sawtooth and square wave.</p></li>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
|
|
<a name=VCOd><h4>VCOd</h4></a>
|
|
|
|
<p>
|
|
A combination of two <a href=#VCOs>VCOs</a> units.
|
|
The second oscillator
|
|
offers a separate tuning knob. It can also be made
|
|
to 'hard sync'
|
|
to the first unit, which means that when the first has completed
|
|
a wave cycle, the second is forced to restart its wave cycle
|
|
together with the first.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
the frequency.</p></li>
|
|
<li><b>1: tri .. saw</b></li>
|
|
<li><b>1: ~ .. square</b><p>
|
|
waveform morph controls for the first oscillator.</p></li>
|
|
<li><b>2: tri .. saw</b></li>
|
|
<li><b>2: ~ .. square</b><p>
|
|
waveform morph controls for the second oscillator.</p></li>
|
|
<li><b>2: tune</b><p>
|
|
controls the interval between the two oscillator frequencies, in
|
|
units of (fractional) semitones.</p></li>
|
|
<li><b>sync</b><p>
|
|
if non-zero, puts the second oscillator into 'hard sync' mode, and
|
|
determines the forced-restart offset into its wave cycle.</p></li>
|
|
<li><b>blend</b><p>
|
|
controls how the waveforms from the two oscillators are mixed.
|
|
A value of 0 means only oscillator one is heard, a value of either
|
|
1 or -1 tilts the balance fully towards oscillator two. The sign
|
|
of the <b>blend</b> value determines if the signals are added or
|
|
subtracted.</p></li>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
|
|
<a name=CEO><h4>CEO</h4></a>
|
|
|
|
<p>
|
|
The Chief Executive Oscillator forever repeats the word 'money'.
|
|
</p>
|
|
<p>
|
|
<em>44.1 kHz.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>mpm</b><p>
|
|
moneys per minute.</p></li>
|
|
<li><b>volume</b></li>
|
|
<li><b>damping</b><p>
|
|
moderates the CEO.</p></li>
|
|
</ul>
|
|
|
|
<a name=Sin><h4>Sin</h4></a>
|
|
|
|
<p>
|
|
The old friend, indispensable for testing and tuning.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>f</b><p>
|
|
the frequency.</p></li>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
|
|
<a name=White><h4>White</h4></a>
|
|
|
|
<p>
|
|
White noise (actually slightly pinkish, sorry).
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
|
|
<a name=Lorenz><h4>Lorenz</h4></a>
|
|
|
|
<p>
|
|
A Lorenz attractor is a fractal system. It produces a very
|
|
own character of noisz that will hardly repeat in the course of your
|
|
lifetime.
|
|
</p>
|
|
<p>
|
|
<em>Sound varies with sample rate.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>h</b></p>
|
|
controls the step size of the state progression, and, indirectly, the
|
|
perceived frequency of the sound.</p></li>
|
|
<li><b>x</b></li>
|
|
<li><b>y</b></li>
|
|
<li><b>z</b><p>
|
|
control how the signal is mixed from the state of the attractor.</p></li>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
<p>
|
|
For more information on the
|
|
Lorenz and Roessler attractors, visit
|
|
<a href=http://astronomy.swin.edu.au/~pbourke/fractals/lorenz/>Paul Bourke's resourceful site</a>.
|
|
</p>
|
|
|
|
<a name=Roessler><h4>Roessler</h4></a>
|
|
|
|
<p>
|
|
Another fractal system. This one lends itself
|
|
particularly well to sweeping the 'h' parameter.
|
|
</p>
|
|
<p>
|
|
<em>Sound varies with sample rate.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>h</b></p>
|
|
controls the step size of the state progression.</p></li>
|
|
<li><b>x</b></li>
|
|
<li><b>y</b></li>
|
|
<li><b>z</b><p>
|
|
control how the signal is mixed from the state of the attractor.</p></li>
|
|
<li><b>volume</b></li>
|
|
</ul>
|
|
<p>
|
|
For more information on the
|
|
Lorenz and Roessler attractors, visit
|
|
<a href=http://astronomy.swin.edu.au/~pbourke/fractals/lorenz/>Paul Bourke's resourceful site</a>.
|
|
</p>
|
|
|
|
<a name=Reverb><h3>Reverb</h3></a>
|
|
|
|
<a name=JVRev><h4>JVRev</h4></a>
|
|
|
|
<p>
|
|
A traditional Chowning/Moorer/Schroeder reverb. It sounds quite good
|
|
for a reverberation unit with such a comparatively small footprint
|
|
(I still remember the times when your average personal computer wasn't
|
|
even capable of computing this in realtime). A quite
|
|
straight-forward rewrite of a unit found in
|
|
<a href=http://ccrma.stanford.edu/>CCRMA</a>'s
|
|
<a href=http://ccrma.stanford.edu/software/stk/>STK (Synthesis Toolkit)</a>,
|
|
with minor tweaks.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>t60 (s)</b></p>
|
|
controls the time until the reverb tail is supposed to fade
|
|
to -60 dB.</p></li>
|
|
<li><b>blend</b></p>
|
|
controls dry/wet mixing ratio.</p></li>
|
|
</ul>
|
|
|
|
<a name=Plate><h4>Plate</h4></a>
|
|
|
|
<p>
|
|
A reverberation unit based on the design discussed
|
|
in [<a name=dat97-1-1 href=#dat97-1>1</a>].
|
|
Unlike the reference, the unit employs cubic instead of
|
|
allpass interpolation to modulate the reverb 'tank' delay lines.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>bandwidth</b><p>
|
|
controls damping of the input signal before it enters the
|
|
delay circuits.</p></li>
|
|
<li><b>tail</b><p>
|
|
controls the length of the reverb tail.</p></li>
|
|
<li><b>damping</b><p>
|
|
controls attenuation of high frequency components within the reverb 'tank'
|
|
(decay stage).</p></li>
|
|
<li><b>blend</b><p>
|
|
dry/wet mixing ratio (default should be 1/8, not 1/4).</p></li>
|
|
</ul>
|
|
|
|
<a name=Plate2x2><h4>Plate2x2</h4></a>
|
|
|
|
<p>
|
|
By popular demand, a stereo-in, stereo-out version of the
|
|
<a href=#Plate>Plate</a> reverb unit. Same controls, same sound.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
|
|
<a name=Others><h3>Others</h3></a>
|
|
|
|
<a name=Click><h4>Click</h4></a>
|
|
|
|
<p>
|
|
A sample-accurate metronome. Timing is exact at any sample rate, but
|
|
the pitch of the click (being a recorded sample) will vary. (The click
|
|
also lends well for testing reverb plugins.)
|
|
</p>
|
|
<p>
|
|
<em>44.1 kHz.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>bpm</b><p>
|
|
beats per minute.</p></li>
|
|
<li><b>volume</b></li>
|
|
<li><b>damping</b><p>
|
|
controls the softness of the click sound.</p></li>
|
|
</ul>
|
|
|
|
<a name=Dirac><h4>Dirac</h4></a>
|
|
|
|
<p>
|
|
This plugin produces periodic impulses of exactly one sample width
|
|
(as long as the 'damping' control is left at the default 0 setting).
|
|
It's probably only useful for testing and basic impulse response
|
|
retrieval; don't use this plugin if you don't know what you're doing,
|
|
your amplification hardware and speakers will thank you.
|
|
The 'volume' control defaults to silent output to spare you nasty
|
|
surprises.
|
|
</p>
|
|
<p>
|
|
<em>All sample rates.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>ppm</b><p>
|
|
pulses per minute.</p></li>
|
|
<li><b>volume</b></li>
|
|
<li><b>damping</b></li>
|
|
</ul>
|
|
|
|
<a name=HRTF><h4>HRTF</h4></a>
|
|
|
|
<p>
|
|
Applying the head-related transfer function to a signal makes it appear
|
|
to come from a specific direction in space. This plugin applies the
|
|
HRTF with custom-shaped IIR filters.
|
|
Tell me how it works for you (you should
|
|
have pretty good headphones to get the full effect).
|
|
</p>
|
|
<p>
|
|
The HRTF impulse response data has been collected and prepared
|
|
by MIT's Media Lab.
|
|
</p>
|
|
<p>
|
|
This unit only utilizes the 0-elevation set (sound source is level
|
|
with the listener).
|
|
</p>
|
|
<p>
|
|
<em>44.1 kHz.</em>
|
|
</p>
|
|
<ul>
|
|
<li><b>pan</b><p>
|
|
The position, in integer steps. Some noteworthy settings:
|
|
<ul>
|
|
<li>
|
|
0 = in front</li>
|
|
<li>+18 = left,</li>
|
|
<li>-18 = right, and</li>
|
|
<li>-36 = +36 = behind the listener.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<br>
|
|
|
|
<a name=Appendix><h3>Appendix</h3></a>
|
|
|
|
<a name=DataSheet><h4>Plugin Data Sheets</h4></a>
|
|
|
|
<p>
|
|
The CAPS data sheets collect the following information from
|
|
the plugins:
|
|
</p>
|
|
<ul type=circle>
|
|
<li>the plugin ID</li>
|
|
<li>normalized sample output from the plugin
|
|
with default parameter settings
|
|
(in the filter case, this is an impulse response)</li>
|
|
<li>a frequency magnitude plot for the sample output</li>
|
|
<li>estimated CPU usage on my box (usually wildly inaccurate)</li>
|
|
<li>latency information if applicable</li>
|
|
<li>audio routing information</li>
|
|
<li>the control inputs on the plugin</li>
|
|
</ul>
|
|
<p>
|
|
You can fetch the data sheet compilation
|
|
<a href=caps-0.4.5.pdf>here, it is caps-0.4.5.pdf (287 kB)</a>.
|
|
</p>
|
|
|
|
<a name=Changelog><h4>Changelog</h4></a>
|
|
|
|
<pre>
|
|
0.4.5
|
|
* Narrower plugin added
|
|
* fixed 'configure.py' to work with python3
|
|
* fixed Sin, Roessler and Lorenz gain smoothing on activation
|
|
|
|
0.4.4
|
|
|
|
0.4.3
|
|
* basics.h cleanup / comments
|
|
* minor Makefile cleanup
|
|
* comment cosmetics
|
|
* Eq and Eq2x2 per-band Q changed to 1.414 (= 1 octave)
|
|
* Eq lowest band default value fixed to read 0
|
|
* Niclas' fix for the bessel function implemented
|
|
* uninitialised plugin states eliminated thanks to Damon
|
|
* linker options for OSX added to the Makefile
|
|
|
|
0.4.2
|
|
* fixed the 'model' port index for AmpVTS in the RDF generator
|
|
|
|
0.4.1
|
|
* cleaned up Eq.h and Eq.cc (many g++ versions choke on the unused code
|
|
there)
|
|
* changed -O3 to -O2 in the g++ invocation
|
|
|
|
0.4.0
|
|
* ToneStack plugins, by David Yeh
|
|
* AmpV + Tone stack plugin, employing David Yeh's fine work
|
|
* comment cosmetics
|
|
* Amp* denormal protection fixed (or is it, Dave? ;)
|
|
* minor code cleanup in Amp.cc
|
|
* caps.rdf updated with plugin categories (thanks to Paul Winkler)
|
|
* caps.rdf Cabinet* RDF preset labels renamed
|
|
* AutoWah plugin
|
|
* DSP::RMS reworked, may affect Compress plugin
|
|
* DSP::Eq reworked for double precision and denormal protection
|
|
* ./configure.py checks SSE availability
|
|
* in case of SSE math denormal flush to zero activated for all plugins
|
|
* all plugins renamed C* .. instead of CAPS: ..
|
|
* Eq modified to play nice with ardour
|
|
* Eq2x2
|
|
* introduced the Plugin base class, collecting common traits (normal etc)
|
|
* getport() -- read access to control ports which is clamped to port bounds
|
|
and maps inf and nan to 0 as well
|
|
* all LADSPA_HINT_SAMPLE_RATE ports changed to *_LOGARITHMIC because
|
|
of broken implementations (no surprise given the vagueness of ladspa.h
|
|
regarding this matter) -- this means changed default parameters of the
|
|
affected ports, too
|
|
* VCO* "latency" output ports removed
|
|
* actual activate() call is deferred to first run() after activate()
|
|
in order to prevent inadvertent parameter smoothing sweeps during the first
|
|
block of audio after activation, this should fix all problems with ardour
|
|
(except those caused by denormals or invalid audio input)
|
|
* caps.rdf installed by 'make install'
|
|
* fixed a bug in tools/make-ps.py that caused the spectrum plots to
|
|
be inaccurate for multi-channel plugins
|
|
|
|
0.3.0
|
|
* TwelveAX7_3 changed to clip slightly early in the upper lobe
|
|
* Scape plugin added
|
|
* plugin names rewritten, prefixed with "CAPS:"
|
|
* new ChorusII, StereoChorusII plugins
|
|
* Chorus, StereoChorus relabeled, appended 'I' suffix
|
|
* new PhaserII plugin (great stuff if I may say so)
|
|
* Phaser relabeled, appended 'I' suffix
|
|
* new AmpV plugin, based on AmpIII, emulates compression and distortion
|
|
modulation through power supply shortcomings, plus lots of fine-tuning
|
|
and an additional biquad. We're getting there!
|
|
* all Preamp and Amp models fitted with a new 12AX7 model, linear
|
|
interpolation of a sample table obtained from spice simulation
|
|
|
|
0.2.4
|
|
* feedback default reverted to 0 for the Chorus units
|
|
* fixed Cabinet to switch to correct gain at 'model' control change
|
|
* fixed 'model' control in Cabinet to work with a broader range of hosts
|
|
* Cabinet name changed to CabinetI
|
|
* CabinetII plugin: Cabinet with 32nd order IIR filters, more fidelity
|
|
to the original frequency responses, supplied coefficients for 4 of the
|
|
most used sample rates
|
|
* applied the gcc-4 enabling patch
|
|
* SweepVF renamed to SweepVFI
|
|
* new SweepVFII plugin, variant of SweepVFI with Q modulated by a
|
|
second Lorenz fractal
|
|
* dsp/exp2 dumped in favour of libm's exp2(3)
|
|
|
|
0.2.3
|
|
* StereoChorus denormal protection made functional
|
|
(Thanks again to S. Savolainen)
|
|
* Phaser denormal protected
|
|
|
|
0.2.2
|
|
* Build was _not_ fixed for g++-4.0.
|
|
* AmpIV gain control restored to operate as expected
|
|
* Chorus/StereoChorus denormal protection (thanks to S. Savolainen)
|
|
* a few cosmetic changes elsewhere
|
|
|
|
0.2.1
|
|
* Build fixed for g++-4.0, PPC and AMD64
|
|
(Thanks to Niklas Werner, Andreas Jochens and Mario Lang)
|
|
* Reverb.* cosmetics
|
|
* AmpIV tone controls moved to after initial tube transfer
|
|
|
|
0.2.0
|
|
* denormal protection for Preamp*, Amp*
|
|
* Capitalized plugin Names
|
|
* PDF now lists audio in- and outputs as well as control inputs, only
|
|
gives average CPU rating
|
|
* AmpIV: PreampIV + power amp stage
|
|
* Plate2x2: Plate with 2-in, 2-out audio routing
|
|
* Plate damping and bandwidth controls changed to map to filter fc, fixes
|
|
behaviour in hosts that handle the log hint incorrectly
|
|
|
|
0.1.13
|
|
* AmpIII activate() resets the boost filter
|
|
|
|
0.1.12
|
|
* PreampIV band controls fixed to operate as expected
|
|
|
|
0.1.11
|
|
* amps changed back to old tube model :) but new temp & gain behaviour stays
|
|
* SweepVF, AmpIII default value adjustments
|
|
|
|
0.1.10
|
|
* HRTF recursion runs in doubles
|
|
* Cabinet recursion runs in doubles for much clearer sound
|
|
* all amps fitted with a common tube voltage mapping, dsp/TwelveAX7.h
|
|
* all amps: temperature and gain controls changed slightly
|
|
* all amps declared in one common Amp.h
|
|
* Pan echo fixed to be filtered independent of sample rate
|
|
* Cabinet cosmetics and activate() from port values fix
|
|
* SweepVF fixed to activate() from the current control settings
|
|
* rid all *amp* plugins of the initial hi-pass, not needed anymore
|
|
* PreampIII and AmpIII more authentic with an rbj lo-shelve, +6 dB > 1.2 kHz
|
|
as hinted by circuit analysis
|
|
* something_random() removed, stdlib for random generation
|
|
|
|
0.1.9
|
|
* Pan plugin
|
|
* 'make depend' instead of 'make dep', uses $(CC) -MM instead of 'makedepend'
|
|
* *Chorus, AmpIII, Plate defaults changed
|
|
* *Chorus optimizations, reintroduces funny zipper noise when 'feedback' is
|
|
non-zero and 't' is changed
|
|
* experimental HRTF plugin
|
|
* Plate 'blend' goes all the way to wet output only
|
|
* dsp/White offers a get_31() method for reduced number of bitshifts needed
|
|
* *Chorus delay line tapping changed to employ cubic interpolation, sounds
|
|
better
|
|
* SweepVF modulation mix algorithm changed to clamp if over-fed, makes
|
|
for wider sweeps
|
|
|
|
0.1.8
|
|
* all oversampling plugins use Kaiser windows instead of Blackman-Harris,
|
|
for much better performance
|
|
* SweepVF modulation range slightly increased
|
|
* Cabinet filter loop cosmetics (slight speedup)
|
|
* new AmpIII Plugin: Preamp plus power amp emulation
|
|
* lowered NOISE_FLOOR (equals 'renormal' number)
|
|
|
|
0.1.7
|
|
* connect ports to lower bound on instantiate()
|
|
* Plate delay line lengths raised, sound changed
|
|
* Eq activate() fixed to initialize from the current settings
|
|
* Preamp* cutoff reverted to 0.1.3 setting, thanks to Ben Saylor for
|
|
testing
|
|
* old IIR-based Preamp cleaned from the sources
|
|
* zipper-noise in *Chorus units for t changes with feedback > 0 eliminated
|
|
* all plugin constructor code moved to init() calls
|
|
|
|
0.1.6
|
|
* SweepVF modulation mix algorithm changed to maintain proportion, not
|
|
absolute value if x + y + z > 1, for better control
|
|
* create $(DEST) directory on make install, pointed out by Daniel James
|
|
|
|
0.1.5
|
|
* fixed delay line length miscalculation in ModLattice
|
|
|
|
0.1.4
|
|
* SweepVF modulation source can be mixed now
|
|
* latency port for VCO*
|
|
* Lorenz and Roessler get x, y, z mixing knobs
|
|
* PreampIV eq bands slightly tuned and coefficients moved into common struct
|
|
* Preamp*, VCO* downsampler filter cutoff lowered
|
|
* Clip downsampler filter cutoff lowered
|
|
* nonsensical audio output bounds removed
|
|
* simplified VCO* implementation
|
|
* JVRev rewritten for code clarity (funny enough, it also got quicker)
|
|
* fixed JVRev to reset its history on activate()
|
|
* added purpose, copyright and licensing information to all (i think) files.
|
|
* HACKING file
|
|
* CHANGES file
|
|
|
|
0.1.3
|
|
* fixed all compilation problems with gcc 3.3, with the patient help
|
|
of the lad mailing list community
|
|
* dsp/Eq.h SSE assembler code had to go (gcc > 3 doesn't like multi-line
|
|
asm, and efficiency and even reliability go down if we allow gcc to
|
|
intersperse its 'optimization' code with our asm)
|
|
|
|
0.1.2
|
|
* fixed more compilation problems with gcc >= 3.0
|
|
|
|
0.1.1
|
|
* tried to (but didn't really) fix compilation problem with ladspa.h
|
|
|
|
0.1.0
|
|
* initial release
|
|
</pre>
|
|
|
|
<p id=foot>
|
|
<a name=dat97-1 href=#dat97-1-1>[1]</a>
|
|
J. Dattorro, "Effect Design Part 1: Reverberator and Other Filters",
|
|
<i>J. Audio Eng. Society</i>, vol. 45, No. 9 (1997 September).<br>
|
|
<a name=yeh06 href=#yeh06-1>[2]</a>D.T. Yeh, and J.O. Smith,
|
|
" Discretization of the '59 Fender Bassman Tone Stack",
|
|
<i>Proc. of the Int. Conf. on Digital Audio Effects (DAFx-06)</i>,
|
|
Montreal, Quebec, Canada, Sept. 18–20, 2006, pp. 1-6.<br>
|
|
</p>
|
|
|
|
</div>
|
|
<br>
|
|
|
|
<div class=foot>
|
|
tim@<a href=http://quitte.de/>quitte.de</a>, March 26 2011.
|
|
</div> </center>
|
|
</body>
|
|
</html>
|