Difference between wavetable and sample-based generators?

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
RELATED
PRODUCTS

Post

fmr wrote:
aciddose wrote:
fmr wrote:Hi aciddose:
Exactly which argument are you answering?
Any against the definition of "wavetable" as a simple combination of the terms "wave" + "table".

While I think it is fine, really if you want to be so specific just use "single-cycle wavetable scanning ...", not "wavetable", and any objection to "wavetable" as "wave" + "table" is completely ridiculous, in my opinion.
Yes, I agree with you (read what I said about "wavetable lookup"). The reason why first wavetables only had single cycle waves was just memory limitations.

But the name used that way is so broad it is almost meaningless. Any synth that comes with sounds pre-recorded is a "wavetable" synth. Actually, even the DX7 was a wavetable synth (with a table of just one single cycle wave - sine), as well as any FM synth (any digital synth?), for that matter.

And definitley any ROMpler is a wavetable synth. So, to answer the OP: Any sample based synth is a wavetable synth, but not all wavetable synths are sample based.
The big difference in what is commonly known as "wavetable scanning" (like first implemented with the PPG synths) is that you could scan trough different waveforms/samples using e.g. an envelope, LFO or step sequencer.
One synth that could also use longer saples for this is e.g. the Wavestation with it's wave sequencing.

In synths/ROMplers that could not modulate the waveform position the word "wavetable" is just misleading IMO.

At least it should offer a way to scan trough a sample by shifting the loop points using a mod source. This way you could emulate wavetable scanning with e.g. Tone2 Rayblaster but you need a proper WAV file with multiple connected waveforms/samples (and crossfading if possible) for this. Rayblaster does ot exactly use loop points. It plays the part of the current waveform/sample currently displayed at the waveform display (you couold "zoom" in/out using the "Osc harmonic" parameter) and you could modulate the "start offset" to do the "scanning".


BTW in one of the latest OS updates for the Waldorf Blofeld a new feature was added to the mod matrix. While you press a key the envelope could scan trough the current wavetable but with that new feature you could also switch to a different wavetable with pressing the next key which then is used for scaning and so on...
With the sample expansion installed this also works with sampls which means you play different samples while pressing different keys.


Ingo
Ingo Weidner
Win 10 Home 64-bit / mobile i7-7700HQ 2.8 GHz / 16GB RAM //
Live 10 Suite / Cubase Pro 9.5 / Pro Tools Ultimate 2021 // NI Komplete Kontrol S61 Mk1

Post

Still, no idea what crx4 is doing with what it calls wavetables :)

Post

ok, let´s try it this way:

a sample is a perfect picture of a the captured signal. it doesn´t have any idea of the mathematical structure of the source sound it was captured from, it´s just a "picture", if you will. esily spoken, the incoming signal is splitted into the sampling frequencys time units, which are recorded one after another, and then played back in correct order.

a wavetable is a mathematical approximation of the sample it analyses via fft (fast fourier transform).
by doing so, the to be captured source sound is analysed and frequency-splitted into sinewaves, as a special combination of sinewaves, their amplutude over the timeline as well as the phase relationships between them.
so these sines do have all their related frequency, amplitude and phase over time in different frequencies.
once this analysis is done, an ifft (inverse fast fourier transform) is done, to rebuild this frequent and timebased/amplitudebased/phasebased structure. in extremely high quality (offline processed) this is calso called "resynthesis" and can theoretically resynthesize _every_ given sound source. the problem here is, that this takes an awful lot of cpu and ram, so it´s not (yet) really practicable on todays cpus.

