C*A*P*S
The C* Audio Plugin Suite

Version 0.9.10
August 2013

The C* Audio Plugin Suite is a selection of classic effects as well as some more exotic filters and signal generators.  The digital guitarist finds in CAPS a range of processors recreating key aspects of the formation of tone in traditional electronic instrument amplification.  Beyond sound quality, central design considerations are latency-free realtime operation and modesty of resource demands. 

CAPS is developed by Tim Goetze <tim@quitte.de>, with the ToneStack contribution by David T. Yeh.  Ideas, tools, concepts, examples and suggestions from numerous sources have been vital to the project; for an incomplete list see the references. 

Considerations

Compatibility

As a LADSPA library, the C* Audio Plugin Suite is only concerned with audio manipulation and does not offer any sort of user interface.  Thus, it is in principle not bound to a particular operating system or architecture.  However, compatible host applications concerned with music production will usually be found on a Linux system, or occasionally on Apple's OSX. 

CAPS for Electric Guitar

To produce a workable digital audio stream from an electric guitar, it is essential that the instrument is connected through a high-quality high-impedance input device.  No effects or equalisation should be applied before digitisation.  In terms of signal power, the full input range of the analog-to-digital converter should be exhausted but never exceeded. 

The simplest recommended chain consists of

AmpVTSCabinetIVPlate

and is fully monophonic up to the stereo outputs of the Plate plugin. 

Realtime Use

All plugins are explicitly designed for realtime operation.  CPU load is usually constant, but in some cases it can vary slightly with the character of the input signal, or more noticeably with parameter choices (for example, some plugins allow different choices for the oversampling ratio, where one step up often implies nearly twice the computational load). 

Sample Rate

The CAPS plugins can be run – and should sound roughly the same, except where noted – at any sample rate up to 192 kHz.  The recommended range of operation however is at 44.1 or 48 kHz. 

Parameter Smoothing

To prevent 'zipper' noise, some control inputs are smoothened by sweeping internal parameters.  The duration of this sweep will vary with the audio system setup.  For realtime use in most host applications it is equal to the audio processing block size (the 'frames per period' in jackd[jackd] terms).  As a consequence, control adjustments recorded with a sequencer can result in subtle sound differences when played back with a different block size. 

Denormals

Before a CAPS release is published, a test is run on all plugins verifying that no denormal numbers are produced.  Naturally, these tests cannot exhaust all possible plugin parameter combinations.  While regarded as unlikely, it is not impossible that an unfortunate combination of parameters may still give rise to denormals. 

LADSPA Extensions

CAPS uses:

#define LADSPA_PORT_GROUP 16

as a flag set in LADSPA_PortDescriptor to denote ports which start a logical group. 

Control Conventions

Where applicable, units are appended to the respective control labels in parentheses following a single space character, for example "gain (dB)" denotes a gain control whose value is measured in dB.  Host applications are encouraged to strip the unit from the control's label and attach it to the representation of its value instead, e.g. "gain: -6 dB". 

CAPS Version Query

Regrettably, any part or feature of CAPS may change in new releases, sometimes even change drastically or be removed entirely, for the greater good of readily realisable improvements.  In particular, it would be unwise to expect port ordering and naming to be consistent between releases. 

Since version 0.9.0 of the library, applications relying on a particular release can query:

  void * h = dlopen ("/path/to/caps.so", RTLD_LAZY);
  /* assuming h is valid */
  const short * caps = (const short *) dlsym (h, "CAPS_version");
  if (caps)
    printf ("found caps version %hd.%hd.%hd\n", caps[0], caps[1], caps[2]);

Host applications are encouraged to use this information to form a persistent plugin identifier, should one be needed. 

Bugs and Feedback

If you happen to stumble upon a bug in CAPS or want to make a related remark, I'll be happy to hear from you at tim@quitte.de. 

NoiseGate 2602

Attenuate hum and noise

1 in, 1 out

controlmin.00 max.00 
open-60.00-45.000.00dB
attack0.00.753.00ms
close-90.00-67.500.00dB
mains0.0050.00100.00Hz
0.00 off
50.00 global
60.00 imperial
 

