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

Signal Generators:

Combo Control Generator (F)

Functional Description
Generates a control signal with a selectable waveform, scaled to have numerical values which pertain to audio frequencies in hertz (designed for use as a "Frequency" controller). For efficiency, the waveform is pre-calculated and stored in a wavetable (buffer).

NOTE: the sample rate at which this component is executed can be arbitrarily set via the "Sample-rate setting for Signal Generators and Input ASCII files" button (or the "Sample-Rate Setting" command under the "Edit" menu) on the toolbar, which is activated whenever the component is selected on the DrawingBoard. Equivalently, it can be set via the dialog box which (i) appears when the component is initially dragged on to the DrawingBoard or (ii) is activated using the right-mouse-button when the component is selected on the DrawingBoard. This procedure allows the component to either (i) enforce a user-determined sample rate on the downstream component(s), or (ii) to inherit the sample rate from the downstream component(s). Different signal generators can run at different sample rates on a DrawingBoard, as long as the rules of connectivity for multiple sample rates are adhered to (see the WaveWarp Users' Guide for more information.)

The characteristics of the waveform are adjustable via the Parameter Window, as summarised in the following table.

Parameter Purpose
"Waveform" selection buttons Selects the waveform from a choice of built-in profiles or from an external ASCII file (for total flexibility). The chosen waveform is depicted in the plot window. The "Wavetable length" (i.e. the number of data points used to represent one cycle of the waveform) is displayed in the "Playback settings" window. The 7 built-in profiles are summarised as follows:
  • "Sine" -- sine wave
  • "Triangular" -- triangular wave
  • "Square" -- square (rectangular) wave
  • "Log (symmetric)" -- repeating symmetric (double-sided) logarithmic profile
  • "Log (asymmetric)" -- repeating asymmetric (single-sided) logarithmic profile
  • "Random (uniform)" -- (pseudo-)random uniform noise sequence, repeating over the length of the wavetable
  • "Random (telegraph)" -- telegraph (two-state) sequence with (pseudo-)random distribution of change-points, repeating over the length of the wavetable
"Base frequency" slider Sets the peak value of the control signal output (this corresponds to the maximum frequency obtained when this component is used for driving a frequency-controlled oscillator). As the wavetable is scanned, the control signal ouput varies according to the profile, but doesn't exceed the peak value set here.
"Sweep rate" slider Adjusts the rate at which the wavetable is scanned, i.e. the rate at which output control signal varies across its profile. When the wavetable is played, it is scanned at the appropriate "Playback increment" (dependent on the wavetable length) to generate the desired sweep rate. For low frequencies, the wavetable is sampled at the appropriate lower rate (displayed as the "Re-sample rate"). The time-scale in the plot automatically adjusts to reflect the duration of a single waveform cycle (in accordance with the selected sweep rate).
"Depth" slider Only activated when "ENABLE SCALING" is selected, whereby the ouput signal is scaled to the range from 0 to the value of the "Base frequency". The "Depth" determines the fraction of this range over which the waveform is mapped. Maximum "Depth" (a value of 1) implies that the waveform will be mapped on to the entire range from 0 to the "Base frequency", thereby maximising the signal variation. Minimum "Depth" (a value of 0) implies no mapping, thereby minimising the signal variation (i.e. constant output). An intermediate value, say 0.2, implies that the waveform will be mapped on to the upper 20% of the output range, and so forth. The plot is automatically adjusted to reflect the selected "Depth". When "ENABLE SCALING" is not selected, the waveform is mapped on to the range from -1 to 1, also reflected in the plot.
"Skew" slider Adjusts the asymmetry of the "Triangular" waveform and the aspect ratio of the "Square" (rectangular) waveform (de-activated for all other options).
"Log polarity" checkbox Adjusts the vertical "polarity" of the "Log (symmetric)" and "Log (asymmetric)" waveforms (de-activated for all other options).
"Noise density" slider Adjusts the signal bandwidth of the "Random (uniform)" and "Random (telegraph)" waveforms (de-activated for all other options).
"Load wavetable from file" dialog Activated when "Load from file" is selected. The wavetable is imported from an ASCII file containing an arbitrary user-defined profile, and interpolated (to a suitable length) via the selected "Interpolation" method. The ASCII file format is described in the WaveWarp Users' Guide. This simple file structure enables files to be written by hand (e.g. via a text editor). For MATLAB® users, the process of creating waveforms is particularly straightforward. The "wwmatlab" sub-directory of the WaveWarp root directory contains the necessary function m-files (plus example scripts) for exporting wavetables from MATLAB, thereby providing ready access to MATLAB's powerful mathematical tools for creating elaborate waveforms. (Refer to the WaveWarp Users' Guide for a summary of all bundled m-files for working with MATLAB in a variety of areas in addition to waveform design).
"Save wavetable to file" dialog Exports the current wavetable to an ASCII file for future import or off-line analysis.

Algorithm
The waveform is stored in a wavetable, and is scanned using a table-lookup oscillator algorithm (see [Moore] section 3.1.7 and [Roa] p. 90-95 for further information).
Signal Implementations
Audio signals Control signals Description
n/a single output Generates a control signal with an amplitude suitable for use as a "Frequency" controller
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