MSP functions

This patch shows the lookup tables (a.k.a. transfer functions) being used on three formal levels: 1) the microscopic level, to determine the timbre of the waveform, 2) the note level, to determine the amplitude (and timbre) envelope, and 3) at the phrase level, to control the amplitude over a 15-second time span.

First, turn on audio (below), then start the tempo object.

Buffer shape

The buffer~ object can hold any audio data—or, for that matter, any collection of floating-point numbers. Most often it's used for audio playback, but it can also store a curve of any desired shape, to be used as a control signal. In this example, it will be used to store a control signal that will influence the pitch of an oscillator. The replace message to buffer~ will load in data from a sound file.

Use stored waveform for a synthesizer

This patch demonstrates the technique of wavetable synthesis: using one cycle of a stored waveform as the wave type for a synthesizer tone. The cycle~ object with no argument produces a cosine wave; however, cycle~ can also refer to a waveform stored in a buffer~, and use that as a wavetable. To do that, you need to create a buffer~, store a waveform in it, and then refer to that buffer~ by creating a cycle~ with the same name.