WaveStack builds and edits wavetables, then exports them in the formats synths and hardware expect.
It came out of the same frustration as SampleStack. Every device wants a wavetable laid out its own way, with its own frame size and bit depth, and getting a table from an idea to a working file meant a lot of reading manuals and renaming files.
Drawing a frame
Pencil, line, curve and harmonic tools. The curve tool bends a wave, squeezes it into an envelope, or limits it between two curves, with templates and an optional region so an edit can be confined to part of the cycle.
Building the whole table
Start from one frame and sweep brightness, filter, fold, sync, formant, PWM and more across a 1D table or a 2D grid. Set keyframes and the frames between them are filled in by morphing, either spectrally or by crossfade.
Bringing in what you have
Serum and Surge tables open directly. A plain WAV can be sliced into fixed size frames, and single cycles can be pulled out of a pitched recording, so a sample you already have becomes a table.
That last one pairs with Record: sample a voice from your rack into a multisampled instrument, then pull single cycles out of the result.
Getting it onto the device
Export as Serum-style WAV, plain WAV, or a Surge .wt, at any frame size and bit depth.
Device profiles for the Expert Sleepers Disting NT and EX, Deluge, Serum, Vital and Surge XT check a table and convert it on the way out, so what lands on the card is what the device can read. SignalFunctionSet already ports modules to the Disting NT, and this is the other half of that: the tables those modules play.
Where it is
Preview 2, for macOS 12 or later (universal, signed and notarized) and Windows 10 or 11. The Windows build is not code signed yet, so SmartScreen will warn about it. An iPad version is on the way.
It is in preview and I would rather hear about problems now than later. Mail me at [email protected].