This plugin aims to reduce undesirable background noise and hum in otherwise silent passages. 

When the signal's instantaneous amplitude exceeds the opening threshold, a gate is opened allowing the input signal to pass through.  The time it takes for the gate to open fully can be set with the attack control.  As soon as the signal's RMS power level drops below the closing threshold, the gate closes.  Closing the gate takes a fixed time of 20 ms; the closed gate attenuates the signal by 60 dB. 

To cope with powerline hum as often present in signals from electric guitars, a notch filter can be activated by setting the mains frequency control to a non-zero value.  The filter will prevent this frequency from contributing to the signal power measurement.  While this by itself doesn't eliminate any hum in the signal, it allows the closing threshold to be lowered further without mains hum keeping the gate open unduly.  The default mains setting is 50 Hz. 

Compress 1772

Compressor and saturating limiter

1 in, 1 out

Frequency response, default settings, fs=44.1 kHzFrequency response, maximum quality, fs=44.1 kHz
controlmin.00 max.00 
measure0.000.001.00
0.00 peak
1.00 rms
 
mode0.001.003.00
0.00 linear
1.00 saturating 2x
2.00 saturating 4x
3.00 saturating 4x128
 
threshold0.000.001.00
strength0.00.251.00
attack0.000.001.00
release0.00.251.00
gain-12.000.0024.00dB

This compressor has been designed primarily to create natural-sounding sustain for the electric guitar without sacrificing its brightly percussive character.  However, it appears to apply well to a variety of other sound sources, and with Compress2x2 a stereo version is available as well. 

To be able produce strong compression and a natural-sounding attack, the design captures power spikes with a soft saturation circuit, producing additional harmonic content instead of peaking above 0 dB.  This is the default setting of the mode control, using an approximated atan saturation function.  Three oversampling options are available, 2x with 32-tap filters and 4x with 64 and 128 taps. 

The measure control selects different signal power measurement options.  peak – instantaneous amplitude – measurement allows the unit to react very quickly, while rms – root mean square power – is of a gentler kind. 

When the input signal's power rises above the level determined by the threshold control, the compressor starts to attenuate the signal.  The attenuation ratio is controlled through the strength knob, 0 effectively disabling compression, and 1 corresponding to a ratio of up to 16:1.  attack and release set the speed of the compressor's gain changes, with higher values corresponding to slower reactions. 

Compress2x2 2598

Stereo compressor and saturating limiter

2 in, 2 out

controlmin.00 max.00 
measure0.000.001.00
0.00 peak
1.00 rms
 
mode0.001.002.00
0.00 linear
1.00 saturating 2x
2.00 saturating 4x
 
threshold0.000.001.00
strength0.00.251.00
attack0.000.001.00
release0.00.251.00
gain-12.000.0024.00dB

This stereo version of Compress applies uniform compression to both channels in proportion to their combined power. 

ToneStack 2589

Classic amplifier tone stack emulation

1 in, 1 out

controlmin.00 max.00 
model0.000.009.00
0.00 basswoman
1.00 twin
2.00 wookie
3.00 DC 30
4.00 juice 800
5.00 stanford
6.00 HK 20
7.00 nihon ace
8.00 porky
9.00 5F6-A LT
 
bass0.00.501.00
mid0.00.501.00
treble0.00.501.00

This emulation of the tone stack of a traditional Fender-design instrument amplifier has been devised and implemented by David T. Yeh[yeh06] (the hard part), with subsequent expansion to include more amplifier models by Tim Goetze (the easy part). 

Due to the nature of the original circuit, the bass, mid and treble controls are not operating independently as in a modern three-way equaliser. 

All but the last model are using the procedural implementation with continuously updated direct form II filters and sample rate independency.  It must be noted that the "DC 30" preset has been included despite the slight difference in layout between the British original and the Fender circuit. 

The "5F6-A LT" model is using the lattice filter implementation mentioned in the paper, operating on precomputed simulation data for 44.1 kHz. 

AmpVTS 2592

Idealised guitar amplification

1 in, 1 out

