[sharing] Digital Waveguide Mesh

.quasar's icon

Played around recently with Digital Waveguide Meshes in gen~ to model membranes. Used this thesis as a basis.

There are a few examples in max for rectilinear Waveguide Mesh patches but from what I read so far, the "triangular" meshes offer some advantages in terms of dispersion.

This is a 3 nodes triangular Digital Waveguide Mesh examples (each node consist of 6 waveguides). Implemented a few other options like damping and nonlinearity.

Tell me if you're missing any abstraction of gendsp file but i think everything is in there !

Max Patch
Copy patch and select New From Clipboard in Max.

mp's icon

Hi .QUASAR,

great patch, thanks!

Just a small suggestion to replace the third party object dcblock~ with a simple gen~ abstraction (native dcblock) or with [biquad~ 1. -1. 0. -0.9997 0] to prevent errors in the absence of the object (my case…).

Cheers

.quasar's icon

Thanks ! Did not spot that one, usually I actually use the native gen~ version ;)

The msp dcblock~ external comes from the Percolate package. great one btw => there's is actually a rectilinear waveguide mesh external in it (mesh2d~)

Rodrigo's icon

I totally missed this when it was first posted. This is fantastic!

Roman Thilenius's icon

snaregurdy~

JFS's icon

Sounds very nice indeed, but always blows up on me. On Max 7 if it matters - anyone else have the same experience?

gavin peters's icon

Thanks @MP, was wondering what was so special about the patch until I saw dcblock~ in red hahaha.

Also thanks OP, really interesting. Now that I'm a proper student I love finding patches with accompanying papers.

eLud's icon

I took this patch and make a mc version, pretty fun stuff

eLum.mc.quasar~.maxpat
Max Patch
quasar_testpatch.maxpat
Max Patch


edit: i should add, i don't really understand what all the parameters mean 100%, so any critique of the patch is very welcome

edit 2: I've worked on the patch and re-applied the curvature that quasar chose, also the nodes now take a frequency instead of a time in ms. they now take (samplerate/input)

and: in the original patch quasar wrote the delay objects in gen~ like this: "delay 44100 @interp cubic"

i changed that to ""delay @interp cubic" because ommitting the first argument sets the delays to be the current samplerate.

the testpatch is now pretty good also