presets.mp4
Grandma3 lua plugin to store presets, based on info provided by fixture files
All object manipulations are done using commands, visible in the "Command Line History" screen.
works on v1.8.8.2
15-Jan-2023
storing presets was only possible for directly patched fixtures, now we added the possibility to store values from fixtures patched within a "grouping fixture". This is currently possible when the grouping fixture is not patched within another grouping fixtures.
18-Dec-2022
A "preview" checkbox is added, which if enabled will only put values in programmer, without storing them.
- A scrollbar, for when their is more to show than what your screen can handle
- Auto-matching between fixture info, and already existing presets
It is possible to not see a patched fixture, its attributes, or its values. This happens when these fixtures are not created according the MA3 fixture standards. Mostly accurs when fixturetypes have "User" defined as Source (instead of "GrandMA2" or "GrandMA3") in the "fixture types" overview. More info: Build Fixture Types
Just checking how motivated you can make us, to post more of our plugins.
- Copy the lua code from https://github.com/kevinhayen/fixture_to_presets/blob/main/fixture_to_presets.lua
- In the plugin pool, create a new plugin
- label this plugin as "fixture_to_presets", or another name without a space
- Open this plugin by editing, and click "Insert new ComponentLua"
- Click "Edit", which opens the LUA editor
- Paste your copied LUA code in this screen, and press "Save" on the top right
- execute "ReloadPlugins" in commandline
When running the plugin, the first screen shows all fixture types of patched fixtures. Subfixtures are shown in red.
When clicking one of those fixture types, a list of attributes are shown.
- The upper section of this plugin now shows 2 buttons, the left shows the clicked fixture (and mode)
- The other part of this plugin now lists all linked attributes. Each attribute button shows first the attribute name, having the featuregroup below it
When clicking an attribute, the right button in the upper section shows the clicked attribute, which in this example is "Dimmer".
The lower part shows possible values to be stored as a preset, indicating the name above and the value below
next to "Store Preset by clicking", we have ways to indicate in which preset the value will be stored
The 3 buttons are used to navigate over empty presets.
By pressing the middle button, you can enter a number manually. The first empty found preset number, started from the manually entered number, will be selected.
The Merge checkbox will show an inputbox to manually enter a preset number after pressing a value you want to be stored. This overrules the buttons on the left of it
The plugin is built in a way that makes navigating between fixtures and attributes very dynamic.
For example, when you selected "Zoom" in one fixture type
and you want to store "Zoom" values from another fixture type, then simply press the left upper button, indicating "(Click to change Fixture)", which brings you to the overview of the fixture types
Here you select the next fixture you want to store the "Zoom" values from, which brings you to the "Zoom" values of that selected fixture
to catch strange changes, for example, when beein in the "Pan" attribute of a movinghead, and changing to a ledpar fixture, which in most cases is not possible, then this messages will show up:
All actions of storing a preset are visible in the commandline history. The goal of this plugin is not to inject any grandma3 objects using LUA, but to execute commands, so you can clearly see all executed commands.
In this example, we have 4 fixtures patched from the same fixture group, having fixtureID 1, 2, 3 and 4. When pressing a value, the plugin will:
- verify and select all fixtures linked to this fixturegroup
- set the attribute value
- store to the defined preset number
- label the preset, as how that value is described in the fixture file
This is an added feature, currently not visible in screenshots above, or in the example movie.
A "Preview" checkbox is added, this is visible on the left side above, when you are in the screen for storing possible values.
Please don't be confused, this "Preview" checkbox is not the same as the MA3 "Preview" keyword, they both are different.
When the checkbox next to "Preview" is selected, values will not be stored, but only put in programmer. In this case, due to some reasons, you can first check the output of your fixtures in real life. To store the value, just uncheck the "Preview" checkbox and click the value button again.
For this example, I enabled the "Preview" checkbox, first clicked "Open", then "Red". The System Monitor shows:
- ClearAll to clear all programmer info
- Corresponding fixtures are selected
- Attribute values are set
Fixtures having at least CMY or RGB values, will not have all combinations of colors stored in their fixture file. In this case, most people create their macro's to create their color presets using the 3 parameters (C, M, Y) or (R, G, B). Well, this is now built into this plugin as well.
In the official MA3 attributes list, there is no "Color" attribute, so this name is used in this plugin when CMY or RGB channels are found in the selected fixture group.. which is shown in this example as the middle attribute button:
When clicking "Color", you get an overview of colors: You can create each color preset seperatly by clicking the color name, or you can create all colors at once by clicking "Create All Colors".
These values can be found in the LUA plugin file on top, so you can edit your own colors:
Next to CMY or RGB, GrandMA3 has other color attributes, defined for specific colors, starting in this overview from line 114 until line 123:
When deep diving the LUA code, you can find overrules for colors "Amber", "Lime", "Purple", "Pink", "Open", "Warm White", "Cold White" and "UV". Some fixtures have one or more of these colors as a seperate channel. When these channels are found in the selected fixture type, the RGB or CMY values will be set to zero for that color, while for that seperate color channel, the value will be set to full.
example: