There's an open-source wavetable editor:

This was written by Andrew Belt (author of VCV Rack) under commission from Synthesis Technology for creating wavetables for their line of Eurorack wavetable oscillators. Several other Eurorack manufacturers are also beginning to use this for their products as well.

WaveEdit's native format is 256-samples, 16-bit PCM, mono. Up to 64 wavetables in a "bank" to allow morphing between them.

There's an open online repository of wave banks which this application supports where the user community has begun to share tables that they've created with the tool, as well as classic wavetables from older synthesizers like Ensoniq and PPG.


On 03/06/2018 12:09 PM, Nigel Redmon wrote:
Hi Frank. I’ve never messed with these, but it seems obvious that they are either going to have a predictable format (that they specify *somewhere*, if they intend to let people sue anything but their own editor), or add/expect additional info bundled in the wave file (in which case they’d also need to specify).

In a quick search, I see that Serum expects 2048-sample wavetable (not a surprising number—let’s you span the audio range with all audible harmonics):

Wavetables in a Serum-compatible format can be directly loaded into Expanse. You can also make your own Serum-compatible wavetables using Serum or other audio software, or programming environments that offer wav file output. The format is as follows.
– 2048 samples per single-cycle
– Maximum of 256 frames (positions), less than 256 frames will be morphed or crossfaded according to the import setting.

On Mar 6, 2018, at 6:27 AM, Frank Sheeran < <>> wrote:

I've written a Wavetable Oscillator for my modular software synthesizer.

Surveying the synth software I can find (Serum, XRSDO, etc.) it seems that they all store wavetables in WAV files, PCM format, which I'm able to read and use with libsndfile.

However, is there any idea how I can tell how many samples per wave there is?

Clearly I can limit myself to factors of the file size.  EG a 65536 byte file can have 256 waves of 256 samples, or 64 samples of 1024 samples, etc.

Is there any de-facto standard?  Or a short list of heuristics I could use?

I've tried integrating (simply summing) the waves, hoping to see the sum come to zero right on a factor (and its multiples).  In some cases: perfect!  But in fact many of these files seem to have either DC or simply wave changes that keep these numbers from being zero, even when I can see by the harmonic plot's orderliness that I have the correct sample count.

Frank Sheeran <>
dupswapdrop: music-dsp mailing list <>

dupswapdrop: music-dsp mailing list

dupswapdrop: music-dsp mailing list

Reply via email to