[sharing] Wave Terrain Synthesis Abstractions

tmhglnd's icon

Hi all!

I'm sharing these 3 wave terrain synthesis abstractions i've been working on.

  • th.wave.polar~

A polar coordinate system based wavetable reader, using poly~ for upsampling (for anti-aliasing), using gen~ for converting polar to cartesian, using jitter for reading from a wavetable matrix.

  • th.wave.carte~

A cartesian coordinate system based wavetable reader, using poly~ for upsampling (for anti-aliasing), using jitter for reading from a wavetable matrix.

  • th.wave.terrain

Convert the jit.gl.bfg output to a 1 plane float32 matrix that can be used as wavetable lookup with the th.wave.polar~ and th.wave.carte~ objects. Export the wavetable as a binary jitter file with the write message.

Here is a demo of one of the example patches that is included in the package.

And a screenshot of what the helpfiles look like

Screenshot of helpfiles

You can download them here: https://gum.co/ZQQsz

Hope you find it useful!

Francesco Cimino's icon

Hey man! This looks like an amazing patch, thanks for sharing it! Coincidentally I was also looking into wave terrain synthesis recently. I was wondering, what sparked your interest in using it? I have the feeling it's an often overlooked synthesis method .

tmhglnd's icon

Mostly because I'm always searching for ways of connection between sound and visual representation. Since the new jit.gl.bfg object is so powerful this was a good starting point to try out some synthesis by using that as a wave terrain. Then when looking for ways to create a seamless loop from the terrain I came accross the idea to use the terrain with polar coordinates so walking around the terrain by changing the angle gets you back to the same point.