Wherein we explore the lower bounds of oscillation.
Hz.LFO
is a standalone CLAP plugin that is also a component of other Hz plugins
like Hz.Osc and Hz.Samplo.
Hz.LFO
produces audio rate, low frequency oscillations suitable for
connecting to other audio input ports for use in phase and ampltidue modulation.
When operating as a module, Hz.LFO
can be used to drive internal
plugin parameters. However if you wish to drive anode parameters with an
LFO signal, please see Hz.ModLFO.
Each Hz.LFO
panel includes the parameter operation controls at top.
download syncs the GUI with the current state of the associated instance.
upload pushes the GUI parameter settings to the associated instance.
bookmark selects from a list of named parameter settings.
You can manipulate the parameter settings in this GUI when the associated instance is live. Please note that these values have no intrinsic persistence. In other words, you should save favorite parameter settings to a text file or in the preset settings (which is more volatile).
Two buttons to the left of the envelope allow you to:
toggle smooth
on the envelope.
copy
LFO envelopes (knotlists) from Envelope Editor or other clipboard providers likeVital
.
When UpdateGui
is enabled, the audio engine delivers periodic samples of the
LFO and these are presented as yellow dots in the plot. For small LFO periods,
or for random styles, the dots may appear in apparently random due to aliasing.
For large periods, the underlying curve is easily discerned by the samples.
Name | Id | Description | Range |
---|---|---|---|
Trigger |
100 | LFO restart trigger | 0:NoteOn, 1:NoteOff, 2:FreeRunning, 3:Never (0) |
TriggerOrigin |
101 | LFO origin when restarted | 0:Start, 1:Global, 2:Random, 3:PointCycle (0) |
Delay |
102 | Time in seconds to delay when triggered | 0-4 seconds (0) |
Loop |
103 | Controls weather LFO restarts on completion. | 0 or 1 (0) |
PeriodMeasure |
104 | Units of Period | 0:Seconds, 1: Beats, 2: KeyTrack (0) |
Period |
105 | Duration of a cycle | 0=10 (0) |
KeytrackOffset |
106 | Keys of offset when key tracking | -100-100 (-24) |
KeytrackDetune |
107 | -100 - 100 (0) | |
Amplitude |
108 | Maximum Envelope Value | 0-8 (1) |
UpdateGui |
109 | Request updates from running audio engine | 0 or 1 (1) |
Style |
110 | LFO style | 0:Knotlist, 1:RandomHold, 2:RandomLine, 3:RandomCurve, 4:Random, 5:RandomChoice (0) |
Hz.LFO
supports init-time presets as well as the explicit LoadPreset
method.
A preset is a string containing a JSON-formatted object with parameter name/value pairs.
Three special parameters, shape
, knotlist
and choices
can be used to
deliver preset shapes or explicit knotlists used when Style
is 0 or 5
(RandomChoice).
Here are two example snippets
let lfo = scene.NewAnode("Hz.LFO", {name:"lfo", preset:{shape:"sine"}});
let preset = {
"Style": 0,
"Period": 4,
"knotlist": {
"name":"weird one",
"smooth":true,
"data":[0,0,0,0,1,-2.5320870876312256,0.125,0,0,0.125,0.8064546138048172,-2.0739049911499023,0.1875,0,0,0.1875,0.8367978036403656,-2.318324327468872,0.25,0,0,0.25,0.5651739239692688,-2.942765712738037,0.375,0,0,0.3792553191489362,0.8392674215582581,-2.5983188152313232,0.5,0,0,0.5,0.458682119846344,-2.670619010925293,0.5625,0,0,0.5625,0.7534877210855484,-2.133754014968872,0.625,0,0,0.625,0.408993661403656,-1.8389023542404175,0.75,0,0,0.75,0.8749767541885376,-1.1424733400344849,0.7916666865348816,0,0,0.7916666865348816,0.6454613208770752,-2.0506770610809326,0.8333333134651184,0,0,0.8333333134651184,0.4726794958114624,-2.420653820037842,0.875,0,0,0.875,0.891136534512043,-1.9837125539779663,0.9166666865348816,0,0,0.9166666865348816,0.653018057346344,-1.4197474718093872,0.9583333134651184,0,0,0.9583333134651184,0.8259161114692688,-1.7568707466125488,1,0,0,1,0,0],
"prefs":{"speed":".25"}
},
"choices": [0, 10, 20, 75]
};
await lfo.LoadPreset(JSON.stringify(preset))
Please see Hz.ModRand for details on the variety of random modulation styles.