BECOME PART OF THE COMMUNITY - Sign up
here
-
unless you have already found your solution, here's how it could be done:
Workflow: copy this plugin to a new pool-slot and give it the name of the external lua-file you want to run.
Display Spoiler
local loadarguments = {...}
return function(...)
local callarguments = {...}
local drive2 = Root().Temp.DriveCollect[2]
if not drive2 or drive2.DriveType == 'OldVersion' then error('No USB-stick found') end
local path = GetPathOverrideFor('plugins', drive2.Path)
local pluginlabel = loadarguments[4]:Parent().Name
local luafile = path..'/'..pluginlabel..'.lua'
if not FileExists(luafile) then error('Could not find file '..luafile) end
local plugincode = loadfile(luafile)(table.unpack(loadarguments))
return plugincode(table.unpack(callarguments))
end
Display More
-
I believe that satisfies the raw lua part you suggested above
what I was trying to point out is that If you paste the two lua statements below into commandline, only the second will actually print something:
Lua "return function(); Printf('Testing the Testies file') ; end"
Lua "Printf('Testing the Testies file')"
the first statement returns a function definition, there is no mechanism that actually runs the function
same apply if your replace Lua with LuaFile and the quoted text with a filepath
as your testies.lua doesn't print anything. but merely defines a function that prints something, nothing will happen when passing its path to the LuaFile keyword.
-
Sure, the workaround is to put your macros or whatever youd like on said executors on, say, exec page 1. Then fix them so they always are present. However, the problem with that is 1. I then only effectively have 16 x-keys instead of 40 as I had on MA2 (though I'm NOT saying I want the desk to be exactly as MA2, so dont bother starting that discussion). 2. The executors are obviously not user specific, so if you and me where sharing the programming on a show, then we would have to agree on what stuff we would want to have on there.
While executors are shared, Executor fixation is user-specific. you can fix executors from one page, while another user can fix executors from another page.
To mimic several userkey pages, you can create several macros, that each fixes executors from different pages:
Macro Userkeys1
Fix Off Executor 191 Thru 198 + 291 Thru 298
Fix On Page "Userkeys1" Executor 191 Thru 198 + 291 Thru 298
Macro Userkeys2
Fix Off Executor 191 Thru 198 + 291 Thru 298
Fix On Page "Userkeys2" Executor 191 Thru 198 + 291 Thru 298
etc
-
regarding the original topic of this hijacked thread:
to allow requiring modules that reside under:
MALightingTechnology/gma3_library/datapools/plugins
- Does anyone see any potential issues with using LUA's require module, from this folder?
- Why doesn't MA3 already include this folder in the package.path ?
with the latest release v2.0, this is included..
-
the manual describes LuaFile as a commandline keyword, not as a Lua API function
LuaFile is just a variant of the commandline keyword Lua, to execute raw Lua:
Lua "Echo('Hello World!')"
LuaFile "c:/hello.lua"
Be aware of the difference of raw lua, and a lua plugin component definition:
hello.lua file content requirements for being executable with the LoadfFile commandline keyword:
Echo('Hello World!')
hello.lua file content requirements for being loadable as a plugin component
return function() Echo('Hello World!') end
-
to my understanding:
Recipe and playback speed controls the speed of an attributes phaser-steps
- a generator is not a phaser, it is dynamic step-value.
e.g.
Group 1 Full
Step 2 Zero
Step 3 Full
Step 4 Zero
Step 5 Full
Step 6 Zero
Step 7 Generator "RandomFlicker"
Step 8 Zero
Step 1 Thru 8 Transition 0 Measure 4
This creates a 4 beat phaser at the given playbackspeed, where the fixtures randomly flickers instead of flashing together, on every 4th beat.
Adjusting the playback speed, will change the BPM of the 4 beat phaser as expected, not the flickerspeed of the 4th beat (which is a property of the actual generator)
I am certain we will see further options to control generators in cues, presets and recipes in upcoming versions.
-
-
to my knowledge the originating drive of an imported object is not preserved anywhere.
if your imagefiles have unique names, just look for them via FileExists() in all available drives?
-
the previous example, provided last night before the original post was edited, was no better:
Neither is the statements in this post:
forum.malighting.com/forum/thread/?postID=23042#post23042
-
seems like you added (inserted) the WWdummy before the WW in the attributelist?
repeat the whole process, but create a new dummy at the end of the attributelist.
attributes/encoders cannot be rearranged/moved in current release v1.9
-
It is hard to recognize your issue when screenshot does not include all attributes, so guessing:
remove the relation between virtualdimmer and WWdummy. now your dummy is scaled twice by the dimmer, once directly by the virtual dimmer and secondly via the WW which also get scaled by the dimmer.
-
you need to look at the DMX sheet to see the actual result of Master/Follower relations
In your fixturesheet the value you see for the WWDummy will be fixed, it is only the DMX-output of the dummy that will follow the actaul WW,
-
- Open Phaser Editor in SheetView
- Select the destination steps along with the source step
- rightclick the transition-value of the source step
-> Calculator opens populated with its transition value - Press Please in calculator
--> source transition value is applied to all selected step (including the destination steps) - Repeat 3+4 for Width or other layers
-
I am getting attempt to call a nil value (global 'LuaFile'). But I know s_filePath is not nil.
It is not "s_filePath" that is the issue in this errormessage, it is "LuaFile" that is nil and doesn't exist.
where do you define the LuaFile function?
-
- create a new attribute ColorRGB_WWdummy, that is part of same activationgroup, feature etc as the other colorRGBs, but has no special (=colorpicker function)
- patch this attribute as DMX 9+10 with default at full
- under relations, create a multiply relation between ColorRGB_WW as master and ColorRGB_WWdummy as follower
-
I have seen your other thread on this topic and it is really hard to make any sense of your approach to solve your problem
Unless I have totally misunderstood the essence of your workflow-issue, try this small plugin:
Plugin "Create or update Plugins" (not tested on mac)
return function()
-- path to where you create and edit your lua files, relative to the normal pluginpath (..=folderup):
local mypath = '../../../../../Users/Public'
local name = TextInput('name of new plugin/luafile or press enter to reload existing plugins','')
if name == '' then
CmdIndirectWait('ReloadAllPlugins')
else
local plugin = DataPool().Plugins:Aquire()
plugin.Name = name
local component = plugin:Append()
component.FilePath = mypath
component.FileName = name..'.lua'
Echo('%s created with luafile "%s"', plugin:ToAddr(), component.FileName)
Echo('delete the FileName and FilePath references of the plugincomponent, when it is time to export the final/finished plugin as xml with luacode embedded')
end
end
Display More
-
I don't think this is possible from a user plugin
to my understanding, keyboard interaction is handled as events, not as states.
-
if os.date('%A') == 'Sunday' then
Printf('today is sunday and your OS is english')
else
Printf('today is not sunday or your OS is not english')
end
if os.date('%w') == '0' then
Printf('today is sunday')
end
-
Lua "Printf(os.date('today is %A which is %w days after Sunday'))"
-
As far as I know, the Lua canbus-emulator of gma2 is not documented, and can only be considered as an unclosed backdoor, not an actual/intended public feature.
With that in mind, I wouldn't hold my breath waiting for the same to appear in gma3.
----
Personally I would not expect gma2 action-buttons to reappear in gma3, if anything it would be more likely that the sequencepool and its elements gets more display and action/playback options,