however - now, as the resulting table "knows" how it was rebuildt (it has been rebuildt and therfore holds all necessary information of the sound), one is able to polish and tweak the table in order to f.e. be bandlimited. you are happy to do so, as if it would be just a sample and you´d pitch it up, at a certain pitch and above, the highest bands of the sample would exeed nyquist, which is at half the sample rate you´re working at. i.e. if 44.1khz is the sampling rate, nyquist is at 22.500khz. as soon as a signal exxeds this frequency point called nyquist, the overshooting signal portion will be mirrored back into the range below nyquist. this is called aliasing, and has to be avoided, as it mostly sounds horrible, or, at least it is unwanted, as it changes the signal you have been taking from the source, which is what you don´t want. in a table you avoid that by restricting the "sines" that shoot over nyquist to be played at all. that way, if a table is pitched, it won´t contain any frequencies that shoot over nyquist at a given pitch, hence, aliasing doesn´t take place.
there´s way more one can do with tables, but this (besides other useful stuff you have acces to, now that it´s a table) is the main reason for a lot of developers to work with look up tables, as they are easier to handle in terms of soundgeneration.
now, as this fft > ifft is very cpu intensive as well as it takes up way more space as just the sample one would load, this method is mostly used for analysing and reproducing small single cycle waveforms such as saws, squares or whatever waveforms from analog (or whatever source) synths, as you can do a relatively close approximation of the synths waveform. the shape of a saw is (more or less) always the same after its own period. that´s why a lot of developers use lookup wavetables for osc generation. they create a table of a single cycle of, say, a saw, and can then easily create an osc, which plays this saw table over and over.

now, in crx4, afaik, the sample you load in is split into a certain count of timeframes, of which all of them will be analysed seperately, and played back in loop according theit position in the sample. so the playback speed determines, how fast you are "traveling" through the analysed waveform you have loaded in as a source. if you are travelling through the waveform at exact speed of the original, no looping of the time sections occour. if you are travelling slower, the individual timeframes will be looped accordingly, and if you are faster, the given timeframes will be skipped and the ones you´re matching will be crossfaded into each other. this is at least how i perceive it from the algorithm. peter will of course print me wrong, if i am.... :)
regards,
brok landers
BIGTONEsounddesign
gear is as good as the innovation behind it-the man

Post

fmr wrote:
aciddose wrote:
fmr wrote:Hi aciddose:
Exactly which argument are you answering?
Any against the definition of "wavetable" as a simple combination of the terms "wave" + "table".

While I think it is fine, really if you want to be so specific just use "single-cycle wavetable scanning ...", not "wavetable", and any objection to "wavetable" as "wave" + "table" is completely ridiculous, in my opinion.
Yes, I agree with you (read what I said about "wavetable lookup"). The reason why first wavetables only had single cycle waves was just memory limitations.

But the name used that way is so broad it is almost meaningless. Any synth that comes with sounds pre-recorded is a "wavetable" synth. Actually, even the DX7 was a wavetable synth (with a table of just one single cycle wave - sine), as well as any FM synth (any digital synth?), for that matter.

And definitley any ROMpler is a wavetable synth. So, to answer the OP: Any sample based synth is a wavetable synth, but not all wavetable synths are sample based.
Locations in memory can be described as a table. Storing a general sample as a sequence of memory locations/bytes "could" be called a wavetable, making all sample-based synths "wavetable" synths, but yes, that makes the terminology "wavetable" indistinguishable from "sample-based". Why bother calling any synth a "wavetable synth"?

Calling any synth a "wavetable synth" is only meaningful if the definition is narrowed to mean a "table of samples/waveforms" (each of which is a single cycle or longer, NOT simply stepping through a single linear sequence of bytes) which can be modulated through during the playing of a note. That way the decay sound can be dramatically different than the attack or sustain waveforms, and that sequence of samples/waveforms that make up the note are not hard-wired in sequence like a sampler. The number of synths that can modulate in that manner is relatively few, thus the argument for narrowing the definition (otherwise we could just call all soft-synths, "software" and make distinctions truly meaningless-).

Post

A "small" list of synths for which i think the term "wavetable synthesis" (or "wavetable scanning synthesis) would really fit:

A) software:

- PPG WaveGenerator (for PC/Mac/iPad, programmed by PPG founder Wolfgang Palm and Hermann Seib)

- Waldorf PPG Wave 3.V (includes 133 wavetables with each one including up to 64 waveforms ; all wavetables created by Wolfgang Palm)
Some of the new wavetables got additional waveforms in the "upper wavetable".
Could also import samples (includes e.g. the full Waveterm B sample library) but then no wavetable scanning is possible.

