/ Examples / Instruments / Wavetable


Projects .. AudioIO .. Control
NoteStreams .. Instruments
Filters .. Effects .. LiCK Effects
Plot .. Utility .. Pure ChucK


Wherein we dive into Wavetable, an array-based signal generator chugin.

Right-click to copy examples to your workspace

Wavetable

The idea of Wavetable is that we can define a sound simply by specifying a table of numbers. Now we can supersample these values while applying an interpolator to "smooth out" the results. This can be suprisingly effective with small tables sizes.

Interpolator specifies a interpolator between table values from:

Note that the choice of the interpolator is significant only when your wavetable has relatively few (< 60) entries.

Table allows you to add, remove and reorder manually entered values for your table. As long as you only require a few numbers (< 20?), this is the best way to go. Once you need more than that, a more graphical approach may be advised.

TableFile allows you to add a file defined in a separate file. Here, we've entered the name of an .fgrd file produced by the Grid Editor and into which we've "painted" some channel data. We can interpret this data as a wavetable. All we need to to is to provide the "address" of a cell that contains the table we want. In the Grid Editor, cells are identified by their row and column. You can be readily discover this by selecting a cell and perusing the Cells Panel.

Below are two cells with sub-cell data in a channel named Wavetable present in the wavetable.fgrd file that accompanies this example. The upper, wider, more detailed cell is identified as 8/107/0 (column 8, row 107, layer 0).
The fgrid coordinates for the current mouse position can be found in the NoteGrid menubar. This example contains 1000 hand-produced values. The lower sparser cell is at 24/106/0 and contains 10 hand-produced values. You can try both values when running this example.

The Example

In this example we actually have three Wavetable nodes. Two are nestled within ADSR nodes and you can examine them by double-clicking the ADSR of your choice. The third node is seen here named WavetableInst. This is the node that is using tables in wavetable.fgrd. The Comments node contains a handy reminder of the two locations within that file that contain our wavetables. Note that the CCSampler node is not currently wired in, but its provided in case you'd like to peruse the FFT or Signal plot in order to evaluate different interpolators.

home .. topics .. interface .. reference .. examples .. tipjar