LADSPA Wave Sculpting Plugins documentation

Artemiy I. Pavlov

2005-11-14

Revision History
Revision 0.1.42005-11-14
Documentation for the version 0.1.4 of the Wave Sculpting Plugins

Abstract

The Wave Sculpting Plugins is a set of LADSPA plugins which includes both processors and generators. While being pretty simple and not CPU-hungry, they incorporate such interesting algorithms as a multi-mode wave shaper, noisifier, clipping booster and variable noise source.

Latest version

You will always find the latest release of the Wave Sculpting Plug-ins, check out the changes log and get the newest documentation at http://artemiolabs.com/software/wasp/.


Table of Contents

1. Introduction
1.1. What is WASP
1.2. Testing
1.3. Bugs and suggestions
1.4. Acknowledgements
2. Installation
2.1. Requirements
2.2. Compiling from source
2.3. RPM package
2.4. Generic binary package
3. WASP processors
3.1. Clipping booster
3.2. Noisifier
3.3. X-Shaper
4. WASP generators
4.1. Variable Noise

1. Introduction

1.1. What is WASP

WASP stands for "WAve Sculpting Plugins". It is a growing collection of software plugins written according to the LADSPA standard, which can be used in a very wide range of applications including audio editors, synthesisers and effect processors. All the processors and generators in the WASP set include two variants - mono and stereo.

WASP doesn't have any sophisticated plugins (yet), but it does fill the gap in the variety of currently-available LADSPA sets. The plugins are pretty simple, but very useful in many situations. For example, here you will find a non-linear amplifier with various transmission curves - from round and parabolic to sine and non-linear sine - which can be used to create a wide variety of interesting and even unique distortion effects. Also there are some nice plugins like hard clipping booster and noisifier.

1.2. Testing

All plugins in the WASP set have been thoroughly tested with the following LADSPA hosts:

  • applyplugin
  • ALSA Modular
  • Hydrogen
  • Audacity
  • Sweep

1.3. Bugs and suggestions

If you ever encounter a problem with any plugin in the WASP set, or have some idea or suggestion for an improvement or a new plugin - please do not hesitate to let me know by sending an e-mail from the ArtemioLabs web site.

1.4. Acknowledgements

I would like to thank the following people for helping me develop my own LADSPA plugin set in this or that way:

  • Richard Furse for his great plugin examples
  • Lars Luthman, Fons Adriansen and Steve Harris for their invaluable help at the linux-audio-dev list
  • Alessandro Cominu for helping with debugging my very first (and buggy) plugin
  • Tim Goetze for kindly providing a range of vacant plugin IDs

2. Installation

2.1. Requirements

It is obvious that if you want to use the plugins in the WASP set, you need to have at least one host application installed on your system. The list of most popular software with LADSPA support is there at the LADSPA web site.

If you will be building WASP from source, you will need the standard set of development tools (C compiler, C library and header files and the make utility) which are part of the very most of distributions. The LADSPA SDK (which basically is the ladspa.h) is included with WASP.

2.2. Compiling from source

It is always better to compile WASP from source, unless your system doesn't allow you to compile anything due to lack of the standard development tools. In order to build and install the plugins, launch a terminal application and issue the following commands (we assume the archive you downloaded is named wasp-x.x.x.tar.bz2):

bash$ tar -xvf wasp-x.x.x.tar.bz2 | bzip2 -d
bash$ cd wasp-x.x.x
bash$ make
bash$ su -c "make install"

To uninstall the plugins:

bash$ su -c "make uninstall"

2.3. RPM package

The Wave Sculpting Plugins are also available as a pre-bulit Mandriva RPM package. However, it should work on virtually any other distribution since the package only contains the shared plugin libraries and in general you should be able to install and use it on other RPM-based systems like Red Hat, Fedora Core, SuSE, etc.

You can install the WASP RPM package by clicking it in a file manager. Then, depending on your distibution and desktop environment, a package management application should appear (e.g. DrakRPM, KPackage, GnoRPM) and lead you through a few steps to install the RPM. If you do not have any graphical package manager, you can install easily this RPM from the command line (let's assume it's named wasp-x.x.x.i586.rpm):

bash$ su root
bash$ rpm -i wasp-x.x.x.i586.rpm

To uninstall the plugins RPM:

bash$ su root
bash$ rpm -e wasp-x.x.x.i586.rpm

2.4. Generic binary package

In addition to the complete source code and Mandriva RPM, WASP is also available as a "generic" pre-built binary backage. As it contains only shared plugin libraries, you should be able to install and use it on virtually any distribution.

In order to install the pre-compiled plugins, simply launch a terminal application and issue the following commands (we assume the archive you downloaded is named wasp-x.x.x-bin.tar.bz2):

bash$ tar -xvf wasp-x.x.x-bin.tar.bz2 | bzip2 -d
bash$ cd wasp-x.x.x-bin
bash$ su -c "make install"

To uninstall the plugins:

bash$ su -c "make uninstall"

3. WASP processors

3.1. Clipping booster

The signal is routed into a non-linear pre-amplifier with round curve and then fed into a clipping signal booster with gain of up to 36 dB. This plugin is perfectly suitable for producing very hard clipping overdrive/distortion effects.

Table 1. Plugin variants

IDLabelName
2545BoosterMBooster mono
2546BoosterSBooster stereo

Table 2. Plugin parameters

ParameterDescriptionValues
CurveConvexity of the pre-amplifier curve0 = linear, 1 = convex
Boost (dB)Booster gain in dB0 dB = no gain, 36 dB = very high gain
ClipLimiting amplitude (booster output)1 = max, 0.5 = medium, 0 = no sound

3.2. Noisifier

This effect produces amplitude modulation to the input signal using a variable noise source (which works exactly like the Variable Noise generator in this plugin set). Very useful for creating various noisy/shadow sounds.

Table 3. Plugin variants

IDLabelName
2543NoisifierMNoisifier mono
2544NoisifierSNoisifier stereo

Table 4. Plugin parameters

ParameterDescriptionValues
Noise TypeType of the noise generator1 = hold, 2 = shot
DensityDistance between random number generations in number of samples1 = zero (white noise), 0 = very stepped (digital or rarefied shot noise)
BalanceDry/wet balance0 = dry, 0.5 = mix, 1 = wet

3.3. X-Shaper

X-Shaper an advanced wave shaper with multiple curve (transfer function) types each of which can be shaped with the Curve parameter. The X-Shaper can produce a very wide variety of really interesting wave shaping effects - from simple to pretty complex. In addition, it contains two LFOs with selectable waveforms and adjustable rates (0.01 to 10 Hz) that can modulate signal gain (LFO1) and curve form (LFO2) - for even more sonic possibilities.

The effect produced by the selected shaper type can be smoothly and drastically varied by the Curve parameter, which, when tweaked in real-time or modulated by LFO2, gives very interesting morphing harmonic distrotions. Note that since the curves of the shapers are very complex, the shapers are very sensitive to the input signal level and spectral characteristics.

In order to discover the possibilities of the X-Shaper, use apply it on a sine wave and fiddle with all parameters.

Figure 1. X-Shaper structure

X-Shaper structure

Table 5. Plugin variants

IDLabelName
2547XShaperMX-Shaper mono
2548XShaperSX-Shaper stereo

Table 6. Plugin parameters

ParameterDescriptionValues
GainInput signal level This control is useful for changing distortion amount within the plugin itself
TypeType of the transfer function
  1. Sine
  2. Double sine
  3. Triple sine
  4. Quadruple sine
  5. Morphing double sine
  6. Morphong triple sine
  7. Morphing quadruple sine
  8. Rectified sine
  9. Non-linear rectified sine
CurveForm of the transmission curve Varies the curve shape (effect depends on curve type).
AmountWave shaping strength This controls the amount of wave shaping applied to the input signal. At 0 you hear the original wave, at 1 the wave shapping strength is maximum.
LFO1 FormLFO1 Waveform type
  1. Triangle
  2. Sine
  3. Saw
  4. Square
  5. Trapezoid
LFO1 RateFrequency of LFO1 From 0.01 Hz to 10 Hz
LFO1 Gain DepthThe amount of LFO1 modulation applied to pre-shaper signal level Use a positive value for falling and a negative value for raising parameter changes
LFO2 FormLFO2 Waveform type
  1. Triangle
  2. Sine
  3. Saw
  4. Square
  5. Trapezoid
LFO2 RateFrequency of LFO2 From 0.01 Hz to 10 Hz
LFO2 Curve DepthThe amount of LFO2 modulation applied to shaper curve form Use a positive value for falling and a negative value for raising parameter changes

4. WASP generators

4.1. Variable Noise

Noise source which can generate white, digital and shot noise. It works in two modes: "hold" (random level is generated and held until the next generation) and "shot" (random level is generated and the level is held at zero until the next generation). The distance between neighboring random level generations is controlled with the Density parameter. When Density is at 0 you get white noise with both noise modes. Decreasing Density will give you digital noise with "hold" noise type and rarefied shot noise with the "shot" type.

Table 7. Plugin variants

IDLabelName
2541VariNoiseMVariable Noise mono
2542VariNoiseSVariable Noise stereo

Table 8. Plugin parameters

ParameterDescriptionValues
Noise TypeType of the noise generator1 = hold, 2 = shot
DensityDistance between random number generations in number of samples1 = zero (white noise), 0 = very stepped (digital or rarefied shot noise)