- Waldorf PPG Wave 2.V (includes 31 wavetables ; plugin included in Waldorf Edition)
- Waldorf Largo
- Waldorf Nave (for iPad)
- KV331 Synthmaster 2.6
- U-He Zebra 2
- Vember Audio Surge
- NI Massive
- ConcreteFX Kubik
- Hermann Seib WaveSim (free)
- Synapse Audio DUNE / DUNE 2 (DUNE has a single wavetable while v2 should have several AFAIK)
- Tone2 ElectraX (includes several "real" wavetables besides teh "wavetable" feature)
- Korg Wavestation plugin (uses wave sequencing but it's comparable)
- Terratec Komplexer (discontinued)
- Thor (for Reason)


b) hardware:

- PPG Wavecomputer 360 (first released 1978, first wavetable synthesis synth)
- PPG Wave 2
- PPG Wave 2.2/2.3
- Waldorf Wave
- Waldorf Microwave I
- Waldorf Microwave II/XT
- Waldorf Q/Q+
- Waldorf MicroQ
- Waldorf Blofeld
- Access Virus TI/TI2
- Studiologic Sledge (powered by Waldorf DSP engine)
- Korg Wavestation (different versions, uses wave sequencing but it's comparable)
- Novation Ultranova (contains wavetables but those seem to be small and limited)


Ingo
Last edited by Ingonator on Thu Apr 17, 2014 8:39 am, edited 2 times in total.
Ingo Weidner
Win 10 Home 64-bit / mobile i7-7700HQ 2.8 GHz / 16GB RAM //
Live 10 Suite / Cubase Pro 9.5 / Pro Tools Ultimate 2021 // NI Komplete Kontrol S61 Mk1

Post

Ingonator wrote:A "small" list of synths for which i think the term "wavetable synthesis" (or "wavetable scanning synthesis) would really fit:

A) software:

b) hardware:
- Waldorf Microwave II/XT
Related, I've been enjoying this old Reaktor ensemble lately. It's quite well done, I've been using the actual Microwave XT manual to read about programming the thing. It's not all there, but it's surprisingly close.

Image

http://www.native-instruments.com/en/co ... show/6023/

Post

rj0 wrote:Locations in memory can be described as a table. Storing a general sample as a sequence of memory locations/bytes "could" be called a wavetable, making all sample-based synths "wavetable" synths, but yes, that makes the terminology "wavetable" indistinguishable from "sample-based". Why bother calling any synth a "wavetable synth"?
taxonomy.

'wavetable' denotes something about the synth; there are multiple methods of reading/processing based on wavetables; those are further subcategories within the taxonomy.

however waveforms can be generated algorithmically, without tables. at the 'top' of the taxonomy, there would be a distinction between calculated and table-based.

The problem, as Ive pointed out the last few dozen times this subject has come up, is that companies like to use terms for their marketing and buzzword weight. This blurs the definitiions for laymen and consumers. The academics who actually invent the core algorithms for this stuff generally eschew such confusion in their research papers.
my other modular synth is a bugbrand

Post

could I turn a sampler using wavetables then into a synth?
High Quality Soundsets for Lush-101 | Hive | Electra 2 | Diversion | Halion | Largo | Rapid | Dune II | Thorn | and more.

TTU Youtube

Post

mysticvibes wrote:could I turn a sampler using wavetables then into a synth?
Knock yourself out...

http://www.adventurekid.se/akrt/wavefor ... waveforms/
my other modular synth is a bugbrand

Post

rj0 wrote:Locations in memory can be described as a table. Storing a general sample as a sequence of memory locations/bytes "could" be called a wavetable, making all sample-based synths "wavetable" synths, but yes, that makes the terminology "wavetable" indistinguishable from "sample-based". Why bother calling any synth a "wavetable synth"?
Only if they contain a "wave". This is where the components of a compound word are used to make up a single term like "wave-table".

Discrete samples are not "waves" by themselves.

