Skip to content

audiolab

AudioLab is a library of high-level Pure Data abstractions focused on electroacoustic composition, live electronics, and sound design.

Contributors

People who contribute to this project.

Objects

  • pp.adsr~ pp.adsr~ is a non-linear ADSR/ADR envelope generator that provides both an audio-rate envelope and a float envelope at a 64-sample rate.
  • pp.amp-st~ pp.amp-st~ amplifies an input signal, serving as a convenient signal multiplier.
  • pp.amp~ pp.amp~ amplifies an input signal, serving as a convenient signal multiplier, and outputs the amplified signal.
  • pp.butterkreuz3-st~ pp.butterkreuz3-st~ is a stereo three-band crossover filter with a relatively flat magnitude response, producing low-, mid-, and high-band signal outputs for the left and right channels.
  • pp.butterkreuz3~ pp.butterkreuz3~ is a three-band crossover filter that splits an input signal into low, mid, and high bands with a relatively flat magnitude response.
  • pp.clop-st~ pp.clop-st~ is the stereo version of pp.clop~, described as an experimental comb–low-pass ladder filter that outputs filtered left and right signals.
  • pp.clop~ pp.clop~ is an experimental comb–low-pass ladder filter that processes an input signal and outputs the filtered signal.
  • pp.distort-st~ pp.distort-st~ is a stereo distortion/saturation processor whose squeeze control drives the signal into a tanh soft clipper, while squash and squish add odd and even harmonics, respectively.
  • pp.distort~ pp.distort~ provides distortion/saturation using a tanh soft clipper: squeeze drives the clipper, while squash and squish add odd and even harmonics respectively.
  • pp.dopplerxy~ pp.dopplerxy~ processes an input signal to produce a Doppler-transposed signal plus separate X and Y trajectory signals for pan modulation.
  • pp.doppler~ pp.doppler~ emulates the pitch, amplitude, and high-frequency attenuation changes that occur when a sound source moves relative to an observer.
  • pp.dynamics-st~ pp.dynamics-st~ is the stereo version of pp.dynamics~, providing compression and expansion with adjustable thresholds, attack/release, makeup gain, dry/wet mix, lookahead, envelope detection, and optional feedback compression.
  • pp.dynamics~ pp.dynamics~ is a compressor/expander for processing an audio signal, with a second signal inlet for sidechain input and a message inlet for control.
  • pp.dystort-st~ pp.dystort-st~ provides stereo dynamic distortion and saturation, using an internal envelope follower to keep saturation consistent across different input intensities.
  • pp.dystort~ pp.dystort~ provides dynamic distortion and saturation, using an internal envelope follower to keep the saturation level consistent across different input intensities.
  • pp.echo~ pp.echo~ is a stereo analog-style delay with independently controllable left and right delay times, feedback, filtering, modulation, reverb, distortion, and dry/wet mix.
  • pp.env-st~ pp.env-st~ is a stereo envelope follower that analyzes left and right input signals and outputs a separate envelope signal for each channel.
  • pp.env~ pp.env~ is a simple envelope follower that detects the amplitude of an input signal and outputs an envelope signal, with a second outlet for messages.
  • pp.eqfilter-st~ pp.eqfilter-st~ is the stereo version of pp.eqfilter~, filtering left and right input signals with selectable lowpass, highpass, resonant, bandpass, notch, peaking, allpass, lowshelf, or highshelf responses.
  • pp.eqfilter~ pp.eqfilter~ filters an incoming signal using selectable lowpass, highpass, resonant, bandpass, notch, peaking, allpass, lowshelf, or highshelf modes, with coefficients based on Robert Bristow-Johnson’s Audio EQ Cookbook.
  • pp.fft-block-st~ pp.fft-block-st~ is the stereo version of pp.fft-block~, passing left and right signal inputs to corresponding delayed signal outputs for FFT-block latency compensation.
  • pp.fft-block~ pp.fft-block~ delays an incoming signal to provide block-delay compensation for FFT processing.
  • pp.fft-freeze-st~ pp.fft-freeze-st~ freezes an incoming signal when it receives a bang and outputs the frozen signal.
  • pp.fft-freeze~ pp.fft-freeze~ freezes an incoming audio signal when it receives a bang and outputs the frozen signal.
  • pp.fft-gate-st~ pp.fft-gate-st~ is the stereo version of pp.fft-gate~, processing left and right signals with an FFT noise gate and providing separate denoised and noisy-part stereo outputs.
  • pp.fft-gate~ pp.fft-gate~ is a spectral gate for reducing noise in an input signal, with separate signal outlets for the denoised and noisy parts.
  • pp.fft-partconv-st~ pp.fft-partconv-st~ is the stereo version of pp.fft-partconv~, convolving stereo input with stereo impulse responses and outputting left and right convolved signals.
  • pp.fft-partconv-st~.s pp.fft-partconv-st~.s performs stereo partitioned FFT convolution and runs its CPU-heavy DSP in a pd~ subprocess.
  • pp.fft-partconv~ pp.fft-partconv~ performs partitioned impulse-response convolution, outputting both the convolved signal and a dry/wet signal.
  • pp.fft-partconv~.s pp.fft-partconv~.s performs partitioned impulse-response convolution and runs its CPU-heavy DSP in a subprocess using pd~.
  • pp.fft-pitchshift-st~ pp.fft-pitchshift-st~ is the stereo version of pp.fft-pitchshift~, using Pd’s phase-vocoder implementation to transpose left and right input signals by a value in cents.
  • pp.fft-pitchshift~ pp.fft-pitchshift~ uses a phase-vocoder implementation to transpose an input signal by a specified number of cents, outputting the transposed signal.
  • pp.fft-profile-st~ pp.fft-profile-st~ is a stereo spectral denoiser/vocoder that filters left and right input signals using a mask retrieved from a second stereo signal pair.
  • pp.fft-profile~ pp.fft-profile~ is an esoteric spectral denoiser/vocoder that filters one signal using a spectral mask retrieved from a second signal, outputting both the masked signal and the residual.
  • pp.fft-split-st~ pp.fft-split-st~ is the stereo version of pp.fft-split~, splitting left and right input signals at a specified frequency into separate low-pass and high-pass stereo outputs.
  • pp.fft-split~ pp.fft-split~ splits an input signal at a specified frequency in Hz, outputting low-pass- and high-pass-filtered signals.
  • pp.fft-stretch~ pp.fft-stretch~ is a stereo phase-vocoder abstraction for time-stretching buffered or recorded audio, with independent playback-speed and transposition controls.
  • pp.fft-timbre-st~ pp.fft-timbre-st~ is the stereo version of pp.fft-timbre~, processing left and right signals with a configurable FFT bin-reordering function.
  • pp.fft-timbre~ pp.fft-timbre~ processes an input signal using an FFT-based bin-reordering function, with controls including shift, rotation, curves, breakpoints, makeup gain, and dry/wet mix.
  • pp.freqshift-st~ pp.freqshift-st~ is the stereo version of pp.freqshift~, shifting input signals in frequency by a specified number of hertz using single-sideband modulation and a quadrature transform.
  • pp.freqshift~ pp.freqshift~ is a single-sideband modulation frequency shifter that shifts an input signal by a frequency specified in hertz.
  • pp.graindelay~ pp.graindelay~ is a granular delay that processes a signal input into stereo output, with controls for grain size, pitch, envelope, filtering, panorama, delay, feedback, and dry/wet balance.
  • pp.grainer-mc~ pp.grainer-mc~ is a granular sampler that loads or records audio into a buffer and sends each grain stream to an individual channel for multichannel playback or separate processing.
  • pp.grainer~ pp.grainer~ is a granular sampler for mono sound files that produces stereo audio and can also record into its buffer.
  • pp.grainrev~ pp.grainrev~ is a stereo granular delay/reverb that processes a signal using triggered grains, with controls for grain size, delay, pitch, envelope, panning, feedback, and randomization.
  • pp.in~ pp.in~ provides a microphone input signal, with its creation argument selecting the input channel.
  • pp.ladder-st~ pp.ladder-st~ is a CPU-heavy stereo “Moog” fourth-order ladder filter that can operate as a low-pass, high-pass, band-pass, or resonant filter.
  • pp.ladder~ pp.ladder~ is a CPU-heavy fourth-order “Moog” ladder filter that processes an input signal as low-pass, high-pass, band-pass, or resonant filtering.
  • pp.lfnoise~ pp.lfnoise~ is a low-frequency noise generator that outputs a random signal in the range −1 to 1.
  • pp.limit-st~ pp.limit-st~ limits a stereo input signal to the range −1 to 1, providing separate limited left and right signal outputs.
  • pp.limit~ pp.limit~ limits an incoming signal to the range −1 to 1, providing a limited signal at its signal outlet.
  • pp.loop.play~ pp.loop.play~ reads audio from the circular buffer defined by pp.loop.rec~, with signal-rate control of playback speed and playhead position.
  • pp.loop.rec~ pp.loop.rec~ records incoming audio into a variable-length circular buffer for playback by pp.loop.play~.
  • pp.midside~ pp.midside~ is a mid-side mixer that processes left and right input signals and outputs a stereo left/right pair.
  • pp.out-4~ pp.out-4~ provides four-channel speaker output and recording to a WAV sound file.
  • pp.out-8~ pp.out-8~ provides eight-channel speaker output and records the eight signal channels to a WAV sound file.
  • pp.out~ pp.out~ provides stereo speaker output and records the audio to a WAV sound file.
  • pp.pantd~ pp.pantd~ pans an input signal to left and right outputs using both amplitude and time differences.
  • pp.pan~ pp.pan~ performs constant-power panning of an input signal to left and right signal outputs, with panorama ranging from -1 (left) to 1 (right).
  • pp.parameq-st~ pp.parameq-st~ is a stereo parametric equalizer using biquad filters, with signal inputs and filtered-signal outputs plus message control.
  • pp.parameq~ pp.parameq~ is a six-filter parametric equalizer based on biquad filters, accepting a signal and outputting the filtered signal.
  • pp.phiverb~ pp.phiverb~ is an algorithmic, feedback-delay-network-based reverb that processes stereo input and produces stereo output with configurable input filtering, early reflections, late reflections, damping, feedback, and dry/wet mix.
  • pp.pitchshift-st~ pp.pitchshift-st~ is the stereo version of pp.pitchshift~, transposing left and right input signals by a value in cents.
  • pp.pitchshift~ pp.pitchshift~ is a simple rotating-head pitch shifter that transposes an input signal and outputs the transposed signal.
  • pp.rev~ pp.rev~ is an extended, rev3~-based reverb abstraction with stereo-width processing and controls for early reflections, the reverb tail, damping, feedback, and dry/wet balance.
  • pp.sdel-st~ pp.sdel-st~ is the stereo version of pp.sdel~, providing samplewise delay for left and right input signals and outputting the corresponding delayed stereo signals.
  • pp.sdel~ pp.sdel~ delays an incoming signal by a specified number of samples, producing the delayed signal at its signal outlet.
  • pp.sfplayer~ pp.sfplayer~ provides clean variable-speed playback of extra-long sound files, with stereo recording into its buffer and WAV export.
  • pp.shepphaser-st~ pp.shepphaser-st~ is the stereo version of pp.shephaser~, producing a Shepard tone-like phaser using a quadrature transform and multiple allpass-filter stages.
  • pp.shepphaser~ pp.shepphaser~ produces a Shepard tone-like phaser effect using an audio-rate phase shift, resonance, and a selectable number of active allpass-filter stages.
  • pp.shiftlfo~ pp.shiftlfo~ is an LFO for generating irregular rhythmic patterns, with a signal output ranging from -1 to 1.
  • pp.spacer~ pp.spacer~ combines functionality like pp.doppler~ and pp.pan~ to spatialize an input signal from X and Y trajectory signals, producing stereo dry and wet outputs.
  • pp.spat4~ pp.spat4~ performs four-channel distance-based amplitude panning of an input signal using signal-rate x-position, y-position, and spatial-spread controls.
  • pp.spat8~ pp.spat8~ performs distance-based amplitude panning of an input signal across eight output channels, using signal-rate x-position, y-position, and spatial-spread controls.
  • pp.spectrum~ pp.spectrum~ is a spectrum analyser that accepts a signal in its single signal inlet.
  • pp.twisted-delays2-st~ pp.twisted-delays2-st~ is the stereo version of pp.twisted-delays2~, implementing a complex delay network with controllable delay times, rotation angles, feedback, damping, modulation, and dry/wet balance.
  • pp.twisted-delays2~ pp.twisted-delays2~ is a multipurpose twisted delay network inspired by the power-conserving complex delay networks described in chapter 7.5 of Miller Puckette’s Theory and Techniques of Electronic Music.
  • pp.twisted-delays~ pp.twisted-delays~ is a multipurpose twisted-delay effect that processes one signal into four signal outputs, with control over delay times, rotation angles, feedback, damping, crossover frequency, and dry/wet balance.
  • pp.vcfilter-st~ pp.vcfilter-st~ is a stereo filter whose coefficients follow Robert Bristow-Johnson’s Audio EQ Cookbook, with low-pass, high-pass, resonant, and notch filter types.
  • pp.vcfilter~ pp.vcfilter~ is a signal-controlled biquad filter whose frequency and Q/bandwidth can be controlled by signal inputs.
  • pp.waveform pp.waveform draws a waveform from a named source array, with configurable dimensions, Y range, color, thickness, and resolution.
  • pp.wfdisplay pp.wfdisplay displays the waveform of a source array at a fixed width and height.
  • pp.xfade-st~ pp.xfade-st~ crossfades between two stereo signals, using either a linear (lin) or equal-power (sqrt) curve.
  • pp.xfade~ pp.xfade~ crossfades between two input signals and outputs the mixed signal, using either a linear (lin) or equal-power (sqrt) curve.
  • pp.xycurve pp.xycurve provides a GUI for creating and editing an x/y curve of up to 34 control points, with outputs for x, y, total curve length, and control-point coordinates.
  • pp.xypad pp.xypad is an XY controller that outputs x and y floats and can record and play back pointer movements, sending a bang when playback finishes.