Frequency response with default settingsOutput for 250 Hz sine wave input, default settingsSpectrum of the sine wave output
controlmin.00 max.00 
over0.001.002.00
0.00 2x
1.00 4x
2.00 8x
 
gain0.00.251.00
bright0.00.501.00
power0.00.501.00
tonestack0.001.008.00
0.00 basswoman
1.00 twin
2.00 wookie
3.00 DC 30
4.00 juice 800
5.00 stanford
6.00 HK 20
7.00 nihon ace
8.00 porky
 
bass0.00.251.00
mid0.001.001.00
treble0.00.751.00
attack0.00.251.00
squash0.00.501.00
low cut0.00.751.00

Tracing the stages of an idealised circuit, this plugin aims to recreate those features of traditional guitar amplification electronics that have proved musically useful, and to provide them with the most musical rather than the most authentic ranges of adjustment and character.  CabinetIV provides matching recreations of loudspeaker cabinets. 

The processor consists – with some interconnections – of a configurable low cut input filter, a ToneStack circuit of the procedural variant, a saturating 'preamp' stage with adjustable gain and variable distortion asymmetry followed by the bright filter, compression characteristics determined by the attack and squash controls and finally a 'power amp' stage with the amount of saturation depending on both gain and power settings. 

Sound quality and computational load can be balanced with the over control affording a choice of 2x or 4x oversampling with 32-tap filters, or 8x with 64 taps.  Lower quality settings will sound slightly grittier and less transparent, and at high gain aliasing may become audible. 

CabinetII 2581

Simplistic loudspeaker cabinet emulation

1 in, 1 out

Impulse response
controlmin.00 max.00 
model0.001.007.00
1.00 unmatched A
2.00 unmatched B
3.00 supertramp
4.00 little wing 68
5.00 martial
6.00 mega wookie
7.00 pro sr
 
gain-24.000.0024.00dB

Unlike the FIR or FFT convolution approaches usually employed to emulate instrument amplifier loudspeaker cabinets, the IIR filtering utilised by this plugin is latency-free and truly resonant at much lower computational cost, but it trades response fidelity for these advantages.  Nonlinear effects arising in loudspeakers transmitting high power signals[yeh08] are not modeled. 

Several classic amps and cabinets are implemented as 32nd order filters at sample rates of 44.1, 48, 88.2 and 96 kHz (the lower two being recommended because of their greater fidelity).  model 0 puts the unit in bypass mode. 

It has turned out that the approximation process used to generate these filters had a tendency to come to rest at local minima.  Subsequently, a greatly improved successor has been implemented with CabinetIV. 

CabinetIII 2601

Idealised loudspeaker cabinet emulation

1 in, 1 out

Impulse response
controlmin.00 max.00 
model0.001.002.00
0.00 wookie A
1.00 wookie B
2.00 wookie C
 
gain-24.000.0024.00dB

This predecessor of CabinetIV employs twice the number of IIR filters to offer three loudspeaker cabinet recreations, precomputed for a sample rate of 44.1 kHz. 

CabinetIV 2606

Idealised loudspeaker cabinet emulation

1 in, 1 out

Sample impulse responseSpectrum at fs=44.1 kHz
controlmin.00 max.00 
model0.0012.0024.00
0.00 mega wookie 800
1.00 mega wookie 812
2.00 mega wookie 828
3.00 mega wookie 868
4.00 mega wookie 908
5.00 mega wookie 912
6.00 mega wookie 936
7.00 mega wookie 968
8.00 mega wookie 992
9.00 unmatched
10.00 twin A
11.00 twin B
12.00 twin C
13.00 blue A
14.00 blue B
15.00 tweedie A
16.00 tweedie B
17.00 mini wookie A
18.00 mini wookie B
19.00 rosie A
20.00 rosie B
21.00 indigo
22.00 angel
23.00 sixty-one
24.00 sixty-two
 
gain-24.000.0024.00dB

This plugin improves on the cabinet modeling of CabinetII by applying the method described by Balázs Bank[bank07].  From several hundred response shapes automatically created in the likeness of classic guitar amplifier loudspeaker cabinets, a selection has been narrowed down to a handful of idealised tones.  As with AmpVTS, which provides a matching recreation of traditional guitar amplification, the design and selection process has been ruled by musicality over fidelity. 