See the definition for "wave".
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote:
rj0 wrote:Locations in memory can be described as a table. Storing a general sample as a sequence of memory locations/bytes "could" be called a wavetable, making all sample-based synths "wavetable" synths, but yes, that makes the terminology "wavetable" indistinguishable from "sample-based". Why bother calling any synth a "wavetable synth"?
Only if they contain a "wave". This is where the components of a compound word are used to make up a single term like "wave-table".

Discrete samples are not "waves" by themselves.

See the definition for "wave".
When isn't a sample a wave? A wave doesn't necessarily have to be single-cycle, so, when you have a multi-cycle complex wave, you have... a sample.
Fernando (FMR)

Post

You'd better look up what "discrete sample" actually means. You're using the commoner's version.

http://en.wikipedia.org/wiki/Sample_%28signal%29

"A sample refers to a value or set of values at a point in time and/or space."

Note the use of "discrete" though, which means:

"Individually separate and distinct."

This is a limit of language in this case, to a degree. I was referring to an actual sample, not a collection of samples making up a sample. Seen?

A single number by itself can not make up a wave. It can make up a description of the wave given enough axes, but not the wave itself.

Therefore, it is not possible to make up a "wave-table" from discrete samples. Instead you need a collection of samples for each wave, and a collection of these composed into a "table".

What you actually do with the elements in the table has nothing to do with it. You could scan through them and the selection of the index (on however many axes) could come from any source you like. An LFO, an envelope, a joystick or whatever.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote:You'd better look up what "discrete sample" actually means. You're using the commoner's version.

http://en.wikipedia.org/wiki/Sample_%28signal%29

"A sample refers to a value or set of values at a point in time and/or space."

Note the use of "discrete" though, which means:

"Individually separate and distinct."

This is a limit of language in this case, to a degree. I was referring to an actual sample, not a collection of samples making up a sample. Seen?

A single number by itself can not make up a wave. It can make up a description of the wave given enough axes, but not the wave itself.

Therefore, it is not possible to make up a "wave-table" from discrete samples. Instead you need a collection of samples for each wave, and a collection of these composed into a "table".

What you actually do with the elements in the table has nothing to do with it. You could scan through them and the selection of the index (on however many axes) could come from any source you like. An LFO, an envelope, a joystick or whatever.
Ah, got it now. You're right, of course, and it was a language limitation from my part :oops: When I say "sample" I am actually meaning "a collection of samples" of course, as is commonly taken.
Fernando (FMR)

Post

It is quite a pain actually the way language evolves in technical vs. common use. Even more a pain when you realize as technical as you try to be, you'll be (I'll be) making stupid mistakes every second word regardless.

When using technical lingo the problem is that only those equally or better versed in the interest you're discussing will even be able to begin to comprehend what on earth you might mean.

For example, http://www.physics.uco.edu/~mbingabr/in ... ochlea.pdf

Try reading this paper. If you're anything like me and not specialized in this, trying to work out what may be the distribution of inner hairs by sensitivity to frequency based upon a paper like this you'll find yourself looking up every second word and still not having a clue.

Then after reading whole encyclopedia entries on the terms, still not having a clue.

Then you might find yourself just beginning to understand one such term after listening to several lectures available online...

Actually it is entirely possible to define a sample as a wave if you use the sinc impulse, but the limitation there is that all we'll be able to do is define different discrete samples as various amplitudes of the impulse. And from that, due to the samples being discrete we've only really defined a single function that does not vary over time. So in that case it isn't possible to define a wave by a single sample.

Getting in to that whole amazingly complex technical stuff though is something people who argue about the definition of "wavetable" probably don't enjoy :)

"Synthesizer X used it this way, so therefore it means X."
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Yes, the multiple definitions of things like "samples" makes for ambiguity. Being a "bit-twiddler" myself, I realize when I am getting too "bit level" for an application level conversation (and I only touched on the byte table aspect of things here because of its sometimes "wavetable" related usage). And thus I tried to stay with "samples" in the more general synth terminology in meaning stored waves (and I didn't forget that waves can be generated algorithmically without samples). And yes, it galls me when marketing types start using bit twiddling terminology to basically spin hype to the general public.

Post Reply

Return to “Instruments”