Wavetable synthesis is having a moment in the sun right now. This article will show you how to get the most out of this powerful form of synthesis by creating your own wavetables. The article explains what wavetables are and how to create your own using the free Audioterm software by Mathias Gurk. Whilst I focus on the Waldorf Blofeld the concepts and techniques can be applied to other wavetable synthesisers.
What are Wavetables?
A wavetable is a collection of short audio waveforms, as illustrated above. Each waveform has its position in the wavetable. As these are short waveforms, individually each waveform will have a static sound. A wavetable synthesiser gives the user the ability to play back the waveforms at the different positions in the wavetable, and by moving through the different positions in the wavetable whilst the note is being played it is possible to create sounds that evolve over time. The clip below from the Blofeld Wavetable Creator software shows how this works in action. In the main part of the screen you can see the waveform stored in each position. The position of each waveform is given in the column to the left of the waveform display. In the clip a few waveforms are previewed, then the wavetable is ‘scanned’, playing back the waveform in each successive position. As you can hear this brings movement to the sound.
What makes wavetable synthesis special is that it is a highly memory efficient way of storing audio information. First created in the 1980’s when computer memory was very expensive, this was a big deal. Rather than sampling the whole sound with wavetable synthesis you can take little slices which when strung together will approximate the original sound. Whilst being an efficient way of packing in useful sound information, wavetable synthesis delivers a lot of bang for your buck. On the Blofeld each wavetable has 128 slots, so you can look at this as getting 128 oscillators per wavetable, and unlike most analogue synthesisers the timbres available go beyond those normally provided by conventional oscillators. Then the fun really starts as you move through the wavetable, because the results obtainable are often unique, startling and musically useful.
The Techy Details
Let’s look at what this means in practice. Each waveform slot in the Waldorf Blofeld is 128 samples long, at 44.1kHz sampling rate. This is equivalent to 344.53 Hz. In musical terms this is F3 – 23 cents with standard A = 440 Hz tuning.
There are 128 positions in a Blofeld wavetable. How long would it take if each waveform was played just once back to back? Approximately a quarter of a second (128/345). So to extend the duration of the note you could scan through the wavetable more slowly so that each waveform repeated.
In practice if you took a sound that lasted a quarter of a second and sliced it into 128 pieces, then stitched it back together you could recreate the orignal waveform. The end point of one waveform would stitch together seamlesly with the start of the next waveform. One you start looping waveforms this wouldn’t necessarily be the case unless the fundamental frequency of the original sound was an integer multiple of 344.53 Hz. Otherwise when the waveform loops round on itself there will be a little jump in value, which will introduce distortion.
This limitation can be ameliorated by low pass filtering, or adjustments to the play back algorithm, but these methods will both produce side effects of their own. It is better to avoid the situation in the first place and create the wavetable using periodic waveforms based upon multiples of 344.53 Hz. This is the primary method for creating waveforms in the Blofeld Wavetable Creator programme. Conceptually you are in the realm of additive synthesis, that is creating periodic waveforms through the addition of waveforms all related to each other by integer values. The Audioterm programme takes this to it’s logical conclusion by allowing you to feed it samples which it analyses using fast Fourier transforms, then creates wavetables based upon this analysis.
In addition to the principles outlined above many wavetable synthesisers use interpolation. In practice this means that you can place two waveforms at different places in the wavetable and the synth will create the missing ‘in between’ waveforms
You don’t have to do it this way, it’s perfectly valid to create wavetable with waveforms that bear no relation to each other. The early Access Virus had this as did the Evolution EVS 1. With such systems you hear a glitchy collection of sounds when you scan the wavetable. The clip below shows this, you can hear the discontinuities between one waveform and the next.
Before we move on to look at rolling your own wavetables it’s worth pointing out that wavetables aren’t very good at creating enharmonic sounds, although these can of course be achieved by adding some frequency modulation. Also if you think of each cycle of the waveform as ‘resetting’ there is a conceptual similarity to oscillator sync and wavetables 33 – 41 in the Blofeld offer sync simulations.
Handcrafted for your Pleasure
Creating your own wavetables will give you a unique sound palette, reflecting your own aesthetic preferences. I particularly enjoy the twisty wavetrip sounds of the Blofeld and am intrigued by the possibilities of resynthesised vocals. You might be attracted by drawing your own waveforms, collecting classic oscillator shapes, experimenting with field recordings…
I have experimented with a few methods and one method I wouldn’t recommend (as it is fiddly and time consuming) is attempting to manually snip 128 samples from an existing wav file. It’s really boring and the results I obtained were nothing spectacular.
If you watched the clip above you have already seen the free Blofeld Wavetable Creator by Kotro Laszlo Lehel. With a basic understanding of wavetable synthesis this programme is pretty intuitive to use: create a wave using building blocks based on some standard waveshapes combined in various ways. A quick way to create a wavetable is to create a wave in position one, then another in the last position and ask the programme to morph between the two. There are more features which I won’t attempt to describe here, suffice to offer the observation that I had to edit the configuration file and set the outputs to two in order to hear the sound generated on the in-built soundcard. I couldn’t coax it to work with the higher sample rate and bit depth of my external sound interface – your mileage may vary – do let me know if you succeed. The next tip concerns uploading the wavetables to the Blofeld. You can store user wavetables to slots 80 to 118 on the Blofeld. Make sure you select where the wavetable will be uploaded to on the wavetable – there is a drop down box above the save icon for this. I incorporate the slot number in the name of the wavetable so it is obvious where it will end up. The wavetable is saved as a midi system exclusive file (*.syx). More on this later. My experience of the Blofeld Wavetable Creator is that it excels at producing raw, buzzy, digital sounds.
Audioterm
In the rest of this article I’ll focus on the excellent, powerful, flexible and opaque Audioterm. This free programme will help you create wavetables for several popular wavetable synths. Here’s how to use it with Blofeld.
- Create or find a wav file that you would like to analyse, it should be 44.1kHZ, but Audioterm is very adaptable with bit depth. For the sound examples I created I chose to make a file at F3 – 23 cents, but Audioterm has the ability to detect the root note. Place into Data > 01 Samples (wav)
- Open Audioterm. Navigation through the programme is via the boxes containing cryptic abbreviations at the bottom of the screen. The opening page gives an explanation of the abbreviated terms.
3. Two types of wavetable synthesis are offered: KTERM and XFORM. The other types (SLOOP and XMORPH) are based on fast Fourier transform analysis and resynthesis, but not concerned with the creation of wavetables. The rest of this description looks at KTERM, once you’ve grasped how Audioterm works you can experiment with the other synthesis methods. Press KTERM
4. Choose Disk.
5. You should see a list of the wav files you added earlier.
Left click & hold to preview a sound. Here I’m previewing JVTWO.WAV as indicated by the >>>>>> next to the wav file.
6. Choose LOAD <>, you’ll be taken to an analysis dialogue. The corrugated blob in the middle of the screen is a representation of the wav file.
Press ANALYZE then APPLY.
7. You’ll be taken to the super cool pleasures of the wavetable plot. Each line represents a waveform in the table.
Press RAM_WT to hear the resynthesised waveform. This is the collection of the waveforms in the table played consecutively to approximate the original wav file.
Note that on this page you can choose options for further editing the wave. I won’t cover these, but features include editing of individual waveforms, waveform drawing, formant shifting, and editing in the frequency domain. Viewing single cycle waves will confirm that they are all created with zero point crossing in the first and last position of the waveform cycle. This minimises the digital harshness that would otherwise take place.
8. Press DISK<> then F_TYPE<>
9. You are presented with options to save your wavetable in different formats. Select -> 05 from the bottom box for the Blofeld option.
10. On the Blofeld you can store user wavetables in slots 80 – 118. When saving a Blofeld wavetable in Audioterm you need to specify which slot it will go to when it is uploaded to your synth. Therefore:
(a) Check for a suitable slot on your Blofeld
(b) It’s a good idea to incorporate the wavetable slot into the name so you’ll know where it is destined for when the time comes to upload it.
The wavetable is saved as a system exclusive file on you computer in Audio-Term > Data > 05KTERM – Wavetables (Blofeld, SYX).
11. Lastly all you need to do is upload the file to your Blofeld. To do so, make sure that there is midi in connected to the Blofeld from your personal computer. Play back the .syx file into the Blofeld. I use Reaper to do this (as it loads .syx files) and set the tempo to 60 BPM (as faster tempos can be too much data at once).
To scan through the wavetable on the Blofeld adjust the pulse width amount, either manually or by modulating it from another source.
If you would like to try some of the the wavetables I have created using Audioterm they are available to download. Unzip the file then play the .syx files into your Blofeld as described above. If you move them to the Audioterm Blofeld wavetables folder you can further manipulate them in Audioterm.
Once you get the hand of it, creating your own wavetables is good fun. Throw away your map and come explore some undiscovered sonic landscapes.
Nice stuff!
Can you update this with a working link to Audioterm? It looks awesome.