Posts by Andreas


    Unfortunately the newly released v1.3.1.3 doesn't like Plugins which doesn't use a separate lua-file for the code.

    To my understanding you have the following options:

    - wait for a bugfix

    - use an earlier software version

    ,- create the .xml and .lua file with an external editor, then import into v1.3.1.3


    XML: myplugin.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <GMA3 DataVersion="">
    <ComponentLua FileName="myscript.lua" ContentType="Usercontent" />
    Code: myscript.lua
    function test()
     Echo("This is a test")
    return test

    For anyone who read this thread but don't want to dive deep into the commandline:

    The easiest way to automate the StepCreator is to use the StepRecipe Pool, which allows you to store and recall all settings of the StepCreator by a single poolbutton press.

    You are right that gma2 has a more refined behavior when updating partially overwritten playbacks.

    Until this is improved on the grandMA3 software, you can try to utilize the Priority option of the playbacks, to reduce this problem

    - for your example-scenario, by setting your "base" looks to a Low priority, (or your Red toggle to a High priority)

    On gma3 (within the commandline), the asterisks (*) always represents a wildcard character.

    Use the percentage-sign (%) instead, to indicate a scaling value.

    e.g. (Assuming Physical readout is chosen)

    Attribute "Pan" At % -100

    would be the gma3 equivalent to the gma2 syntax

    Attribute "Pan" At * -1

    I believe currently a workaround is needed to set a speedmaster to a specific bpm value via commandline.

    Assuming you have upgraded to the newly released v1.2, this could be a plausible solution:

    1: Paste the following into commandline or create a macro, and execute once

    Lua "for i=0,240 do SetVar(GlobalVars(),'bpm'..i,math.sqrt(i/240)*100) end"

    2: Use the following syntax whenever you need to set a bpm-value:

    Master 3.1 At $bpm95


    If you want to remove the variables that maps bpm to percentage values,

    paste the following into commandline or create a macro, and execute once

    Lua "for i=0,240 do DelVar(GlobalVars(),'bpm'..i) end"

    1. You need to create and address the macroline, if you want to set the property "command"

    2. Make sure that the final string sent to the commandline uses nested unescaped single and double quotes.

    e.g. Commandline:

    Store Macro 1.1 Property Command "Set Macro 5.1 Property Command 'Delete Macro 10'"

    e.g. Lua -> Commandline

    (using double square brackets as primary string delimiters [[...]] rather than escaping quotes, to preserve readability.

    Cmd([[Store Macro 1.1 Property Command "Set Macro 5.1 Property Command 'Delete Macro 10'"]])

    If you accidentally have created an infinite loop, you can use the keyword ReloadPlugins (same as on gma2) to reset the Lua engine.

    In grandMA3, executing commands (like Go+, Off etc) are passed to the pluginscript, and it is up to the script to handle how to react to those commands.

    You can import the plugin "Execute Example" to see how it works:

    CD Plugin

    Import Library "Execute Example.xml"

    CD Root

    then look at the system monitor window to see the example plugin react to the executing commands, e.g.

    Go+ Plugin "Execute Example"

    Off Plugin "Execute Example"

    your code works for me and prints 20 in the system monitor, - as long as I add the missing closing tag of the function definition ( " end " )

    make sure that you haven't destroyed the function setmetatable in another plugin or earlier in your code by redefining it via bad code e.g.


    setmetatable = {o,}

    instead of


    Is this how it's supposed to work? yes

    forcing assert only applies to actions that normally doesn't assert (e.g. Go+)

    for actions like Go- and Goto, this cue-property has no effect, as the assert is already forced by the action.

    hi hoss,

    you are right, setting a value above 0 seems to automatically enable the exectime master, I was not aware of that.

    Please try to add some small wait-times (0.033s) in your macrolines, to force the commands to be executed in different calculation cycles, maybe that would improve stability.

    Another option is to enable and set timed execution (in deciseconds) before passing the FaderMaster command to the sequence:

    On Master "Grand"."ExecTime"

    Master "Grand"."ExecTime" At 30

    FaderMaster Sequence 8 At 100

    Off Master "Grand"."ExecTime"

    Not sure I understand what you are trying to do, but maybe the plugin example below can get you going..

    return function()

    local mytable = {question = 'Not sure', answer = 42}

    local vars = GlobalVars()

    for key,value in pairs(mytable) do

    SetVar(vars, key, value)


    Cmd('GetGlobalVar *')


    CurrentExecPage() returns the current page as an object.

    Depending on what you want from the object, try e.g.

    local mypage = CurrentExecPage()