Sunday, May 26th 2013, 10:33am UTC+2

You are not logged in.

  • Login

Dear visitor, you are currently not logged in. Login or Register as a new user .

1

Sunday, May 27th 2012, 8:54am

Can someone explain this recursion?

Hey!

I've been looking at a synth patch that includes this routing:

Can anyone explain to me how this works? Obviously the filter envelope is routing back to "Filter Env Slope", but is there some way to intuitively understand the result of this feedback?

Thanks!
-W

2

Sunday, May 27th 2012, 11:52am

It's used to turn a straight line envelope slope into a curve. It depends on the initial value for that envelope segment as well, but I Imagine that in this case that value was close to 0. The purpose of this positive feedback is to make the sustain slope steeper with time (either loudening or softening, depending on the sign of the initial value).

3

Monday, May 28th 2012, 3:41am

Gotcha.

Is there any reason this isn't just a parameter in the envelope section itself? Most softsynths allow the envelope to be curved without having to recurse.

4

Monday, May 28th 2012, 8:34am

In one word - legacy.

5

Monday, May 28th 2012, 1:31pm

Indeed, on many softsynths curving an envelope stage is a parameter in the envelope itself. By using the modulation matrix, the virus offers some flexibility though:

Modulating, for example, filter decay rate by the filter envelope allows for snappier decay rates, but negative modulation also allows for more convex behaviour. So positive or negative modulation allows for both concave and convex curves.

On top of that, every source in the modulation matrix can be used to modulate the depth of another slot in the matrix. In the above example, one could use a tempo synced lfo which modulates wether the decay rate modulation is positive or negative, allowing for a tempo synced change from convex to concave decay slopes.

Also, lfo' s can modulate their own modulation depth, their own amplitude, their own speed, etc. etc.


By using the modulation matrix for recursive stuff an enormous amount of flexibility emerges since such an approach is more generic than using dedicated parameters.


Observe:


lfo 1 is modulating the depth of lfo 2 which modulates speed of lfo 1 which modulates depth of lfo 3 which modulates both filter cutoff and lfo 2 and 3 speed.


On the virus the above insanity is possible. On most softsynths it is not.


M.

6

Tuesday, May 29th 2012, 2:19am

lfo 1 is modulating the depth of lfo 2 which modulates speed of lfo 1 which modulates depth of lfo 3 which modulates both filter cutoff and lfo 2 and 3 speed.
Handy. I'm a programmer and I work primarily in functional languages, so this form of recursion is familiar to me.

OTOH, how in the hell do you mentally picture the result of this interaction? Is this something that's intellectually achievable, or is it only practical to suck it and see?

7

Tuesday, May 29th 2012, 6:43am

Some experience in frequency and amplitude modulation can help, but in the end it is best to check what envelope you created in an oscilloscope (e.g. the s(m)exoscope VST).

Ace17

Trainee

Posts: 157

Location: France

  • Send private message

8

Wednesday, May 30th 2012, 7:45am

lfo 1 is modulating the depth of lfo 2 which modulates speed of lfo 1 which modulates depth of lfo 3 which modulates both filter cutoff and lfo 2 and 3 speed.
Handy. I'm a programmer and I work primarily in functional languages, so this form of recursion is familiar to me.

OTOH, how in the hell do you mentally picture the result of this interaction? Is this something that's intellectually achievable, or is it only practical to suck it and see?

I may be wrong, but Isn't it simply a first order differential equation?
You're basically saying "slope = k * function", thus the result is an exponential.

MarPabl

Trainee

Posts: 89

Location: United States

  • Send private message

9

Friday, June 1st 2012, 12:12am

I think this is function composition...

I may be wrong, but Isn't it simply a first order differential equation?
You're basically saying "slope = k * function", thus the result is an exponential.

I don't think so. Considering we're just modulating the release slope, we're starting with a linear equation:

rs(t) = m*t


Where rs is Release Segment, m is the Constant Slope and t is the time. Therefore the release segment is described, initially, as a simple straight line with certain slope.

When we modulate the slope, we change the equation to:

rs(t) = m(t)*t


Where m(t) is a new function having the shape of the Filter Envelope. This Envelope (function) is the union of several (straight) lines (each with different constant slope) which are first degree polynomials of the form:

fe(t)attack = me*t --------- for t from 0 to attack time

fe(t)decay = me*t --------- for t from attack to decay time

and so on...


Having fe for Filter Envelope, me for the Constant Slope of the envelope and t for the time.

So the resulting, modulated function, will be:

rs(t) = me*t*t

rs(t) = me*t²


Which is a second degree polynomial: a parabola. However, this parabola will have different width over the time, depending on the slope for each specific segment on the Filter Envelope.

The only fact I don't have clear in my mind is if the modulation will stop as soon as the Release segment starts. Otherwise, we would have complexities...

This post has been edited 3 times, last edit by "MarPabl" (Jun 1st 2012, 1:18am)