i got the idea to make an LFO generator which would put together a bunch of random points on the fly and paste them into vital… i found that this had been done/attempted by others… but all previous posts i found yielded weird shapes that didn’t make sense or were unusable.
so here’s my LFO generator… which makes useable shapes… it runs in node.js
(so you need that installed) … and can be run as a bash script:
and a web based version for the less code-savy (just press run):
here’s a quick demo:
each time you run it, it copies the LFO data onto the clipboard, so you can paste it into Vital.
default number of points is between 2 and 16, but you can change it in code to be whatever you want.
the neat thing about bash scripts is they can be dragged/dropped onto the dock in OSX, and default open in terminal, so it’s like “one click, gimme a random LFO”…
obviously not baked into the Vital UI (dice would be nice in the LFO!), but i find it useful so i thought i’d share with the community.
the key part of where i improved upon the work of others comes from an understanding how vital represents LFO points… they are “pairs” of numbers (between 0 and 1) where - for each pair - the first number is the “percent through” the timeline and the second number is how far up or down the point is (where 0
is all the way up, and 1
is all the way down).
like this:
"points": [
0, 0.90732568781823, #beginning, close to bottom
0.07859319588169, 0.17340282374061, #7% through time, close to top
0.84369235648774, 0.89724101102911, #84% through time, close to bottom
0.95495571941138, 0.74014372192323, #95% through time, close to bottom
1, 0.90732568781823 #end, loops back to original point
],
the “powers” array is for designing curves:
"powers": [
0, #flat
0, #flat
6.5590370099526, #curvy up
0, #flat
-8.82780648162589 #curvy down
]
try the whole thing if you wish (copy/paste into vital):
{
"name": "neat stuff",
"num_points": 5,
"points": [
0,
0.90732568781823,
0.07859319588169,
0.17340282374061,
0.84369235648774,
0.89724101102911,
0.95495571941138,
0.74014372192323,
1,
0.90732568781823
],
"powers": [
0,
0,
6.5590370099526,
0,
-8.82780648162589
],
"smooth": false
}
it’s really genius what matt did with a simple bit of JSON… i am blown away by this synth