Posts by Andreas


    How to do it right?


    Set Root DeviceConfigurations.DMXProtocols.sACN Property "Interface" x.y

    where x is the index of the actual Interface e.g 2 for

    List Interface 2

    and y is the index of the NetworkIP of the interface e.g. 1 for

    List Interface 2.1

    as plugin:

    return function()
      local pname = GetVar(UserVars(),'pagename') or error('uservar $pagename not found')
      local page = DataPool().Pages[pname] or error('page '..pname..' not found')
      SetVar(UserVars(),'pageindex', page:Index())

    as commandline (without error detection):

    Lua "SetVar(UserVars(),'pageindex', DataPool().Pages[GetVar(UserVars(),'pagename')]:Index())"

    maybe this could work for you:

    1. paste the following into commandline to copy the Lee gels into a new custom gelpool using gel-key as numeric index

    Lua "local gp = ShowData().GelPools local mylee = gp.LeeNumeric or gp:Append() mylee.Name = 'LeeNumeric' mylee:Resize(1000) for _, gel in ipairs(gp.Lee:Children()) do mylee:Create(tonumber(gel.Key)):Copy(gel) end"

    2. use the custom gelpool LeeNumeric instead of Lee

    conceptually there is no such thing as "Current View".

    Storing a View copies the content of the Screen to the View.

    Calling a View copies the content of the View to the Screen

    Changing or deleting either the View or the Screen will not alter the other, there is no references or dependencies between the two.

    creating UI dialogs from scratch is quite complex, read this thread thoroughly:


    for your specific scenario, this approach could do the job:

    Timer(FindNextFocus, 0.1, 1)

    insert into your code right before calling the MessageBox function

    call plugin, select 'Help', select 'Create Example', edit macro 'Mule Example' to learn.

    there are several issues with your macro:

    1. you use the note field, instead of name field, as Ryan pointed out

    2. you assign variables as "text", but expect them to evaluate numerically

    3. you compare two static variables, addcue and addcues, while you calculation is done on a third variable cuemath, not used in the comparison

    4. you try to loop by recalling the macro in gma2 syntax, rather than using the Mule goto function

    doesn't matter if you already use select(3,...) you can use select multiple times, or rename my code to your varname for select3

    the first argument to the select function defines the starting position for the arguments that follows

    local forename, surname = select(2, 'Mr.', 'John', 'Doe', 'London', 'UK' )

    local city = select(4, 'Mr.', 'John', 'Doe', 'London', 'UK' )

    local name1, name2, town = select(2, 'Mr.', 'John', 'Doe', 'London', 'UK' )

    CueFade is internally two properties, CueInFade and CueOutFade, so it is not gettable as one raw value

    if you actually want to get the combined textual representation of both in/out fade as seen in sequence sheet with "Condensed timing":

    local part = SelectedSequence():CurrentChild()[1]
    local mystring = part:Get('CueFade', Enums.Roles.Display)

    assuming you want numeric values, you should rather get the property CueInFade and divide by 256^3, as times are internally stored as 24bit fractions of a second

    local seconds = part.CueInFade/256^3

    the concept of the special buttontypes like swipebutton, propertycontrol etc is that these are automatically populated by the property-values of the assigned object/property, so that the UI doesn't have to be reprogrammed if the property-values change or are expanded.

    if you want a non-object/property related button that opens a custom popup-list, you should make just that:

    here is one way to do it:

    1) Anyone got an idea how to solve this?

    rewrite the script to utilize v5.3+ native bitwise operators instead of relying on any ancient bit-library or replacement thereof.
    rewrite the crc32 function to utilize a precalculated byte-level lookup-table instead of cycling thru every single bit when calculating checksums

    2) In general, how do you feel about having a plugin include a pre-compiled linux binary that will be "installed" to the filesystem.

    not my cup of tea

    to get the expected behavior, you need to include your Red preset as "Values" in the recipe, and remove it from the regularly stored cuedata

    a recipe will automatically remove cooked data and merge the new result only if the recipe owns the attribute.
    in your scenario, the cue and not the recipe owns the attribute and recipe will only merge, not remove anything..