RS-MET icon indicating copy to clipboard operation
RS-MET copied to clipboard

Can you make Breakpoint Modulator update its time mid cycle?

Open elanhickler opened this issue 7 years ago • 5 comments

When you modulate time scale in breakpoint modulator, the time scale only updates upon next trigger or next loop. Is it possible to make it update immediately or is that the limitation of breakpoint modulator?

elanhickler avatar Aug 08 '18 01:08 elanhickler

hmm...well...it's not straightforward. possible - maybe - but then perhaps a totally different implementation would be preferable. as it works now, i compute some time-related coefficients at each breakpoint and then they are assumed to be valid until the next breakpoint (i also pre-compute the time-instant of hitting the next breakpoint there). this makes the per-sample computations quite simple (just simple filters and perhaps a few arithmetic operations to create the shapes from the filter-outputs). basically, at each breakpoint hit, i compute a couple of filter coeffs

RobinSchmidt avatar Aug 08 '18 03:08 RobinSchmidt

for example, the exponential shape is just generated by a simple 1st order filter, the tanh-shape by two 1st order filters - one of them being unstable :-O (combining exponential growth and decay in a certain way - look up definition of tanh for the details of this certain way) ...which is workable here because i know, when to cut off the response

RobinSchmidt avatar Aug 08 '18 03:08 RobinSchmidt

HMMMM. I think we need more curve options for Breakpoint Modulator. I will keep thinking about this.

elanhickler avatar Aug 09 '18 17:08 elanhickler

Yes! Breakpoint Modulator can be utilized in some interesting ways to create the perfect envelope shape, all we need to do is create some more curve options!! Then I can create the perfect pluck envelope shapes and other envelope shapes I've been interested in. We need the "pluck curve" formula! It's a curve that goes from expo to linear smoothly with a curve option for how smoothly (how long the transition takes) and how drastic of an exponential curve.

Edit: Then I could apply a precise control scheme for the envelope points to give the user variations of the pluck total envelope (attack speed, attack curve, spikyness, degree of sustain, etc)

elanhickler avatar Aug 09 '18 17:08 elanhickler

aha! yes - i must think about how to create such a curve. maybe a simple crossfade between exp and linear would do. another interesting curve results from adding two exponential decays with different decay-times (with a crossfade parameter) - this results in an initially fast and later slower decay - a two-stage decay which is typical for piano envelopes, because the initially fast decay is somehow due to interference between the 3 strings per note (as i have read in this challenging book: https://www.amazon.de/Physics-Musical-Instruments-Neville-Fletcher/dp/0387983740)

btw., the bending shape in TriSawModulator is not exp but the bilinear rational formula, but i could add a true exp shape easily. we would then just get two more parameters for the bending-types or something - maybe a combobox, because later we may want to add still more

RobinSchmidt avatar Aug 09 '18 18:08 RobinSchmidt