Attempt at Ciat Lonbarde AVDog as a Max Patch

Ko de Beer's icon

I am trying to create a Max Patch to reproduce the behavior of a Ciat Lonbarde AVDog.

AVDog has an oscillator, vca/gate, stereo panning and most important a filter which is sub audio rate 0.4 to 12. Sending a trigger into the filter you get a waveform out from the filter which is then used as an envelope to pan the oscillator left to right and to open and close the vca/gate. The filter Q will decide how long it takes for the "envelope" to settle back to 0.

I saw on Dylan B. on youtube emulating the AVDog on an Arduino and the result is very convincing:

https://www.youtube.com/watch?v=o2HZj-cjBDQ

Dylan provided an Arduino code to show how it works:

https://github.com/uvknhn/mozzi/blob/main/ddogs/ddogs.ino


It inspired me to try and do it on Max but I am not satisfied with the result. I think the way I map the Waveform could be improved but I have no idea, suggestions would be very welcome.

AVDog2.maxpat
Max Patch



Mitch Triplett's icon

dk.avdog~ (and several others) are available in the Data Knot package.

Rodrigo's icon

Yeah, have a gander in Data Knot. I've done decent versions of a few of the CL instruments. The AVDog sounds particularly good, and I think I dialed in the ranges of pitch/rate quite well, comparing it to my physical plumbutter.

You can see/hear the CL stuff here:

(timestamp starting at 6:38)

The main component is a resonant filter that gets pinged. So just need a filter that behaves nicely and self-oscillates enough to give solid wiggles.

Ko de Beer's icon

I was unaware that Data Knot had CL instruments I will definitely try it out!

A part for me to do this was also the educational aspect, I relatively new to max and thought emulating a AVDog could be a fun small project to try out and learn on the way. Just for the educational sake I am still interested to know why my patch did not get the desired result that I wanted to achieve. I would love to hear if the patch that I made was not the right method or what could have improved it.

Rodrigo's icon

You're on the right track there.

The main things I would suggest experimenting with is bypassing the clipping after the filter, and maybe use some saturation instead.

Then the panning stuff needs to happen at audio rate, or at least being smoothed. In general it's a good idea to avoid going from signal to message using number~/snapshot~ as they are quite inefficient.

From there, tuning the ranges of stuff so you have viable control over the main avdog parameters ("pitch", "rate" and "q").

Other than that, most of the other things I did were oriented around fine-tuning it to sound/behave more like the physical one, so a different oscillator waveform (not purely a saw tooth) and some other saturation/smoothing things so the decay is more like the physical one.

But ultimately it's the same idea. A pinged filter panning an oscillator.