UVIScript is a domain-specific scripting language built on top of the Lua scripting language.
It has been created in order to provide greater flexibility and inject artifical intelligence when generating and interpreting (MIDI) musical events.
UVI scripts are small files written in the Lua language and using the UVIScript API that process and/or generate musical Events. It can be seen as MIDI Effects on steroids. Scripts also have access to all the synthesis engine and can query and modify module parameters.
Possibilities are endless and only limited to your imagination:
Regarding lua documentation, we recommend:
They are really well written and provide a very good introduction and a solid base to begin scripting with UVIScript. Using a simple, widespread but powerful scripting language that one can learn online or with a book was one of the main motivation for using Lua.
UVIScript is built on top of a sandboxed Lua 5.1 virtual machine with some custom extensions.
All the lua code is executed with real-time priority except the main script chunk and onLoad, onSave. This means that execution time should be predictable and bounded and that no memory allocation should happen (lua internal memory is allocated with a special memory pool). Avoid any lengthy operation like looping over a table with 10000 entries. This also means that the standard lua libraries: os and io are not available.
Here's the list of the standard libraries that are loaded:
Third-party lua libraries are not allowed for the same reasons as stated above.