The filter banks implemented are 64 2nd order IIR and one 128-tap FIR in parallel.  Their parameter presets are designed for operation at 44.1 and 48 kHz and shared between these sample rates, so their tone will differ due to the shifted frequency response.  In addition to these preset rates, higher sample rates up to 192 kHz are supported by down- and upsampling as needed.  The rate conversion filters are 32-tap at 2x rate (88.2 and 96 kHz) and 64-tap at 4x, and add roughly as many samples of latency.  Their stopband attenuation is > 96 dB at 2x and 80 dB at 4x. 

Despite the complexity, computational load is very modest thanks to vectorised floating point arithmetic if a SIMD instruction set of reasonable performance is available – if not, the load will be easily an order of magnitude higher, and possibly found to be prohibitive. 

JVRev 1778

Stanford-style reverb from STK

1 in, 2 out

Impulse response mixed to mono
controlmin.00 max.00 
bandwidth0.00.501.00
t600.002.805.60s
blend0.00.251.00

Rather modest in terms of resource demands, this unit still manages to produce decent reverberation.  Nevertheless, unless tight resource limits must be met, considering the Plate reverberator is recommended. 

The plugin is an adaptation of a unit found in STK[stk] with minor tweaks, such as the addition of the input bandwidth control suppressing high-frequency content before it enters the reverberation stages. 

The t60 control sets the time it takes for the reverb tail to decay to -60 dB. 

Plate 1779

Versatile plate reverb

1 in, 2 out

Impulse response mixed to mono
controlmin.00 max.00 
bandwidth0.00.751.00
tail0.00.501.00
damping0.00.251.00
blend0.00.251.00

This reverb processor is an adaptation of the design discussed by Jon Dattorro[dat97a] who attributes it to David Griesinger.  In comparison with the simpler and faster JVRev, a smoother and more pleasing reverb response is achieved through a much larger network of delay lines, two of which are modulated very subtly, in a chorus-like fashion. 

The bandwidth control reduces high-frequency content before it enters the 'tank', while damping controls how quickly the reverberating tail darkens. 

Plate2x2 1795

Versatile plate reverb, stereo inputs

2 in, 2 out

controlmin.00 max.00 
bandwidth0.00.751.00
tail0.00.501.00
damping0.00.251.00
blend0.00.251.00

This version of the Plate reverberator comes with stereo inputs. 

Saturate 1771

Various overdrive models, 8x oversampled

1 in, 1 out

Output for 250 Hz sine wave input at 24 dB gain and bias 0.3Spectrum of the above
controlmin.00 max.00 
mode0.001.0011.00
0.00 bypass
1.00 atan
2.00 atan15
3.00 clip
4.00 one5
5.00 one53
6.00 clip3
7.00 clip9
8.00 sin1
9.00 pow7
10.00 tanh
11.00 rectify
 
gain-24.000.0072.00dB
bias0.000.001.00

A collection of popular saturating models, from simple digital clipping to diodes to tubes. 

Even-order harmonics can be added with waveshaping asymmetry controlled with the bias setting.  Towards higher settings sound will start to get scratchy and eventually starve away. 

"rectify" is not a saturating mode, but a half-wave rectification function without gain application. 

The plugin is 8x oversampled with 64-tap polyphase filters, effectively suppressing aliasing noise for most musical applications.  In order to reduce the computational load incurred when evaluating transcendental functions at eight times the nominal sample rate, these are approximated roughly, using Chebyshev polynomials whose coefficients depend on the amplitude's floating point representation exponent. 

Spice 2603

Not an exciter

1 in, 1 out

Example bass harmonic synthesis for 100 Hz sine input
controlmin.00 max.00 
lo.f50.00137.50400.00Hz
lo.compress0.001.001.00
lo.gain0.00.251.00
hi.f400.001550.005000.00Hz
hi.gain0.00.251.00

This plugin aims to enhance clarity of perception of thin or muddy sound, for example when signal quality has been lost through analog low-fidelity transmission.  The effect is also very useful when more bass register definition is called for. 

