![]() |
uvi-script
Musical event scripting with Lua
|
| function | postEvent (e, delta) |
| send a script event back to the script engine event queue. | |
| function | playNote (note, vel, duration, layer, channel, input, vol, pan, tune, slice, oscIndex) |
| helper function to generate a note event. | |
| function | releaseVoice (voiceId) |
| release a specific voice by sending it a note off message | |
Event structure and event manipulation functions.
Events represent musical messages (notes, controllers, etc.) flowing through the system. This group provides functions to create, modify, post, and inspect events.
Event Structure:
Events are Lua tables with fields like:
Key Functions:
| function playNote | ( | note | , |
| vel | , | ||
| duration | , | ||
| layer | , | ||
| channel | , | ||
| input | , | ||
| vol | , | ||
| pan | , | ||
| tune | , | ||
| slice | , | ||
| oscIndex | ) |
helper function to generate a note event.
if duration is greater than 0 the voice will be released after the given duration if duration is -1 the voice will be released when the note that created this callback is depressed if duration is 0 only the note-on is sent release has to be done manually using releaseVoice and the returned id
| note | the note number in the range [0;127] |
| velocity | the note velocity in the range [1;127] |
| duration | (optional) duration of the note in milliseconds, default is -1 |
| layer | (optional) target layer index in the range [1;Program.layers] or a table of layer indices (e.g. {1, 3}), default to nil: all layers |
| channel | (optional) default to nil: all channels |
| input | (optional) default to nil: all inputs |
| vol | (optional) initial linear gain, default to 1 |
| pan | (optional) initial pan in the range [-1;1], default to 0 |
| tune | (optional) initial tuning in fractional semitones, default to 0 |
| slice | (optional) sliceId to trigger if when targetting the slice oscillator |
| oscIndex | (optional) oscillator index to trigger within one keygroup |
Example:
| function postEvent | ( | e | , |
| delta | ) |
send a script event back to the script engine event queue.
The event's layer field can be a single index or a table of indices (e.g. {1, 3}) to target multiple layers at once. When a table is provided, a separate event is dispatched for each layer.
| e | event to be sent |
| delta | (optional) delay in ms to be applied to the event default to 0 |
| function releaseVoice | ( | voiceId | ) |
release a specific voice by sending it a note off message
| id | the id of the voice to be released |
Example: