LFOs and other Continuous Time Modulators

As of version 0.1.0, Mégra has continous-time modulators for certain parameters (not for all of them).

So, instead of using discrete-time dynamic parameters:

(sx 'ba #t 
    (nuc 'fu (saw (bounce 100 200)))) ;; bounces frequency between 100 and 200 hz

you can now write things like"

(sx 'ba #t 
    (nuc 'fu (saw (linramp~ 100 200 :time 0.2)))) ;; fade frequency from 100 to 200 over the course of the 200ms event

Continous-time modulators have the ~ suffix (borrowed from the PD/Max languages), time values are in seconds (as opposed to milliseconds in the discrete-time domain)

You can use the modulators in a nested fashion:

(sx 'ba #t 
    (nuc 'fu :dur 1000 (sine (lfo~ :range 100 200 :freq 0.8) :sus 800))) ;; modulate frequency with fixed frequency of 0.6 hz

(sx 'ba #t 
    (nuc 'fu :dur 1000 (sine (lfo~ :range 100 200 :freq (linramp~ 0.6 0.2 :t 0.8))))) ;; slow down modulation frequency