Noatikl User Guide


Scripting: Reference

< back | next >

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"  

See Also

© 2008 Intermorphic Ltd. All rights reserved.