Hi folks, I’ve just got myself up and running with max/msp and the daisy patch. I created a very simple delay in Gen~ using “delay”. I was trying to send “Param knob1 @min 0 @max 44100” into the right inlet of the delay and I found that it was causing some kind of distortion. I think this may makes sense since its updating the delay value at audio rate. Any tips on how else I can assign a knob from patch to control the delay time.
Edit, dont mind the “clip -1 1” everywhere, I was trying to trace the distortion source
I am not hearing this in your patch
I removed all the clip -1 1
The only funny thing you got there that is “new” is the auto-magic low pass filter “dcblock”
feedback will continue even if the audio drops below audible frequency ranges. At high feedback levels, the low freqencies can linger for a while, causing intermodulational voodoo.
I made a test patch to test your thing with the standard Max file player
No extra distortion heard
Also, Daisy Gen does NOT operate at 44100. 96k, 48k, 32k only. You can call this with “samplerate” also, to lock your “maximum 1 second” delay to it. I did this in my reply patch
-just wanted to add that as a mixing engineer, there is almost never any “good” reason to use a delay on any signal below 78hz, unless you are trying to make a mess of the freqency spectrum. “Most” delays (especially analog, BBD, and tape ones) high pass their input stages to avoid quickly over saturating and distorting. OR they use “emphasis/deemphasis” filters.
Thanks ManySounds for having a look. I noticed a small typo in my original post, its knob 2, the delay time causing me issues. In your simulation your right there aren’t any noticeable issues. Ive recorded what I’m hearing. In the first part I leave all parameters at zero and only switch between dry and wet. You can hear the distortion especially in the highs. In the second part I disconnected knob 2, the delay time and reprogrammed the daisy. You can hear slight phasing as we go between dry and wet but not the distortion. I play with the feedback a bit and it sounds alright.
Ahhhhhhhh
YES maybe I have an idea.
The knobs don’t report a steady voltage SO some high pass and/or smoothing may correct this.
Basically, the analog components are introducing subtle noise to the delay time.
This may present itself as digital distortion.
Referring to the object oopsy.suggestions.gendsp:
Yep, responded to this over on the c74 forum post too – there’s a little electronic noise on the control inputs, which is mostly imperceptible, but when mapping that to a delay line a little noise can have quite a significant effect as the delay read index is now jumping around in the delay buffer. Adding a smoothing filter to the parameter is all that’s needed, and [oopsy.ctrl.smooth3] was written for this, it’s a 3-pole high-pass filter – tested out different filter parameters for it against delay time usage for the very reason that long delays make it more apparent
Yes @Manysounds is correct, you can use [param knob1 @max samplerate], and even small expressions like [param knob1 @max samplerate/2], [delay samplerate*3] etc. in gen~.
Also agree that dcblocking (high-shelf filtering) is pretty essential to almost any audio feedback delay. The [dcblock] object built into gen~ is a very minimal one-stage low-shelf/high-pass implemented per the code below. It’s frequency response is going to depend on the samplerate, but at 48kHz I believe the cutoff is about 2.5Hz, so it might be a bit low for a delay line. There’s plenty of examples of filters in the gen~ examples folder in Max, including one for designing biquads with which you could put together a lowshelf around 78Hz.
I started playing with the biquad a little and copy and pasted this as a substituted to the dcblock. It sounds much better, getting the lows out of the delay line. There is a definite low pass sound as you approach 50% dry/wet or beyond, so it still needs tweaking. I’m just learning this stuff and am a bit over my head but am wondering what pole this represents. It may not sound so pronounced if the drop in db/oct was less, like maybe 6db/oct.