Bass and treble portions of the signal are isolated using two 24 dB/octave Linkwitz-Riley crossover networks[lr76] to ensure a flat frequency response at zero effect intensity (controlled through the .gain settings).  The dynamic range of the bass portion is compressed and a polynomial waveshaper is used to synthesise a first, second and third harmonic.  This enhances the perception of the fundamental frequency, being the difference tone of the harmonics.  Treble band processing applies a tube-like saturation function without compression.  Synthesised harmonic content is shaped through bandpass and highpass filters and mixed back into the crossover sum signal. 

Spice2x2 2607

Not an exciter

2 in, 2 out

controlmin.00 max.00 
lo.f50.00237.50800.00Hz
lo.compress0.001.001.00
lo.gain0.00.251.00
hi.f400.001550.005000.00Hz
hi.gain0.00.251.00

A stereo version of Spice.  Bass compression is governed by the sum of both channels, as in Compress2x2.  Nonetheless, harmonic generation differing between the two channels can cause subtle changes to the stereo image. 

ChorusI 1767

Mono chorus/flanger

1 in, 1 out

controlmin.00 max.00 
t2.5011.8840.00ms
width.502.8810.00ms
rate0.001.255.00Hz
blend0.001.001.00
feedforward0.00.251.00
feedback0.000.001.00

A standard mono chorus with optional feedback.  The parameter range suits subtle effects as well as all-out flanging.  Modifying the delay time t when feedback is active will cause audible 'zipper' noise. 

ChorusII 2583

Multivoice chorus modulated by a fractal

1 in, 1 out

controlmin.00 max.00 
t2.508.1225.00ms
width.502.8810.00ms
rate0.00.251.00
blend0.00.501.00
feedforward0.00.501.00
feedback0.000.001.00

This unit simulates additional unison voices by adding delayed and pitch-modulated copies of the input signal.  To reduce the effect's predictability, pitch modulation of the added voices is steered by a Roessler fractal. 

There's also StereoChorusII, with stereo output, and StereoChorusII2x2 with a full stereo path. 

StereoChorusII 2584

Stereo chorus modulated by a fractal

1 in, 2 out

controlmin.00 max.00 
t2.508.1225.00ms
width.502.8810.00ms
rate0.00.251.00
blend0.00.251.00
feedforward0.001.001.00
feedback0.00.501.00

Two modified ChorusII units in parallel give extra depth and stereo width to the effect.  There's also StereoChorusII2x2 with a full stereo path. 

StereoChorusII2x2 2605

Stereo chorus modulated by a fractal

2 in, 2 out

controlmin.00 max.00 
t2.508.1225.00ms
width.502.8810.00ms
rate0.00.251.00
blend0.00.251.00
feedforward0.001.001.00
feedback0.00.501.00

Two modified ChorusII units work in parallel to give extra depth and stereo width to the effect.  This version of StereoChorusII comes with stereo inputs. 

PhaserII 2586

Mono phaser modulated by a Lorenz attractor

1 in, 1 out

controlmin.00 max.00 
rate0.00.251.00
depth0.001.001.00
spread0.00.501.00
resonance0.000.001.00

A number of notch filters are swept across a wide frequency band.  To reduce the effect's predictability, the sweep modulation is steered by a Lorenz fractal. 

depth controls the strength of the filtering, spread the distance between the notch frequencies, and feedback can be used to add resonance to the effect.  At high settings, this can turn into self-oscillation peaking in excess of 0 dB. 

There's also StereoPhaserII, with stereo output, and StereoPhaserII2x2 with a full stereo path. 

StereoPhaserII 2596

Two-channel phaser modulated by a Lorenz attractor

1 in, 2 out

controlmin.00 max.00 
rate0.00.251.00
depth0.001.001.00
spread0.00.501.00
resonance0.000.001.00

Two PhaserII units in parallel give extra depth and stereo width to the effect.  There's also StereoPhaserII2x2 with a full stereo path. 

StereoPhaserII2x2 2597

Two-channel phaser modulated by a Lorenz attractor

2 in, 2 out

controlmin.00 max.00 
rate0.00.251.00
depth0.001.001.00
spread0.00.501.00
resonance0.000.001.00

