WaveEdit is wavetable creation/editing software created by Synthesis Technology the creators of the E340 Cloud Generator Eurorack module and a bunch of other things. WaveEdit was mainly created to make wavetables for their products but it just exports wavetables as wav files:
http://synthtech.com/waveedit/
WaveEdit is slick/fast/modern and super user friendly. It supports (among other things) drawing waveforms, creating waveforms by drawing harmonics with FFT, applying FX to waveforms, and importing samples and converting them to wavetables.
It's available on Windows/Mac/Linux AND is open source and free to use... so this application could make a fantastic companion to Surge for people looking for a fully free/open source wavetable synthesis option.
Problem/Solution
Surge supports wav file wavetables now, but the files from WaveEdit don't contain any loops, Surge opens them as a "one-shot" not a wavetable.
WaveEdit wavetables contain 64 frames/tables at 256 samples each.
I'm not sure if there is any special metadata in them that could be used to distinguish them from other wav files.
It would be really great if Surge could recognize them as wavetables. This could be a really nice addition to the wav file wavetable support since it's something everyone can use!
Alternatives I've considered
I can use the tables created by WaveEdit in Serum, and save them and then use them in Surge...
but that isn't a great solution. Serum is pretty expensive (so many people don't own it) and also has it's own very fully featured Wavetable editor, so it kinda defeats the purpose.
The only other decently featured free wavetable editor I know of is AudioTerm, and it's not in development anymore, windows only and fairly complicated to use.
Additional context
Here is a zip with a wavetable created in WaveEdit and also the same table saved with Serum.
Serum is adding loops (i guess) and changing the length of each frame (from 256 to 2048)
WaveEdit table test.zip
I looked into the metadata, I can't see anything unique, but I don't know what I'm looking for.
WaveEdit seems to create wavetables of the EXACT same length everytime though... So maybe Surge could always choose to load samples of that exact length sample rate/bit rate etc as wavetables? Maybe there is a better way.
Anyway, Here is some more:
more WaveEdit Tables.zip
and also their metadata as far as I could see:
Chunk at pos 20: id = "fmt ", length = 16 bytes
Format Chunk
Data format: Uncompressed PCM
Channels: 1
Sample rate: 44100 Hz
Average bytes per sec: 88200
Block align (bytes): 2
Bits per sample: 16
Chunk at pos 44: id = "data", length = 32768 bytes
32768 bytes sample data
16384 samples
0.372 seconds
File: table02.wav (32812 bytes)
Chunk at pos 20: id = "fmt ", length = 16 bytes
Format Chunk
Data format: Uncompressed PCM
Channels: 1
Sample rate: 44100 Hz
Average bytes per sec: 88200
Block align (bytes): 2
Bits per sample: 16
Chunk at pos 44: id = "data", length = 32768 bytes
32768 bytes sample data
16384 samples
0.372 seconds
File: table03.wav (32812 bytes)
Chunk at pos 20: id = "fmt ", length = 16 bytes
Format Chunk
Data format: Uncompressed PCM
Channels: 1
Sample rate: 44100 Hz
Average bytes per sec: 88200
Block align (bytes): 2
Bits per sample: 16
Chunk at pos 44: id = "data", length = 32768 bytes
32768 bytes sample data
16384 samples
0.372 seconds
Ahh it’s ipen source and written by Andre belt who wrote rack
So he’s just using libsndfile with no adulteration so yeah it will just be plain wav
Maybe I’ll add a dialog for unadulterated power of 2 type waves to give an option at import that sticks in user preferences.
Could also ask Andrew to mod the software and put a comment in the file.
Will figure out best option
Thanks!
Amazing! Ohhh I see I recognized the name but wasn’t sure from where.
I guess it’s a small world when it comes to open source soft synths 😂
It’s very cool software. It also has a neat “cloud” feature implementation. It works in application and allows you to upload/download tables with no account necessary.
WaveEdit is nice, good import and editing.
My old brain isn't to good at math, but 256 samples/wavetable, could this be a problem?
Some quick Nyquist calc let me think we need 1024 @ 40Hz, 2048 @ 20Hz, 256 maybe Ok > 160Hz.
Looking at 2048 or 1024 samples imported, high end is gone, and my old ears can hear it.
Still a great addition, but maybe a limit on Surge.
I’m not sure either but I’ve been dissecting some of the original Surge wavetables....
most of them are 64 samples per frame so it’s at least ok I guess
Surge emulates an early 90s era DAC converting those wavetables to sounds. Surge itself can use anywhere between 32 and 4096 samples in a wavetable but how that gets converted to audio is deep inside the oscillator.
https://github.com/surge-synthesizer/surge/issues/830
That issue has details on how a very-small-wavetable gets converted to an audio signal (and the purposeful artifacts that result).
Bad wording, I did not mean Surge was limited, but 256 sample wavetables. I did my tests in Audacity.
And only on low notes with high harmonics, smooth waveforms have no problem.
Oh I see.
What were you testing/comparing?
Wavetables made from samples in waveedit vs the original sound source?
I take a wavetable with 2048 samples (for Serum), import in WaveEdit, save as a bank.
Then load both into Audacity, extended the WE bank to same size as the Serum WT.
On some (s.a. FM generated) WT's it's easy to see and hear the difference on the low notes. High harmonics is gone.
But most WT's works fine, anything without high harmonics.
Yeah you are definitely right about that. Lots of high frequency loss in low notes. I tried just loading one cycle of a Serum table into one cycle of WaveEdit. I've never thought of that but it totally makes sense. You can't fit as much harmonic complexity into 256 samples.
You also can't get as much detail in movement between frames. Serum supports 256 cycle tables and WaveEdit is only 64. So if you are trying to capture a musical articulation from an acoustic instrument Serum will do way better.
I don't think WaveEdit is intended to be able to load wavetables from other synths and have it sound exactly the same though..... I mean we are talking about free software vs a $200 synth, and 33kb files vs 2mb files, so it's kind of almost apples and oranges to me.
The more lofi sounding tables can be a cool flavour Id say!
Luckily Surge can load Serum wavetables directly now, so everyone has a free way to use wavetables with that much resolution :)
Yeah cool.
I'm going to couple this ti #1078 - once I add that 'tagging" feature that lets you add metadata to a .wav file we will be all good to go I think.
With the change I just made in #1078 I can in-place modify any 256 sample table representing wav to load as a table in surge (using the new nightly) so I think I'll close this one and leave al the convo over on #1078 if there are more changes needed.
Most helpful comment
Ahh it’s ipen source and written by Andre belt who wrote rack
So he’s just using libsndfile with no adulteration so yeah it will just be plain wav
Maybe I’ll add a dialog for unadulterated power of 2 type waves to give an option at import that sticks in user preferences.
Could also ask Andrew to mod the software and put a comment in the file.
Will figure out best option
Thanks!