WaveStack can start from almost any audio or image file. Wavetables open as they are; everything else goes through a dialog where you choose how it becomes frames.
Ways in
- New › Wavetable file or ⌘O (Ctrl+O): pick one or more wavetables, audio files or images.
- New › Sample: pick an audio file and always go through the Sample → wavetable dialog, even if it’s already a wavetable.
- New › Image: pick an image to turn into a table.
- Drag and drop files anywhere on the window.
WaveStack reads WAV, AIFF, MP3, M4A, AAC, FLAC, Ogg and CAF audio (formats other than WAV use your system’s decoder, so support can vary), Surge .wt files, and PNG, JPEG, WebP, GIF and BMP images.
What happens with each file
- One wavetable replaces the current table straight away, with no dialog. That covers a Surge
.wt, a WAV tagged with its frame size (Serum’sclm, Surge’ssrgeor WaveStack’s wt3d) and a 4ms SWN sphere file. A wt3d file keeps its grid or volume shape. - One untagged audio file opens the Sample → wavetable dialog.
- Several files are added as frames after the selected frame, in name order. Wavetables add all their frames; other audio files are each treated as a single cycle. Everything is resampled to the table’s frame size. This is a quick way to build a table from a folder of single-cycle waves.
- An image opens the image importer.
An unsaved table you were working on is kept as a draft when an import replaces it.
Sample → wavetable
The top of the dialog shows the whole file. Drag to choose the part to use, drag the edges to adjust, and double-click to use the whole file. Trim silence sets the range to the audible part (it starts that way), and Skip silent gaps leaves quiet stretches inside the range out, so frames only come from sound.
Then pick a method:
| Method | Use it for | Options |
|---|---|---|
| Pitched cycles | Grabbing single cycles from a pitched sound, such as a synth note or a sung vowel | Pitch (detected automatically; Auto goes back to the detected value) and Start each frame at a zero crossing |
| Spectral | Any sound: each snapshot’s spectrum is rebuilt as harmonics | Fundamental, Analysis window and Max harmonics |
| Raw slices | Short grains straight from the audio, looped | Slice length (1–500 ms) |
| Single cycle | A file that is one waveform, such as the AKWF collection | None: the selection becomes one frame |
| Wavetable WAV | An untagged wavetable: frames end to end at a fixed size | Frame size in file: 256, 512, 1024, 2048, 4096 or 600 |
Pitched cycles works out each cycle’s length by detecting the pitch, the same idea SampleStack uses to map samples; how sample pitch detection works explains it.
WaveStack picks a starting method for you: Single cycle for short files, Wavetable WAV when the length divides evenly into frames of a standard size, Pitched cycles when it detects a pitch, and Spectral otherwise. The 600 option is for tables made for the Disting, which uses 600-sample frames.
Shape
For Pitched cycles, Spectral and Raw slices, choose a Row, Grid or Volume (Pro) and give each axis a role and a number of steps:
- Time: position in the recording. With Time on two axes, the snapshots run through the recording row by row.
- Method: a different conversion method at each step. Tick which methods to use.
- Brightness: progressively darker, down to the Darkest step you set.
- Drive: progressively more saturated, up to Most drive.
A table can hold up to 1024 frames; the total turns red if you go over.
Output
- Output frame size: 256 to 4096, starting at the current table’s size.
- Normalize each frame: on by default.
- New table or Insert after frame N. Inserting works when both the result and the current table are single rows.
Preview (or Space) scans the result. Create table makes it.
Images
An image is read as a depth map: each row of pixels (or each column) becomes a frame, and brightness becomes the sample value.
| Option | What it does |
|---|---|
| Frames from | Rows or Columns |
| Contrast, Brightness, Gamma | Tone the image before it’s read |
| Smoothing | Removes the harsh high harmonics that pixel noise makes |
| Loop | Raw uses each line as it is (it may click). Crossfade blends the ends so each frame loops. Mirror reads each line forward and back, which loops perfectly and gives symmetric waves. |
| Invert | Swaps light and dark |
| Flip | Takes frames from the top down. Normally they run bottom up, so the picture reads upright in the 3D view. |
| Normalize each frame, Frame size | As for samples |
Like samples, images can make a row, grid or volume. The axis roles are Image (lines of the picture), Contrast, Brightness and Smoothing, which rise along their axis; Sweep depth sets how far.
If an image format won’t open, try PNG, JPEG or WebP.