Two PhaserII units work in parallel provide extra effect depth and stereo width.  This version of StereoPhaserII comes with stereo audio inputs. 

AutoFilter 2593

Resonant automodulating filter

1 in, 1 out

controlmin.00 max.00 
over0.001.003.00
0.00 none
1.00 2x
2.00 4x
3.00 8x
 
mode0.001.001.00
0.00 low pass
1.00 band pass
 
filter0.001.004.00
0.00 breathy
1.00 fat A
2.00 fat B
3.00 fat C
4.00 fat D
 
gain0.006.0024.00dB
f43.00968.003743.00Hz
Q0.000.001.00
range0.001.001.00
lfo/env0.00.251.00
rate0.00.251.00
x/z0.001.001.00

A selection of resonant ladder filters with inter-stage saturation.  The cutoff frequency can be modulated by both the input signal envelope and by a Lorenz attractor.  The default settings provide an automatic wah effect. 

The extent of filter modulation is set through the range parameter.  The shape of the modulation is mixed from the attractor and the envelope according to the lfo/env balance.  The attractor signal itself changes with the x/z parameter (there are waveform plots shown with the Lorenz plugin). 

Filter stage gain can be used to generate heavy saturating distortion.  To prevent this from causing audible aliasing, the plugin can be run in oversampled mode, at ratios selectable through the over control. 

Computational load varies greatly with the over and filter settings. 

Scape 2588

Stereo delay with chromatic resonances

1 in, 2 out

controlmin.00 max.00 
bpm30.0097.00164.00
divider2.003.004.00
2.00 eighths
3.00 triplets
4.00 sixteenths
 
feedback0.00.751.00
dry0.00.501.00
blend0.001.001.00
tune415.00440.00467.00

A stereo delay with resonant filters and fractally modulated panning. 

The delay times are set through the bpm control and the divider adjustment.  Triplet and sixteenth settings create a dotted rhythm.  With every beat, the filter resonance frequencies are retuned to random steps on an equal-tempered chromatic scale, to the reference set through the tune control. 

Pan 1788

Stereo image

1 in, 2 out

controlmin.00 max.00 
pan-1.000.001.00
width0.001.001.00

In addition to the basic panorama control, the Pan plugin creates a perception of stereo width by introducing frequency-dependent phase shift between the two output channels. 

At center pan, the sum of the two output channels will equal the input. 

The design of this plugin owes to the Orban 245F Stereo Synthesizer[orban93]. 

Narrower 2595

Stereo image width reduction

2 in, 2 out

controlmin.00 max.00 
mode0.000.001.00
0.00 crossfeed mixing
1.00 mid/side processing
 
strength0.00.251.00

This plugin reduces the width of a stereophonic signal.  Its primary use is for headphone listening to music that was panned very creatively. 

Mid/side processing tends to sound more transparent for moderate strength settings.  However, it will more strongly attenuate signals that are panned to the far sides of the stereo image (rarely encountered in contemporary music production anymore but quite common, for example, on early Beatles recordings). 

Eq 1773

10-band equalizer

1 in, 1 out

controlmin.00 max.00 
31 Hz-48.000.0024.00dB
63 Hz-48.000.0024.00dB
125 Hz-48.000.0024.00dB
250 Hz-48.000.0024.00dB
500 Hz-48.000.0024.00dB
1 kHz-48.000.0024.00dB
2 kHz-48.000.0024.00dB
4 kHz-48.000.0024.00dB
8 kHz-48.000.0024.00dB
16 kHz-48.000.0024.00dB

Classic octave-band biquad-filter design, basically a direct digital translation of the analog original.  There's also a stereo version (Eq2x2). 

Suitable for all sample rates (bands centered above the Nyquist frequency are automatically disabled). 

Eq2x2 2594

Stereo 10-band equalizer

2 in, 2 out

controlmin.00 max.00 
31 Hz-48.000.0024.00dB
63 Hz-48.000.0024.00dB
125 Hz-48.000.0024.00dB
250 Hz-48.000.0024.00dB
500 Hz-48.000.0024.00dB
1 kHz-48.000.0024.00dB
2 kHz-48.000.0024.00dB
4 kHz-48.000.0024.00dB
8 kHz-48.000.0024.00dB
16 kHz-48.000.0024.00dB

The controls of this stereo version of Eq apply to both channels. 

Sin 1781

Sine wave generator

1 out

controlmin.00 max.00 
f0.00100.0020000.00Hz
volume0.00.501.00

The old friend, indispensable for testing and tuning. 

White 1785

Noise generator

1 out

controlmin.00 max.00 
volume0.00.751.00

Mostly white pseudonoise, mixed and filtered from the output of two Dattorro multibit generators[dat02]. 

Lorenz 1774

Audio stream from a Lorenz attractor

1 out

Only x (y similar)Only zDefault parameters
controlmin.00 max.00 
rate0.00.251.00
x0.001.001.00
y0.000.001.00
z0.000.001.00
volume0.00.501.00

The Lorenz attractor[lorenz63], derived from the Navier-Stokes equations, models deterministic chaos. Self-similar but not repeating, it is a useful modulation source. 

The x, y and z controls set the amplitude of the respective variables of the system in the output audio signal. 

The output signal varies with the sample rate. 

Roessler 1780

Audio stream from a Roessler attractor

1 out

Only x (y similar)Only zDefault parameters
controlmin.00 max.00 
rate0.00.251.00
x0.001.001.00
y0.00.501.00
z0.000.001.00
volume0.00.501.00

The Rössler attractor[roessler76] is similar to the Lorenz system but contains only one non-linearity. 

The x, y and z controls set the amplitude of the respective variables of the system in the output audio signal. 

The output signal varies with the sample rate. 

Click 1769

Metronome

1 out

Spectrum of default clickbeep model
controlmin.00 max.00 
model0.001.002.00
0.00 box
1.00 stick
2.00 beep
 
bpm4.0099.00384.00
volume0.00.751.00
damping0.00.751.00

A sample-accurate metronome.  Two simplistic modal synthesis models are available for the click: box is a small wooden box struck with a soft wooden mallet, and stick is the recreation of a noisy stick hit.  In addition, there's also a beep. 

The click sound is synthesised once when the plugin is loaded and then played back from memory. 

CEO 1770

Chief Executive Oscillator

1 out

controlmin.00 max.00 
ppm30.0080.50232.00
volume0.00.751.00
damping0.000.001.00

The Chief Executive Oscillator forever calls for more profit. 

Sound data sourced from the flite[flite] application. 

Dirac 2585

One-sample impulse generator

1 out

controlmin.00 max.00 
ppm2.0091.50360.00
volume0.00.751.00
damping0.000.001.00

This plugin generates a sparse train of single-sample pulses.  Its primary uses are testing, basic impulse response retrieval and filter excitation. 

The number of pulses per minute is set through the ppm control. 

Install

To build from source code, a modern UNIX environment with the GNU C++ compiler is required.  CAPS itself has no external dependencies other than the standard C/C++ runtime libraries.  Hardware IEEE floating point support is highly recommended. 

$ tar xfj caps-doc_0.9.10.tar.bz2
$ cd caps-0.9.10
$ ./configure.py
$ make
$ sudo make install

configure.py enables the use of SSE3 SIMD instructions – crucial for the performance of the CabinetIV plugin – according to the contents of /proc/cpuinfo on Linux.  When building for a non-i686 platform, SIMD-enabling compiler flags should be set manually in defines.make or by patching configure.py.  i686 OSX builds are configured "fat", i.e. contain both 32- and 64-bit code. 

Changelog

0.9.10
  * DSP::RMS protected against negative sum of squares 
  * documentation updates

0.9.9
  * OSX compilation configuration refinements

0.9.8
  * Spice enabled by default, Spice2x2 added
  * AmpVTS default oversampling ratio changed to 4x
  * JVRev refinements
  * Cabinet gain upper limit reinstated to 24 dB
  * AutoFilter modulation slightly adjusted
  * more *ChorusII modulation smoothness
  * 1st-order IIR lp set_f fix part 2
  * 1st-order IIR lp set_f fix part 1
  * 1st order low-pass for AutoFilter modulation LFO
  * DelayTapA removed
  * README updated
  * Click 'stick' sound brightened
  * moved processor_specific_denormal_measures() to activate(), speedup

