123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716 |
- <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>
|