I am often asked by Digitakt2 newbies how to use Wavetable in Digitakt2, so I will explain Wavetable.
First of all, the premise is that Wavetable is generally not used with Sampler such as Digitakt. I also do not recommend using Wavetable with Digitakt, for reasons I will explain later.
Wavetable synthesis is a sample-based synthesis that uses a “wavetable,” a data set of various waveforms. The waveforms in the wavetable can be smoothly shifted over time, allowing the sound to dynamically change and create complex timbres.
Wavetable Specifications
1. Length = 2048 / 1024 / 512 / 256 / 128 samples
Number of samples in a wavetable: A wavetable in Wavetable synthesis is a set of waveforms separated by a specific number of samples, usually 2048 or 1024 samples.
Sample / Sampling Rate
Sample
A sample is a data point taken during the conversion of an analog signal to a digital signal. A sample is a digital representation of the value (amplitude) of the signal at each point in time, delimited on a continuous time axis of the waveform.
Sampling rate refers to the number of samples acquired per second and is expressed in Hz (hertz). For example, a sampling rate of 44.1 kHz means that 44,100 samples are acquired per second.
2. Number of frames Usually 1 to 256
Number of Waveform Slots: This is the number of waveforms stored within a single wavetable. This varies from synthesizer to synthesizer, but usually contains 64 to 256 waveforms.
Relationship between number of samples and frequency
Number of samples vs. frequency: For example, to create a 441 Hz waveform at a sampling rate of 44.1 kHz, the number of samples per period would be as follows
Why Wavetable waveforms are not suitable for Digitakt
1. Wavetable does not have a base frequency of note C.
The length of the waveform in one frame of Wavetable is 2048 samples, so the frequency is as follows Frequency = Sampling Rate / Samples 23.4375hz = 48000hz(Digitakt sampling frequency) / 2048samples 23.4375hz = F#+ MIDI Note Frequencies | Sound Programming
Since the frequency of the wavetable is 23.4375hz = F#+, it will be out of pitch when used with Digitakt.
Single cycle waveforms for Digitakt’s preset samples are set to note C. The length of the waveforms for note C3 are as follows 367samples = 48000hz / 130.813hz(C3)
So, to use it in Digitakt, the one-frame length of the Wavetable must be converted to note C.
2. The number of frames does not match.
Most Wavetable synthesizers adapt to frame counts from 1 to 256; in Digitakt, if you set the grid count to 64 in Grid mode, it will adapt to a Wavetable with 64 frames. Most Wavetale synthesizers can import a Wavetable with any number of frames, up to 256.
So, to use it in Digitakt, the number of frames must be converted to 64.
3.Digitakt’s Grid machine does not have a morphing function
Wavetable synthesizers are capable of smoothly shifting waveforms within the Wavetable. Therefore, when Digitakt uses a Wavetable whose adjacent waveforms have very different shapes, a click sound will be generated when the slice parameter is moved.
With interpolation between waveforms
Without interpolation
Summary - Wavetable specs suitable for Digitakt2
The length of the one-frame waveform should be Note C-worthy.
C1 = 1468 samples = 32.69754768 Hz
C2 = 734 samples = 65.39509536 Hz
C3 = 367 samples = 130.79019073 Hz
The number of frames in Wavetable is matched to the parameters of the Digitakt2 Grid machine.
In Digitakt2, the number of waveform frames is set to 64 / 32 / 16 / 8 / 4 / 2.
Digitakt2 does not have the ability to interpolate changes between waveforms, so it is recommended to use Wavetable, which changes as linearly as possible.
[Example] 367samples(Note C3) * 64frames
Available in Digitat2
FM 01-VPS1.wav
FM 02-VPS1.wav
FM 03-VPS1.wav
Conclusion
As mentioned above, to use Wavetable with Digitakt2, several processes have to be carried out.
Select a smooth morphing Wavetable with no click sound beforehand. Or interpolate Wavetable.
Convert the length of one frame of WT to a length worthy of NoteC.
Reduce the number of frames in the WT to 64/32/16/8.
Learn how to convert the length of a waveform by applying effects within Audacity.
The following is an example of converting a Wavetable with a rate of 44100 Hz and a length of 2048sample*64 to a rate of 48000 Hz and a length of 734sample(NoteC)*64.
I can add a couple of Digitakt-2-specific notes for folks who find this post:
the DT2 Factory wavetables (Factory > Oscillators > Wavetables) are set up as Taro describes here: set to Grid Machine, 64 slices, and you can use an LFO to cycle between the slice selection, and these sound great in general.
on DT2 (as opposed to DT1), the grid mode doesn’t force zero crossings, which means wavetables work better on DT2 than DT1 (on DT1 sometimes a bit will be out of tune, more pops and clicks)
There is, as taro says above, no interpolation between the 64 frames (as was the case with the first wavetable synths I believe).
commercially available wavetables are extremely hit-and-miss on the DT2: they’ll need to be tuned, and those with a lot of differences between frames will be too clicky to use. A few of the free Echo Soundworks Core tables work well, tuned up around 30.20, but it’s not always easy to predict which ones will sound better.
Thank you for the write up and research Taro! Might as well share the first batch of DTII wavetables I made here
Painstakingly made using Phase Plant and Node, they’re all 64 frames and tuned to C. The DTII doesn’t interpolate so they were designed to morph well between slices. All the trouble was worth it, I have used these in just about every production since.
Discussed a bit of my process here, wish this information was available back then as it would have saved me a lot of time
helpful!
Successfully stop me wasting my time on self-made WT Waveform for DT2, just try to play with those factory content was enough.
this WT trick(not dt exclusive, lots of vst sampler could do that as good as dt) made me feel at first:
when you spend money for the dt, it is return more than it cost.
dt is a all-round machine to make music, you got everything when you bought it.(that was so wrong! A sampler is a sampler, never a good synth)
And now I finally understand that dt is a very good sampler(maybe not the best but absolutely one of them), and a very good sampler based groove box, use it with the sample technique and workflow, forget about synth thing, we couldn’t live in trick thing, and without let a piece of great gear did itself really sould be.
I’m working on a Reaktor tool for building DT2 wavetables. Haven’t been able to upload any tables to my takt yet because of family visiting for Thanksgiving but plan on it in the next few days. I think it should go smoothly with minimal file editing. The basic idea is that the whole system (synthesis and modulation) is derived from a single triggered or looped phase accumulator. Modulation is quantized to update every cycle and synthesis has a windowing function to ensure no clicks when modulating the wavetable. I think the only editing to do will be to trim the recordings sample accurately for start and end points. Thanks to @taro for the info about correct number of samples for wavetables in C. Will help reassure me that the editing is correct before loading them and testing.
To the best of my knowledge, there are no tools available that can directly determine the number of frames in a wavetable from its file name or metadata. Additionally, some wavetables do not include metadata that specifies the number of frames. Therefore, rather than verifying the number of frames, I recommend converting the wavetable to a frame count suitable for the Digitakt2.
Convert to the following lengths in your program or waveform editing software
2048samples * 64(frames) = 131072 samples
2048samples * 32 = 65536 samples
2048samples * 16 = 32768 samples
Wavetables exported from Vital have a structure of 2048 samples × 256 frames. To convert them for use with the Digitakt2, first split the wavetable into four parts using Digichain, then use Audacity to adjust the wavetable length, and you’re good to go.
Okay, thanks, but if you have a set of downloaded wave tables, how do you figure out the starting information (either number of frames, or size of frame) ? If
Then the information must either be in the wav header, or defined by convention (is a frame size of 2048 an accepted standard?)
In commercial wavetable synthesizers, a frame size of 2048 samples is generally considered the standard. On the other hand, some Eurorack modules adopt frame lengths of 256, 512, or 1024 samples.
If it’s a downloadable wavetable created for use with plugins, the frame size is typically 2048 samples.
What was the problem? Finding the right conversion for the DT2 ? Finding tables that are nicely assembled for a smooth sweep ?
The sweep issue seems to be an issue for me for the things I’ve downloaded. Seems that some wavetables are assembled on the basis “here are 256 unrelated waves put into one file”, which was not what I was hoping for.
That’s right, the tables that are a bunch of random waves together really don’t work well for scanning through, but still have good single-cycle waveforms, but those usually require tuning. (I think a site I had used recently, waveeditonline ? is gone, but it had a huge collection of that kind of stuff.)
DT2 is best approached as a PPG-style, non-interpolating wavetable synth, but works great within that for basses and leads…
While looking for that one just now, I found carvetoy.online , which if it does all it promises (exporting chosen number of frames at chosen pitch, with lots of wave effects and tools), might be a fun one.
[edit: it won’t save to desired pitches, only lets you play at pitches (up to 440) in browser, but: it’s incredibly powerful, especially for a free tool, and you can preview effectively, in the download page, whether a customizable 64-step selection will sound steppy without interpolation.]
If you absolutely want to use an existing wavetable on the Digitakt2, I recommend importing the wavetable into Vital first and then exporting it as a WAV file. Vital has interpolation features between waveforms, which can help reduce click noises to some extent.