0.9.7
  * ChorusI is back
  * AutoFilter modulation range and default parameter updates

References and Acknowledgements

Tim Goetze would like to express his gratitude to David T. Yeh, Sampo Savolainen, Klaus Tenner, Paul Davis, Damon Chaplin, Paul Winkler, Pete Leigh and Niclas Wretström, and to:

[bank07]

Balázs Bank, "Direct Design of Parallel Second-Order Filters for Instrument Body Modeling",
Proc. of the Int. Computer Music Conference (ICMC07) Copenhagen, Denmark, Aug. 2007, vol. I., pp. 458-465.

[dat02]

Jon Dattorro, "Effect Design Part III: Oscillators: Sinusoidal and Pseudonoise",
J. Audio Eng. Society, vol. 50, No. 3 / March 2002.

[dat97a]

Jon Dattorro, "Effect Design Part I: Reverberator and Other Filters",
J. Audio Eng. Society, vol. 45, No. 9 / September 1997.

[dat97b]

Jon Dattorro, "Effect Design Part II: Delay-Line Modulation and Chorus",
J. Audio Eng. Society, vol. 45, No. 10 / October 1997.

[flite]

"flite: a small simple speech synthesizer",
Carnegie Mellon University 2009,
http://cmuflite.org/

[jackd]

Paul Davis and contributors,
The JACK Audio Connection Kit,
http://jackaudio.org/

[ladspa]

Richard W.E. Furse, Paul Barton-Davis, Stefan Westerfeld,
"Linux Audio Developer's Simple Plugin API (LADSPA)" version 1.1,
Linux Audio Developers mailing list, 2002.
http://www.ladspa.org/

[lorenz63]

Edward N. Lorenz, "Deterministic Nonperiodic Flow",
Journal of the Atmospheric Sciences vol. 20, 1963, pp. 130-141.

[lr76]

Siegfried Linkwitz, "Active Crossover Networks for Noncoincident Drivers",
J. Audio Eng. Society, vol. 24, No. 1 / February 1976.

[musicdsp]

The music-dsp mailing list and its archive,
http://musicdsp.org/
notably [rbj], Andrew Simper's state-variable filter, Bram de Jong's phaser

[octave]

John W. Eaton and contributors,
GNU Octave,
http://octave.org/

[orban93]

AKG Acoustics,
245F Manual, San Leandro, California, USA, 1993.

[rbj]

Robert Bristow-Johnson, "Cookbook formulae for audio EQ biquad filter coefficients"

[roessler76]

O.E. Rössler, "An Equation for Continuous Chaos",
Physics Letters, vol. 57, Issue 5, 12 July 1976, pp. 397–398.

[seanderbits]

Sean Eron Anderson, "Bit Twiddling Hacks",
http://graphics.stanford.edu/~seander/bithacks.html

[spice73]

Laurence W. Nagel and D.O. Pederson, "SPICE (Simulation Program with Integrated Circuit Emphasis)",
Memorandum No. ERL-M382, EECS Department, University of California, Berkeley, USA, April 1973.

[stk]

Perry R. Cook and Gary P. Scavone,
The Synthesis ToolKit in C++ (STK)
http://ccrma.stanford.edu/software/stk/

[swh]

Steve W. Harris,
swh-plugins,
http://plugin.org.uk/

[yeh06]

D.T. Yeh and J.O. Smith, "Discretization of the '59 Fender Bassman Tone Stack",
Proc. of the Int. Conf. on Digital Audio Effects (DAFx-06), Montreal, Quebec, Canada, Sept. 18–20, 2006, pp. 1-6.
also https://ccrma.stanford.edu/~dtyeh/tonestack/

[yeh08]

D.T. Yeh, B. Bank, and M. Karjalainen, "Nonlinear modeling of a guitar loudspeaker cabinet",
Proc. of the Int. Conf. on Digital Audio Effects (DAFx-08), Espoo, Finland, Sept. 1–4, 2008, pp. 89-96.