Idea for "Circular" Wavetable Scanning (+beyond)


#1

I want to explain what I mean in the form of images, because i think that makes it easier to understand.

Classical Wavetable Synthesis

Normal wavetable synthesis wirks by scanning through a wavetable. The wavetable can essentially be seen as an image or a rectangular cut out of a terrain - it has mountains and valleys. The Terrain/Image has two coordinates x and y which in the wavetable are called time and "wavetable position". Normally we have a knob with which we set our wavetable position while the software is scanning through it. It is essentially walking in x-direction over the terrain and instantaneous jumping back to the starting point once it has reached it's endpoint.

My Idea

The wavetable scan is essentially a "path over out terrain". Why not change the pathes even more? I was thinking for example about a circular path over the terrain. Or think about a lissajou-shaped path it you'd like. This would have the advantage that start and endpoint are the same - no need to equalize wavetables (in order to avoid non contiuous jumps if not desired).

image as wavetbale
fancy 3d graphic
wavetable

scanning parameters

  • the radius of the circle can be changed (and controlled with CV).
  • the x and y position of the circle midpoint can be moved.
  • the circle can be stretched
  • special behaviour at edges can be defined (if the circle would scan outside of the wavetable/terrain because the radius or midpoint have certain parameters. The behaviour could be a Modulus, Contant or Mirror (this is derived from texture filter stuff in 3d-graphics).

The scan coordinates can be changed over time from a circle like this

This Idea can be taken much further. For example in irder to create stereo sounds easily, Left and Right channels can scan different colour-channels of an image. I think this could be very interesting, since the cannels often have similar "structure" but are different on certain position (e.g. a white object is similar in all channeld, but a yello one not, a picture can contain white and yellow objects at the same time..).
For stereo-scanning the channels can be mixed.

wavetable synth by camera (+crazy ideas)

This is of course pretty crazy, but a modul could be created, that uses a camera in order to create these wavetables in realtime. Of course in this case a real camera wouldn't actually be necessary - a very fast slidscanner would be enough for a simple implementation.
And this could even be used to create a truly analog wavetable synthesizer! Old CRT Monitors are essentially doing the reverse of wavetable scanning - they display wavetables. They scan through it up->down and put one line on the screen from left to right. The amplitude is the brightness or the amount of electrons colliding with the phosphor of the screen. The same prinziple could be reversed!
Think of a photodiode that is converting brightness into eectricity. If that photodiode would only detect light from a very narrow direction (put a very narrow tube before it) the line of sight could be moved by a fast spinning mirror-prism. e.g. this laser projector has a prism that makes this possible.
This way the wavetable could be changed by moving an image through the scanned slid. The brightness over time would be the amplitude of the wavetable. (of course the frequency of the sweep would be hard to change quickly if we use a rotating prism - a very small moving mirror is also possible and used in some laser projectors).

edit:i just found this on youtube - it is in a fundamental way one part of it. altough it is not "scanning" any table, but rather just sampling the same position over time.

What do you think? I didn't really know where to put this. It is more a general discussion about wavetablesynthesis and the approach of it.


#2

Waveterrain synthesis is a great synthesis scheme,

you can dig for many academic studies about this (including studies of orbits)...
https://www.researchgate.net/publication/297732157_Possibilities_for_Dynamical_Wave_Terrain_Synthesis
https://www.researchgate.net/publication/49280748_Developing_a_flexible_and_expressive_realtime_polyphonic_wave_terrain_synthesis_instrument_based_on_a_visual_and_multidimensional_methodology

I have implemented and experimented with a variant of the waveterrain based on granular synthesis for Reaper as a JSFX plugin:

Instead of closed trajectories (orbits), thanks to granulation (overlap add windowing of a segment), i don't need closed "orbits", just terrain slices, the position, length and angle of the slice controls the sound...

I should take time to implement this stuff on the Axoloti, but I have to find a way to connect a touch sensitive display to the Axoloti to really play with this concept.

As far as i experimented, the content of the terrain is very important, even more than the shape of the orbits.

Great to see that someone else is interested in this :smiley:


#3

You're of course right - the shape of the path can have any conceivable form. I just chose the circle because it is easier to understand as a concept. The path can of course also have non continuous shapes, suddenly changing direction.
Also interesting - though harder to visualize - the speed of the scan can also change. So even if it looks like a circle it can change its angular momentum.
Very cool would be a cv-controlled wavescan. Meaning that with a saw-wave one can scan linearily in one direction. Through mixing the saw can be changed in its direction (rotating it from x to y axis). And another LFO can be used as the other scanning parameter. If both are the same but have 90° phase offset it's the circular scan. That would be a very cool feature in a modular version of the synth.

I just had another idea: the candle based random cv generator. A photodiode translated the brightness of a candle into voltage which coltrols some parameter. A candle is smooth compared to all kinds of electronic lights that exhibit high frequency variation. Could be kinda cool - very very analog. :slight_smile:


#4

With a granular synthesis scheme, it is sort of filter cutoff.
With waveterrain synthesis, the lenght of a cycle (orbit) determines the pitch. Even so, if you modulate the angular speed, you can obtain things similar to FM synthesis.

Anyway, you may have aliasing problems with waveterrain (that issue, and the filter character of granulation made me switch to the granulation scheme).


#5

So what is exactly the difference between granular synthesis and wavetable synthesis? I actually thought the principle was the same.

If a sample is played too fast (some frequencies would be higher than the nyquist frequency) what do normal granular synth algorithm do? Do they just jump to the next sample that fits with the sample rate or do they take the average of all samples that were "jumped" over?


#6

(pitch synchronous) Granular synthesis is a cousin of sync oscillators.

The slave oscillator reads the grain table, at its own pace (that may be modulated).
A master oscillator resets it at another frequency.
To avoid discontinuities, the master oscillator also generate a bell shaped window.

As you can imagine, there is a multitude of variants, semi random sync, use of phase modulation (my patch in library->community->tiar->GM->041-Violin-tiar.axp use it), real time processing of external sources (some autotune algorithms work this way...).

Combined with the idea of terrains, i think it can be powerful.


#7

I got my Axoloti in the mail and ot it working now.

I didn't know Aliasing was such a problem! I thought it was mainly a probelm when recording. The demonstrations-patch is quite revealing (the cheap vs the better implemented saw-wave).

How exactly is this solved in a wavetable? Does every wavetable? I guess just using a low-pass on the waveform doesn't work? That's really strange.


#8

the anti-alliasing can be fixed in a number of ways when using wavetable synthesis.
You could use oversampling together with a LP filter that filters out frequencies that are to high when sampled down for the output. Another way is to create wavetables that have several versions of the "same" waveform, but with less high frequencies, that get selected/morphed to when you play a higher pitch.
Another way would be to implement some kind of blit/blep synthesis, but till now I've found it really hard to implement on my wavetable oscillators.

About the circular path. I've made several wavetable oscillators and wavetable generators that could be used to kind-of-do-this. Almost all of my wavetable-oscillators are able to morph through the wavetable in different step-sizes. There are some which can also morph the step-size next to the morphing itself, allowing to morph to any other point in the wavetable. It just depends on how the morphing is done and how the table is build up..
For wavetable generators, I've made several versions (though I admit I haven't saved them all as modules yet). I have several in the "waiting line" that allow higher frequencies to be generated, the further you come in the wavetable. The oscilator then selects a range for the morph, depending on the root pitch to prevent anti-alliasing.

There's also a wavetable oscillator that has a small one-cycle table inside that uses a filter and an external wavetable to morph/mix to another waveform. There, the pitch controls the damping frequency of the filter, so any high frequency in the source-waveform is filtered out, so it won't cause anti-alliasing when played by the oscillator. Though, this one does create really small discontinuities while the internal one-cycle table is updated..


#9

I'm not a wavetable sythesis specialist, but I thought you can change scanner playhead control from saw to triangle and get modulations with no cuts, but it will be forward-backward. Sorry if it is extremely out of your theme path, I'm learning:slight_smile: