Noatikl contains many powerful scripting features. This page lists all the available functions, objects, and parameters.
Scripting Function Reference
Note that Noatikl supports the table, string and math standard Lua libraries. It does not support the io or os libraries.
A note on print
Note that the standard Lua function print may be used to display text in the Noatikl console window (if you happen to have that displayed; this is very useful for debugging your scripts!
The following functions can be used from any Noatikl script.
noatikl_GetRandom ()
This function returns a random integer.
Example:
local lValue = noatikl_GetRandom ()
noatikl_GetRandomFromTo (minimum, maximum)
This function returns a random integer in the range of the two supplied values.
The function has two arguments:
- minimum the minimum value that can be returned
- maximum the maximum value that can be returned
Example:
-- Get a random integer between 0 and 50 inclusive. local lValue = noatikl_GetRandomFromTo (0, 50)
noatikl_GetTime ([table])
Returns the current time. It works the same way as the the Lua os.time function.
noatikl_GetDate ([format [, time])
Returns the current date. It works the same way as the the Lua os.date function.
Example:
-- Noatikl script to get hour of day as 24-hour clock value
-- ... and adjust tempo accordingly!
local lTime = tonumber(noatikl_GetDate("%H"))
if ((lTime > 20) or (lTime < 8))
then
print ("late night / early morning!")
local lRandom = noatikl_GetRandomFromTo(0,50)
noatikl_Trigger_Parameter_Set("Tempo", 50 + lRandom)
else
print ("middle of day!")
local lRandom = noatikl_GetRandomFromTo(0,50)
noatikl_Trigger_Parameter_Set("Tempo", 100 + lRandom)
end
The following functions can only be used from any Noatikl trigger script
noatikl_Trigger_Parameter_Set (parameter_name, newvalue)
This function is used to set the object's parameter to the supplied value, for the object within whose trigger script you place this call.
The function has two arguments:
- parameter_name the name of the parameter for which you want to set the value.
- newvalue the new value to use.
Example:
function nt_trigger_start()
-- Set the current patch (assuming we make this call from within a
-- Voice's trigger script!)
local lPatch = 20
noatikl_Trigger_Parameter_Set("Patch", lPatch)
end
noatikl_Trigger_Parameter_Get (parameter_name)
This function returns the value of the named parameter, for the object within whose trigger script you place this call. Note that the value returned is always a string, which you can convert to a number using tonumber().
The function has one argument:
- parameter_name the name of the parameter for which you want to determine the current value.
Example:
function nt_trigger_start()
-- Get the current patch (assuming we make this call from within a
-- Voice's trigger script!)
local lPatch = noatikl_Trigger_Parameter_Get("Patch")
print("Patch", lPatch)
end
noatikl_Trigger_Parameter_Get_AsNumber (parameter_name)
This function returns the value of the named parameter, for the object within whose trigger script you place this call. Note that the value returned is always a number, so you should use this call only when you know that the parameter in question can be treated as a number.
The function has one argument:
- parameter_name the name of the parameter for which you want to determine the current value.
Example:
function nt_trigger_start()
-- Get the current patch as a number (assuming we make this call from within a
-- Voice's trigger script!)
local lPatch = noatikl_Trigger_Parameter_GetAsNumber("Patch")
print("Patch", lPatch)
end
noatikl_Trigger_GetChannel()
This function returns the MIDI channel (assuming the script is called from within a voice script!). The value returned is a value between 1 and 16.
Example:
function nt_trigger_start()
local lChannel = noatikl_Trigger_GetChannel ()
print ("Channal", lChannel)
end
noatikl_Trigger_GetRuleElement (object_type, object_name, element_index)
This function returns the rule element value of the specified index, for the named object. The value returned is a value between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
Example:
function nt_trigger_start()
-- Dump out the scale rule element values, for the major scale.
local lIndex = 0
while (lIndex < 12)
do
local lValue = noatikl_Trigger_GetRuleElement ("Scale Rule", "Major", lIndex)
print ("lValue", lValue)
lIndex = lIndex + 1
end
end
noatikl_Trigger_SetRuleElement (object_type, object_name, element_index, newvalue)
This function set the rule element value of the specified index, for the named object, to the specified value. The value must be between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
- newvalue the new element value to use, in a range from 0 to 127.
Example:
function nt_trigger_start()
-- Set the scale rule element values, to odd settings (!), for the major scale.
local lIndex = 0
while (lIndex < 12)
do
noatikl_Trigger_SetRuleElement ("Scale Rule", "Major", lIndex, (lIndex * 127) / 12)
lIndex = lIndex + 1
end
end
noatikl_Trigger_EmitListeningNote(noteon, pitch, velocity)
This function emits the specified note via the current voice; the function is allowed only within a nt_trigger_midiin_note trigger script. See the Noatikl hyperinstrument guide for a detailed discussion. Note that this function will have an effect only if will work only if your voices is a Listening voice, and if Listen? is ticked.
The function has the following arguments:
- noteon true for a note on event, false for a note off event.
- channel the MIDI channel to use; from 1 to 16.
- pitch the MIDI pitch to use; from 0 to 127.
- velocity the MIDI velocity to use, from 0 to 127.
Example:
function nt_trigger_midiin_note(noteon, channel, pitch, velocity)
if (channel == noatikl_Trigger_GetChannel())
then
noatikl_Trigger_EmitListeningNote(noteon, pitch, velocity)
end
end
noatikl_Trigger_EmitMidiCC (channel, cc, value [, delay])
This function emits the specified MIDI CC event.
The function has the following arguments:
- channel the MIDI channel to use; from 1 to 16.
- cc the MIDI CC to use; from 0 to 127.
- value the controller value to use, from 0 to 127.
- delay an optional delay to use, from 0 up, defaulting to 0; in Noatikl pattern time units (where 60 represents one crotchet or quarter note). The delay is relative to the current Noatikl timebase relevant to the trigger script in question.
Example:
function nt_trigger_bar(bar)
-- Voice trigger...
-- Apply a pan sweep through the bar from left to right,
-- to show-off the use of noatikl_Trigger_EmitMidiCC.
local lDuration = noatikl_Trigger_GetBarDuration()
local lMidiChannel = noatikl_Trigger_GetChannel()
local lDelay = 0
local lCC = 10 -- Pan controller!
local lValue = 0
while lDelay <= lDuration do
local lValue = (127 * lDelay) / lDuration
-- Note that the "lDelay" is optional; we use this in this specific
-- demo, to get a sweep effect from start to end of the bar.
noatikl_Trigger_EmitMidiCC(lMidiChannel, lCC, lValue, lDelay)
lDelay = lDelay + 20
end
end
noatikl_Trigger_GetBarDuration ()
This function returns the duration of the piece bar, in Noatikl pattern time units; where 240 represents four crotchets or one whole note or a bar of 4:4 time.
Example:
function nt_trigger_start()
local lDuration = noatikl_Trigger_GetBarDuration()
print ("lDuration", lDuration)
end
noatikl_Trigger_Object_GetCount (object)
Returns the number of objects of the specified type, in the current Noatikl file.
The function has the following arguments:
- object the object of interest.
Example:
function nt_trigger_start()
lCount = noatikl_Trigger_Object_GetCount('Voice')
print ('Voice objects=', lCount)
end
noatikl_Trigger_Object_GetName (object_type, object_index)
Returns the name of the specified object.
The function has the following arguments:
- object_type the type of the object of interest.
- object_index the index of the object of interest.
Example:
function nt_trigger_start()
local lCount = noatikl_Trigger_Object_GetCount('Voice')
print ('Voice objects=', lCount)
local lIndex
while (lIndex <= lCount)
do
print (noatikl_Trigger_Object_GetName('Voice', lIndex)
lIndex = lIndex + 1
end
end
noatikl_Trigger_Object_Parameter_Get (object_type, object_index, parameter_name)
Returns the value of the parameter, for the specified object index of the specified object type, in the playing Noatikl file.
The function has the following arguments:
- object_type the type object of interest.
- object_index the index of the object of interest.
- parameter_name the parameter of interest.
Example:
function nt_trigger_start()
local lVal = noatikl_Trigger_Object_Parameter_Get("File", 1, "Author")
print ('Author=', lVal)
end
noatikl_Trigger_Object_Parameter_Set (object_type, object_index, parameter_name, newvalue)
Sets the parameter to the the supplied value, for the specified object index of the specified object type, in the playing Noatikl file.
The function has the following arguments:
- object_type the type object of interest.
- object_index the index of the object of interest.
- parameter_name the parameter of interest.
- newvalue the new value to use.
Example:
function nt_trigger_start()
noatikl_Trigger_Object_Parameter_Set("File", 1, "Author", "John Smith")
end
noatikl_Trigger_GetRuleElement (object_type, object_name, element_index)
This function returns the rule element value of the specified index, for the named object. The value returned is a value between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
Example:
function nt_trigger_start()
local lCount = noatikl_Trigger_Object_GetCount(l'Scale Rule')
print ('Scale Rule objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Dump out the scale rule element values, for the scale!
local lName = noatikl_Trigger_Object_GetName('Scale Rule', lIndex)
print ('Scale', lName)
local lItemIndex = 0
while (lItemIndex < 12)
do
local lValue = noatikl_Trigger_GetRuleElement ("Scale Rule", lName, lItemIndex)
print ("lItemIndex", lItemIndex, "lValue", lValue)
lItemIndex = lItemIndex + 1
end
lIndex = lIndex + 1
end
end
noatikl_Trigger_SetRuleElement (object_type, object_name, element_index, newvalue)
This function set the rule element value of the specified index, for the named object, to the specified value. The value must be between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
- newvalue the new element value to use, in a range from 0 to 127.
Example:
function nt_trigger_start()
local lCount = noatikl_Trigger_Object_GetCount('Scale Rule')
print ('Scale Rule objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Set the scale rule element values, for the scale, to stupid values!
local lName = noatikl_Trigger_Object_GetName('Scale Rule', lIndex)
print ('Scale', lName)
local lItemIndex = 0
while (lItemIndex < 12)
do
local lValue = (lItemIndex * 127) / 12
noatikl_Trigger_SetRuleElement ("Scale Rule", lName, lItemIndex, lValue)
lItemIndex = lItemIndex + 1
end
lIndex = lIndex + 1
end
end
noatikl_Trigger_GetEnvelopePercent (object_type, object_name, par_name, percent)
This function returns the percent value for the specified envelope at the given percent position. The value returned is a value between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- par_name the name of the envelope parameter (e.g. Volume).
- percent the percent value; from 0 to 100.
Example:
function nt_trigger_start()
local lCount = noatikl_Trigger_Object_GetCount('Voice')
print ('Voice objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Dump out the voice volumes envelopes!
local lName = noatikl_Trigger_Object_GetName('Voice', lIndex)
print ('Voice', lName)
local lPercent = 0
while (lPercent <= 100)
do
local lValue = noatikl_Trigger_GetEnvelopePercent ("Voice", lName, "Volume", lPercent)
print ("Volume percent", lPercent, "value", lValue)
lPercent = lPercent + 1
end
lIndex = lIndex + 1
end
end
noatikl_Trigger_SetEnvelopePercent (object_type, object_name, par_name, percent, newvalue)
This function sets the envelope value at the specified percent, for the named object, to the specified value. The value must be between 0 and 127.
The function has the following arguments:
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- par_name the name of the envelope parameter (e.g. Volume).
- percent the percent value; from 0 to 100.
- newvalue the new element value to use, in a range from 0 to 127.
Example:
function nt_trigger_start()
local lCount = noatikl_Trigger_Object_GetCount('Voice')
print ('Voice objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Ramp-up every voice volume envelope!
local lName = noatikl_Trigger_Object_GetName('Voice', lIndex)
print ('Voice', lName)
local lPercent = 0
while (lPercent <= 100)
do
local lValue = (lPercent * 127) / 100
noatikl_Trigger_SetEnvelopePercent ("Voice", lName, "Volume", lPercent, lValue)
lPercent = lPercent + 1
end
lIndex = lIndex + 1
end
end
The following functions can only be used from the Noatikl script console window.
noatikl_Window_New ()
Creates a new Noatikl file; the user is first prompted with the template selection dialog. Returns a file handle that you must use in other related function calls; returns 0 in the case of an error.
Example:
-- Create a new file Window, and keep it open! local lWindow = noatikl_Window_New()
noatikl_Window_OpenPath ([filepath])
Opens the Noatikl file from the specified path. Returns a file handle that you must use in other related function calls; returns 0 in the case of an error.
The function has the following arguments:
- filepath the path of the Noatikl file to open. If this argument is not supplied, the user is first presented with a file browser to select a file to open.
Example:
-- Open a file Window, and keep it open!
local lWindow = noatikl_Window_OpenPath("/myfolder/myfile.noatikl")
noatikl_Window_Close (window)
Closes the Noatikl file window returned by an earlier call to noaikl_Window_Open.
The function has the following arguments:
- window the window handle of the file to be closed.
Example:
-- Open a file Window
local lWindow = noatikl_Window_OpenPath("/myfolder/myfile.noatikl")
-- and immediately close it!
noatikl_Window_Close(lWindow)
noatikl_Window_GetCount (window)
Returns the number of currently open Noatikl file windows.
Example:
local lCount = noatikl_Window_GetCount()
print ("lCount", lCount)
noatikl_Window_GetWindow (index)
Returns the window handle for the specified window index; returns 0 if no window exists for that index.
The function has the following arguments:
- index the index of the window for which the handle is being queried.
Example:
local lCount = noatikl_Window_GetCount()
print ("lCount", lCount)
local lIndex = 1
while (lIndex <= lCount)
do
local lWindow = noatikl_Window_GetWindow(lIndex)
print (lWindow)
local lPath = noatikl_Window_GetPath(lWindow)
print (lPath)
lIndex = lIndex + 1
end
noatikl_Window_GetPath (window)
Returns the file path used by the window in question.
The function has the following arguments:
- window the window handle of the file being queried.
Example:
-- Run through all open Noatikl file windows, -- and print out the file paths. local lCount = noatikl_Window_GetCount() local lIndex = 1 while (lIndex <= lCount) do local lWindow = noatikl_Window_GetWindow(lIndex) local lPath = noatikl_Window_GetPath(lWindow) print (lPath) lIndex = lIndex + 1 end
noatikl_Window_SaveToPath (window, path)
Save the Noatikl file window returned by an earlier call to noaikl_Window_Open, to the specified path.
The function has the following arguments:
- window the window handle of the file to be saved.
- path the path where the file should be saved.
Example:
-- Try to save the file with a different name... immediately close it!
noatikl_Window_SaveToPath("/myfolder/myfilenew.noatikl")
noatikl_Window_FindFilePaths (subfolder [, subfolder2]
Find all Noatikl files relative to the Noatikl document root. Return as an array of file paths.
The function has the following arguments:
- subfolder the subfolder under which to search.
- subfolder2 option subfolder to search under the subfolder.
Example:
local lFileList = noatikl_FindFilePaths("templates", "timdidymus1")
local index = 0
while true do
index = index + 1
local lFilePath = lFileList[index];
if (lFilePath == nil)
then
break
end
print ("File path", lFilePath)
end
noatikl_Window_Object_GetCount (window, object)
Returns the number of objects of the specified type, in the specified Noatikl file.
The function has the following arguments:
- window the window handle of the file to be saved.
- object the object of interest.
Example:
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Voice')
print ('Voice objects=', lCount)
noatikl_Window_Object_GetName (window, object_type, object_index)
Returns the name of the specified object.
The function has the following arguments:
- window the window handle of the file to be saved.
- object_type the type of the object of interest.
- object_index the index of the object of interest.
Example:
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Voice')
print ('Voice objects=', lCount)
local lIndex
while (lIndex <= lCount)
do
print (noatikl_Window_Object_GetName(lWindow, 'Voice', lIndex)
lIndex = lIndex + 1
end
noatikl_Window_Object_SetName (window, object_type, object_index, newname)
Sets the name of the specified object.
The function has the following arguments:
- window the window handle of the file to be saved.
- object_type the type of the object of interest.
- object_index the index of the object of interest.
- newname the new name to use for the object; this must be unique, and must be a valid name.
Example:
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Voice')
print ('Voice objects=', lCount)
local lIndex
while (lIndex <= lCount)
do
-- Make-up a new name, based on the index number!
lNewName = lIndex
print (noatikl_Window_Object_SetName(lWindow, 'Voice', lIndex, lNewName)
lIndex = lIndex + 1
end
noatikl_Window_Object_Parameter_Get (window, object_type, object_index, parameter_name)
Returns the value of the parameter, for the specified object index of the specified object type, in the specified Noatikl file.
The function has the following arguments:
- window the window handle of the file to be saved.
- object_type the type object of interest.
- object_index the index of the object of interest.
- parameter_name the parameter of interest.
Example:
local lVal = noatikl_Window_Object_Parameter_Get(lWindow, "File", 1, "Author")
print ('Author=', lVal)
noatikl_Window_Object_Parameter_Set (window, object_type, object_index, parameter_name, newvalue)
Sets the parameter to the the supplied value, for the specified object index of the specified object type, in the specified Noatikl file.
The function has the following arguments:
- window the window handle of the file to be saved.
- object_type the type object of interest.
- object_index the index of the object of interest.
- parameter_name the parameter of interest.
- newvalue the new value to use.
Example:
noatikl_Window_Object_Parameter_Set(lWindow, "File", 1, "Author", "John Smith")
noatikl_Window_GetRuleElement (window, object_type, object_name, element_index)
This function returns the rule element value of the specified index, for the named object. The value returned is a value between 0 and 127.
The function has the following arguments:
- window the window handle of the file
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
Example:
local lWindow = noatikl_Window_New()
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Scale Rule')
print ('Scale Rule objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Dump out the scale rule element values, for the scale!
local lName = noatikl_Window_Object_GetName(lWindow, 'Scale Rule', lIndex)
print ('Scale', lName)
local lItemIndex = 0
while (lItemIndex < 12)
do
local lValue = noatikl_Window_GetRuleElement (lWindow, "Scale Rule", lName, lItemIndex)
print ("lItemIndex", lItemIndex, "lValue", lValue)
lItemIndex = lItemIndex + 1
end
lIndex = lIndex + 1
end
noatikl_Window_SetRuleElement (window, object_type, object_name, element_index, newvalue)
This function set the rule element value of the specified index, for the named object, to the specified value. The value must be between 0 and 127.
The function has the following arguments:
- window the window handle of the file
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- element_index the index of the element; starting at zero for the initial element.
- newvalue the new element value to use, in a range from 0 to 127.
Example:
local lWindow = noatikl_Window_New()
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Scale Rule')
print ('Scale Rule objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Set the scale rule element values, for the scale, to stupid values!
local lName = noatikl_Window_Object_GetName(lWindow, 'Scale Rule', lIndex)
print ('Scale', lName)
local lItemIndex = 0
while (lItemIndex < 12)
do
local lValue = (lItemIndex * 127) / 12
noatikl_Window_SetRuleElement (lWindow, "Scale Rule", lName, lItemIndex, lValue)
lItemIndex = lItemIndex + 1
end
lIndex = lIndex + 1
end
noatikl_Window_GetEnvelopePercent (window, object_type, object_name, par_name, percent)
This function returns the percent value for the specified envelope at the given percent position. The value returned is a value between 0 and 127.
The function has the following arguments:
- window the window handle of the file
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- par_name the name of the envelope parameter (e.g. Volume).
- percent the percent value; from 0 to 100.
Example:
local lWindow = noatikl_Window_New()
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Voice')
print ('Voice objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Dump out the voice volumes envelopes!
local lName = noatikl_Window_Object_GetName(lWindow, 'Voice', lIndex)
print ('Voice', lName)
local lPercent = 0
while (lPercent <= 100)
do
local lValue = noatikl_Window_GetEnvelopePercent (lWindow, "Voice", lName, "Volume", lPercent)
print ("Volume percent", lPercent, "value", lValue)
lPercent = lPercent + 1
end
lIndex = lIndex + 1
end
noatikl_Window_SetEnvelopePercent (window, object_type, object_name, par_name, percent, newvalue)
This function sets the envelope value at the specified percent, for the named object, to the specified value. The value must be between 0 and 127.
The function has the following arguments:
- window the window handle of the file
- object_type the object type (e.g. Scale Rule).
- object_name the name of the object (e.g. Major).
- par_name the name of the envelope parameter (e.g. Volume).
- percent the percent value; from 0 to 100.
- newvalue the new element value to use, in a range from 0 to 127.
Example:
local lWindow = noatikl_Window_New()
local lCount = noatikl_Window_Object_GetCount(lWindow, 'Voice')
print ('Voice objects=', lCount)
local lIndex = 1
while (lIndex <= lCount)
do
-- Ramp-up every voice volume envelope!
local lName = noatikl_Window_Object_GetName(lWindow, 'Voice', lIndex)
print ('Voice', lName)
local lPercent = 0
while (lPercent <= 100)
do
local lValue = (lPercent * 127) / 100
noatikl_Window_SetEnvelopePercent (lWindow, "Voice", lName, "Volume", lPercent, lValue)
lPercent = lPercent + 1
end
lIndex = lIndex + 1
end
Objects and Parameters
The following table defines all parameters available to Noatikl scripts, listing the object name, the parameter name (as supplied to functions, and which is always unique for a given object), and the parameter name (as shown to the user in any view, which is usually shorter than the name that must be supplied to functions, and which is not always unique), and the range of legal values that you may supply.
Object: "File"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| File | Title | "Title" | |
| Author | "Author" | ||
| Midi Output Device | "Midi Output Device" | ||
| Midi Input Device | "Midi Input Device" | ||
| Midi Sync? | "Midi Sync?" | Yes or No | |
| Notes | "Notes" |
Object: "Frequency Jump Rule"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| Frequency Jump Rule | Value | "Value" |
Object: "Harmony Rule"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| Harmony Rule | Value | "Value" |
Object: "Rhythm Rule"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| Rhythm Rule | Value | "Value" |
Object: "Scale Rule"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| Scale Rule | Value | "Value" |
Object: "Piece"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| Piece - Basics | Piece Length | "Piece Length" | Value in range 1, 32000 |
| Piece Length Range | "Piece Length Range" | Value in range 0, 32000 | |
| Piece Rest | "Piece Gap" | Value in range 0, 10 | |
| Piece Rest Range | "Piece Gap Range" | Value in range 0, 20 | |
| Auto Restart? | "Piece Auto Restart" | Yes or No | |
| Meter | "Meter" | ||
| Piece - Tempo | Tempo | "Tempo" | Value in range 1, 400 |
| Range | "Tempo Range" | Value in range 0, 400 | |
| Change? | "Tempo Change" | Yes or No | |
| Envelope | "Tempo Envelope" | ||
| Envelope Range | "Tempo Envelope Range" | Value in range 0, 400 | |
| Piece - Rules | Scale Rules | "Scale Rules" | |
| Harmony Rules | "Harmony Rules" | ||
| Next Note Rules | "Next Note Rules" | ||
| Piece - Roots | Piece Roots | "Piece Roots" | |
| Piece - Scripts | Start | "Script_Start" | |
| Bar | "Script_Bar" | ||
| MIDI In CC | "Script_MidiIn_CC" | ||
| MIDI In Note | "Script_MidiIn_Note" | ||
| Stop | "Script_Stop" |
Object: "Voice"
| View | Displayed Name | Script Parameter Name | Notes |
|---|---|---|---|
| All voice views! | Mute | "Mute" | Yes or No |
| Voice - Basics | Patch | "Patch" | |
| Use Patch? | "Use Patch?" | Yes or No | |
| MIDI Channel | "MIDI Channel" | Value in range 0, 16 | |
| Voice Type | "Voice Type" | ||
| Pitch | "Pitch" | ||
| Pitch Range | "Pitch Range" | Value in range 11, 127 | |
| Phrase Length | "Phrase Length" | Value in range 1, 256; also in Voice - Ambient | |
| Phrase Length Range | "Phrase Length Range" | Value in range 0, 256; also in Voice - Ambient | |
| Phrase Gaps | "Phrase Gaps" | Value in range 0, 256; also in Voice - Ambient | |
| Phrase Gaps Range | "Phrase Gaps Range" | Value in range 0, 256; also in Voice - Ambient | |
| Note Rest % | "Phrase Note Rest %" | Value in range 0, 100; also in Voice - Ambient | |
| Voice - Ambient | Units | "Ambient Units" | |
| Duration | "Ambient Duration" | Value in range 0, 32000 | |
| Duration Range | "Ambient Duration Range" | Value in range 0, 32000 | |
| Gap Minimum | "Ambient Gap Min" | Value in range 0, 32000 | |
| Gap Range | "Ambient Gap Range" | Value in range 0, 32000 | |
| Voice - Following | Follow Voice | "Follow Named Voice" | |
| Percent | "Follow Percent" | Value in range 0, 100 | |
| Strategy | "Follow Strategy" | ||
| Units | "Follow Delay Unit" | ||
| Delay | "Follow Delay" | Value in range 0, 32000 | |
| Delay Range | "Follow Delay Range" | Value in range 0, 32000 | |
| Shift/Interval | "Follow Shift/Interval" | Value in range -60, +60 | |
| S/I Range | "Follow Shift/Interval Range" | Value in range -60, +60 | |
| Voice - Repeat | Voice | "Repeat Specific Voice" | |
| Percent | "Repeat Bars Percent" | Value in range 0, 100 | |
| Bars | "Repeat For Bars" | Value in range 1, 100 | |
| History Range | "Repeat Bar History Range" | Value in range 0, 100 | |
| History | "Repeat Bar History" | Value in range 1, 100 | |
| Bars Range | "Repeat For Bars Range" | Value in range 0, 100 | |
| Voice - Patterns | Patterns | "Patterns" | |
| Use Percent | "Patterns Use Percent" | Value in range 0, 100 | |
| Mutation Factor | "Mutation factor" | ||
| Bars Between | "Mutate No. Bars" | Value in range 0, 100 | |
| Bars Range | "Mutate No. Bars Range" | Value in range 0, 100 | |
| Mutate Rhythm? | "Mutation of Rhythm" | Yes or No | |
| Meter | "Meter" | ||
| Voice - Chords | Depth | "Chord Depth" | Value in range 1, 32 |
| Pitch Offset | "Chord Pitch Offset" | Value in range -60, +60 | |
| Delay | "Chord Delay" | Value in range 0, 32000 | |
| Depth % | "Chord Depth Percent" | Value in range 0, 100 | |
| Delay Unit | "Chord Delay Unit" | ||
| Velocity Factor | "Chord Velocity Factor" | Value in range -100, +100 | |
| Delay Range | "Chord Delay Range" | Value in range 0, 32000 | |
| Depth Range | "Chord Depth Range" | Value in range 0, 32 | |
| Strategy | "Chord Strategy" | ||
| Shift/Interval | "Chord Shift/Interval" | Value in range -60, +60 | |
| S/I Range | "Chord Shift/Interval Range" | Value in range -60, +60 | |
| Voice - Rules | Harmony Rules | "Harmony Rules" | |
| Next Note Rules | "Next Note Rules" | ||
| Rhythm Rules | "Rhythm Rules" | ||
| Scale Rules | "Scale Rules" | ||
| Harmonize? | "Harmonize?" | Yes or No | |
| Voice Root | "Voice Root" | ||
| Voice - Scripts | Start | "Script_Start" | |
| Bar | "Script_Bar" | ||
| Composed | "Script_Composed" | ||
| MIDI In CC | "Script_MidiIn_CC" | ||
| MIDI In Note | "Script_MidiIn_Note" | ||
| Stop | "Script_Stop" | ||
| Voice - Notes | Copyright | "Copyright" | |
| Notes | "Notes" | ||
| Voice - Controllers | Damper/Hold (64) | "Damper/Hold (64)" | Value in range -1, 127 |
| Harmonic Content (71) | "Harmonic Content (71)" | Value in range -1, 127 | |
| Reverb (91) | "Reverb (91)" | Value in range -1, 127 | |
| Chorus (93) | "Chorus (93)" | Value in range -1, 127 | |
| Damper Release | "Damper Release" | Yes or No | |
| Portamento (84) | "Portamento (65)" | Value in range -1, 127 | |
| MIDI Channel Sharing | "MIDI Channel Reallocation" | Yes or No | |
| Voice - Micro Controller 1 | MIDI CC | "User Controller 1 Midi Command" | |
| Mode | "User Controller 1 Mode" | ||
| Minimum | "User Controller 1 Minimum" | Value in range 0, 127 | |
| Range | "User Controller 1 Range" | Value in range 0, 127 | |
| Change | "User Controller 1 Change" | Value in range 0, 127 | |
| Change Range | "User Controller 1 Change Range" | Value in range 0, 127 | |
| Update | "User Controller 1 Update" | Value in range 0, 10000 | |
| Update Range | "User Controller 1 Update Range" | Value in range 0, 10000 | |
| Update Units | "User Controller 1 Update Unit" | ||
| Beat Cycle Length | "User Controller 1 Beat Cycle Length" | Value in range 0, 32000 | |
| Phase Shift% | "User Controller 1 Phase Shift" | Value in range 0, 100 | |
| Voice - Micro Controller 2 | MIDI CC | "User Controller 2 Midi Command" | |
| Mode | "User Controller 2 Mode" | ||
| Minimum | "User Controller 2 Minimum" | Value in range 0, 127 | |
| Range | "User Controller 2 Range" | Value in range 0, 127 | |
| Change | "User Controller 2 Change" | Value in range 0, 127 | |
| Change Range | "User Controller 2 Change Range" | Value in range 0, 127 | |
| Update | "User Controller 2 Update" | Value in range 0, 10000 | |
| Update Range | "User Controller 2 Update Range" | Value in range 0, 10000 | |
| Beat Cycle Length | "User Controller 2 Beat Cycle Length" | Value in range 0, 32000 | |
| Update Units | "User Controller 2 Update Unit" | ||
| Phase Shift% | "User Controller 2 Phase Shift" | Value in range 0, 100 | |
| Voice - Micro Note Delay | Delay Range | "Micro Note Delay Range" | Value in range 0, 1000 |
| Delay Change | "Micro Note Delay Change" | Value in range 0, 1000 | |
| Delay Offset | "Micro Note Delay Offset" | Value in range -1000, +1000 | |
| Voice - Micro Pitch | Bend Sensitivity | "Pitch Bend Sensitivity" | Value in range 0, 24 |
| Pitch Bend Offset | "Pitch Bend Offset" | Value in range -8192, +8191 | |
| Pitch Range | "Micro Pitch Range" | Value in range 0, 8191 | |
| Pitch Change | "Micro Pitch Change" | Value in range 0, 1000 | |
| Pitch Update | "Micro Pitch Update" | Value in range 0, 10000 | |
| Update Range | "Micro Pitch Update Range" | Value in range 0, 10000 | |
| Voice - Micro Pitch | Range | "Micro Volume Range" | Value in range 0, 127 |
| Change | "Micro Volume Change" | Value in range 0, 127 | |
| Update | "Micro Volume Update" | Value in range 0, 1000 | |
| Update Range | "Micro Volume Update Range" | Value in range 0, 10000 | |
| Voice - Note to MIDI CC Mapping | CC for Note On? | "MIDI CC instead of Note?" | Yes or No |
| Note On CC | "MIDI CC Note On Value" | ||
| CC for Velocity? | "MIDI CC for Note On Velocity?" | Yes or No | |
| Velocity CC | "MIDI CC Note On Velocity" | ||
| CC for Off? | "MIDI CC for Note Off?" | Yes or No | |
| Note Off CC | "MIDI CC Note Off Value" | ||
| Voice - User Envelope 1 (Volume) | MIDI CC | "User Envelope 1 MIDI CC" | |
| Enabled? | "User Envelope 1 Enabled" | Yes or No | |
| Envelope | "Volume" | ||
| Voice - User Envelope 2 (Pan) | MIDI CC | "User Envelope 2 MIDI CC" | |
| Enabled? | "User Envelope 2 Enabled" | Yes or No | |
| Envelope | "Pan (10)" | ||
| Voice - Envelope - Velocity | Velocity | "Velocity" | |
| Voice - Envelope - Velocity Range | Velocity Range | "Velocity Range" | |
| Voice - Envelope - Velocity Change | Velocity Change | "Velocity Change" | |
| Voice - Envelope - Velocity Change Range | Velocity Change Range | "Velocity Change Range" |
