Sounds Logical
home

WaveWarp 2.0 Component

IndexCurrent GroupPrevious GroupNext GroupPrevious ComponentNext ComponentBottom of Page

Functional Description | Algorithm | Signal Implementations | Related Components | Example DWBs usage

Playback Controllers:

Controllable Granular Playback Controller

Functional Description
Controls the playback of an audio file by grouping successive samples into "grains", and manipulating the playback of the grains (with settings which are dynamically adjusted via the control inputs).

IMPORTANT: This specialised component is intended for use in conjunction with a Controllable Input Audio File (refer to the corresponding on-line help for for a detailed description of WaveWarp's controllable playback functionality). In order to implement the controllable granular playback, the following connections must be implemented on the DrawingBoard:

  • the 6 input control signals for this component can be arbitrarily time-varying control signals (containing the desired time-histories of playback rate factors and durations, as specified in the table below).
  • the output control signal from this component must be connected to the control input of a Controllable Input Audio file.
  • the input audio signal for this component must originate from the audio ouput of the same Controllable Input Audio file used above.
  • the output audio signal from this component (and not from the Controllable Input Audio file) is the desired "granularized" signal to be routed to the output soundcard (or to other downstream components for further processing).

NOTE: This component is identical in function to the Granular Playback Controller except that the grain manipulation parameters are selected dynamically via the control inputs, rather than via the Parameter Window.

The file playback is organised as follows:

  1. A "grain" (buffer) is filled by reading from the file at a specified rate. During this filling process, the successive samples which are being stored in the grain, are simultaneously sent to the output. When the grain is full, the file reading is de-activated.
  2. The grain is then played back at a specified rate and for a specified number of repititions. During this time, the file is not being read, so no original samples are lost.
  3. After the total number of grain playback repititions have been executed, samples are then read from the file, at a specified rate and for a specified duration, and simultaneously sent to the output. This is known as the "hop" phase.
  4. After the hop phase has been executed, the grain is re-filled, and the entire process is repeated, starting from Step 1.
The various playback rates and durations for the steps outlined above are dynamically controlled via the control inputs, as summarised in the following table.

Control Input Index Purpose
1 Controls the "instantaneous" grain size (expressed in numbers of samples).
2 Sets the number of times the grain is played after it has been filled.
3 Sets the "instantaneous" hop size (expressed in numbers of samples).
4 Controls the rate (expressed as a multiplication factor applied to the file's sample rate) at which the samples are read from the file when filling the grain.
5 Sets the rate (expressed as an effective step-size) at which the samples are read from the grain when it is played.
6 Sets the rate (expressed as a multiplication factor applied to the file's sample rate) at which the samples are read from the file when it is being played during the "hop" (i.e. between grains).

Algorithm
The control signal ouput consists of a sequence of integers which, when used to control the instantaneous playback step-size of an audio file, results in the file being played according the steps outlined above.

In order to suppress discontinuities at grain boundaries, a built-in search mechanism ensures that each grain starts on a zero-crossing upwards transition (the grain length therefore varies by a few samples from grain-to-grain, in order to satisfy this criterion).

See [Roa] p.180-184 for an introduction to granular playback methods.

Signal Implementations
Audio signals Control signals Description
Single input single output mono-mono6 inputs single output Control inputs determine the playback parameters, as described in earlier table. Control output should be connected to the control input of a mono Controllable Input Audio File. Audio input should originate from the audio output of the same mono Controllable Input Audio File. Granular playback of the mono Controllable Input Audio File is sent to the mono audio ouput of this component.
Single input single output mono-stereo6 inputs single output Control inputs determine the playback parameters, as described in earlier table. Control output should be connected to the control input of a mono Controllable Input Audio File. Audio input should originate from the audio output of the same mono Controllable Input Audio File. Granular playback of the mono Controllable Input Audio File is sent (in duplicate) to the stereo audio ouput channels of this component.
Single input single output stereo-mono6 inputs single output Control inputs determine the playback parameters, as described in earlier table. Control output should be connected to the control input of a stereo Controllable Input Audio File. Audio input should originate from the audio output of the same stereo Controllable Input Audio File. Granular playback of the stereo Controllable Input Audio File is executed, the outputs are averaged, then sent to the mono audio ouput of this component.
Single input single output stereo-stereo6 inputs single output Control inputs determine the playback parameters, as described in earlier table. Control output should be connected to the control input of a stereo Controllable Input Audio File. Audio input should originate from the audio output of the same stereo Controllable Input Audio File. Granular playback of the stereo Controllable Input Audio File is sent to the stereo audio ouput of this component.
Related components:
Example DrawingBoards illustrating usage:

IndexCurrent GroupPrevious GroupNext GroupPrevious ComponentNext ComponentTop of Page

home - news - products - store - support - site map - company info
© 2007 Sounds Logical. All rights reserved.
Sounds Logical
legal notice - privacy statement