I did a little python toolset to speed up my VEX writing. It expands "code triggers" into "code snippets" and also updates the parm interface (default values, channel ranges from comments, ramps are generated from custom library). You can build your own libraries of snippets with specific channel ranges and defaults.
The python function responsible for code expanding is called qq_expand() and its code is here.
The python function responsible for parameter UI generation is called parm_generate() and its code is here.
- I use F9 to expand qqvex code
- I use F10 to generate (and/or update) the interface
Just write a qqfunction name, hit F9 and get this:
- typical use of the function
- typical interface
Just write a qq*.var name, hit F9 and get this:
- typical use of the variable
- typical range and defaults
To be accurate, the qq*.var may be
- qqf.var - creates float + ui
- qqi.var - creates int + ui
- qqs.var - creates string + ui
- qqv.var - creates vector + ui
- qqr.var - creates ramp + ui
- email@example.com - creates float attribute + ui
- firstname.lastname@example.org - creates int attribute + ui
- qq01.var - creates ui for fit01
- qqx.var - creates ui for 3D vector
- qqxx.var - creates ui for 3D fit01
create parameter interface
Use simple markup language, hit F10 and get ui:
- ramps with libraries
- string (chs and // node reference, // file reference)
- toggle (chi and // toggle)
- separators (just //---)
- labels (just //# custom text)
- color (chv and // color)
promote to parent
Just write this comment //parent after ch* then hit F10 and get:
- the parameter ui is created also on the parent node
- you can use it to "unify" and link one parameter on more places inside the container
- works also for ramps
promote to global
Just write this comment //global after ch* then hit F10 and get:
- the parameter ui is created also on one single global node
- you can use it to "unify" and link one parameter on more places, wherever
- works also for ramps
I use it for spline ramps. Just write the desired shape in the comment:
- // ease in, out, up, down, ...
- // smooth, bounce, sparkle, spring, ...
parameter values (default, min, max)
Just use comment in this convention // 10 in 0 to 100
- 10 will be default value
- 0 will be slider's min value
- 100 will be slider's max value
The initial idea comes from here, Matt Estela.