A newer version of Max is available. Click here to access the latest version of this document.

lookup~

Transfer function lookup table

Description

lookup~ allows you to use a table of samples (buffer~ object) to do waveshaping on a signal, in which the Y values of an input signal are used as X values to look up new signal values. Input values of -1 to +1 are mapped to table values between 0 (or the specified sample offset) and the size of the table.

Arguments

Name Type Opt Description
buffer-object-name symbol Obligatory. Names the buffer~ object whose sample memory is used by lookup~ for table lookup.
sample-offset int opt After the buffer~ name, you may specify the sample offset in the sample memory of the buffer~ used for a signal value of -1. The default offset is 0. The offset value is followed by an optional table size that defaults to 512. lookup~ always uses the first channel in a multi-channel buffer~.

Messages

int offset and table-size [int]
The settings of offset and table size can be changed with a number in the middle or right inlets. If a signal is connected to one of these inlets, a number in the corresponding inlet is ignored.
float offset and table-size [float]
The settings of offset and table size can be changed with an number in the middle or right inlets. If a signal is connected to one of these inlets, a number in the corresponding inlet is ignored.
(mouse) Double-clicking on lookup~ opens an editing window where you can vieW the contents of its associated buffer~ object.
set buffer-object-name [symbol]
The word set, followed by a symbol, changes the associated buffer~ object.
signal In left inlet: Signal values are mapped by amplitude to values stored in a buffer~. Each sample in the incoming signal within the range -1 to 1 is mapped to a corresponding value in the current table size number of samples of the buffer~. Signal values between -1 and 0 are mapped to the first half of the total number of samples after the current sample offset. Signal values between 0 and 1 are mapped to the next half of the samples. Input amplitude exceeding the range from -1 to 1 results in an output of 0.

In middle inlet: Sets the offset into the sample memory of a buffer~ used to map samples coming in the left inlet. The sample at the specified offset corresponds to an input value of -1.

In right inlet: Sets the number of samples in a buffer~ used for the table. Samples coming in the left inlet between -1 and 1 will be mapped by amplitude to the specified range of samples. The default value is 512. lookup~ changes the table size before it computes each vector but not within a vector. It uses the first sample in a signal vector coming in the right inlet as the table size.

Information for box attributes common to all objects

Output

signal: Each sample in the incoming signal within the range -1 to 1 is mapped to a corresponding position in the current table size number of samples of the named buffer~ object, and the stored value is sent out.

Examples

See Also

Name Description
buffer~ Store audio samples
peek~ Read and write sample values
MSP Tutorial 12: Waveshaping MSP Tutorial 12: Waveshaping