Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

Middle Layer SDK (aka patching with Lua)



Let’s say I want to update a parameter value at the sample rate. Specifically, I’d like to update the threshold parameter of the Comparator object at the sample rate rather than the frame rate. Is that possible? My testing leads me to believe that a ParameterAdapter will allow you to connect a sample rate (Outlet) signal to it, but the parameter is still only updated at the frame rate?


No. Parameters are frame-rate only and that is their purpose. In other, DSP environments they are known as the control rate layer. The DSP object designer has to always spend some time thinking about what inputs will be sample rate (Inlets) and which will be frame rate (Parameters). The choice usually deeply impacts the way the object’s internal DSP algorithm is written.

As for achieving the effect of a Comparator threshold updated at sample rate, how about keeping the threshold constant and adding an offset (via the Sum object)?


Hi @odevices - quick question on the Schroeder Allpass unit. Is it using the standard delay block? If so, is there a way to ensure that the internal feedback is set to -inf, rather than the usual -35.90dB or so?

I’ve put this in line in the FDN patch that Joe and I are looking at, and any gain above 0.060 seems to be howling, which makes me think it’s set to the latter (above) rather than former. Cheers!


The internal feedback gain defaults to zero.

Are you sure you don’t mean 0.6?


Thanks for the fast reply! I’m sure, it’s 0.060 not 0.60. I set the unit outside my chain, and no problems there; I will have to assume that it’s an issue with the FDN not being lossless for now! Will have a hunt around and report back.


Also using only relatively prime delay times? On a related note make sure you have explicitly allocated buffer space for each delay. Actual delay time will be clamped to the allocated buffer size.


I noticed something similar in a different context. I was trying to build a phaser effect (4 stage), which worked, but when I tried feeding the output back into the input, it went from not noticeable at all to out of control in a hurry. Still trying to figure it out. :slight_smile: