Table of Contents
Currently to do
This is just a scratchpad of what to do next in this wiki - feel free to register and contribute.
Missing articles
To Do
- elaborate on wishlist
- Write a little howto on the namespace structure in Ai
- Ai templates
- handle notation: chaseHandleUN, paletteHandleUN, cueHandleUN, playbackHandleUN, masterHandleID, trackHandleID, groupHandleUN, see also http://forum.avolites.com/viewtopic.php?f=20&t=6196&p=22250#p22250
- list more FixtureControlIDs (FixtureControlId), e.g. Shutter or Prism. They are in the show only if such a fixture is patched
- Gregory on casts inside code blocks and custom variables: gregory_codeblocks_cast.pdf
- Gregory on filters/casts: 20211222_gregory_filters.pdf
complete articles
see above
Identifiers
See below for the planned structure of types, object types, identifiers
- Elaborate on identifiers.
- Examples
- Groups
MaskIds
MenuItem
not yet possible
- access Capture cameras, see http://forum.avolites.com/viewtopic.php?f=20&t=5940
all the tbd's
questions
- how to display multiline messages in Show a message prompt
- what happens in Playback - Fire/Release Playbacks from Usernumber with multiple sequential steps, with release time - do they release simultaneously, or consecutively?
debugging macros
- empty if hive, see Control Structures
sACN triggers
- trigger a master (e.g. speed) in order to fade it over time
- trigger macros on single cues
- invert something (but why…)
- virtual Capture multipatch
- size master?
WebAPI
- Structure/sections
- example reset: reset.zip - release playbacks groups and masters for a range of consoles
- Olie's templates: https://github.com/owaits/avolites-webcomponents
- elaborate on webassembly; Reaper Reader etc.
- WebAPI tied to UI on different port: api_ui_port.pdf
- creating palettes and set legend: webapi_palette.txt
- Gordon Clarke controlling Cuelists (Messenger 16.09.21)
http://localhost:4431/titan/script/2/Menu/InjectInput?type=OnButtonDown&id=GoBack&group=NoGroup&index=0 http://localhost:4431/titan/script/2/Macros/Run?macroId=Avolites.Macros.Go http://localhost:4430/titan/script/2/Macros/Run?macroId=Avolites.Macros.GoBack http://localhost:4430/titan/script/2/CueLists/Play?handle_userNumber=6 http://localhost:4430/titan/script/2/CueLists/GoBack?handle_userNumber=6 http://localhost:4431/titan/script/2/Menu/InjectInput?type=OnButtonDown&id=Go&group=NoGroup&index=0
- Gregory (28.02.24): set User Numer, incl. casting and syntax: 20240228_gregory_webapi_setusernumber.pdf
- Gregory (15.04.24): set property, with more casting: webapi_currentpalette.pdf
- get attribute value: api_getvalue.txt
- create new palette (with explanation about 4430 and 4431): http://forum.avolites.com/viewtopic.php?f=21&p=24858, see apicreatenewpalette.txt
ASCII
MD (Mark Daniel's) Engineering's ASCII importer
external control
- external control, example of rtpMidi: https://www.facebook.com/groups/Avolites/permalink/1784457491686477/
- vVIMTC plugin for Reaper, see AdB, https://forum.cockos.com/showthread.php?t=43606, vvimtc_generator.txt
this is supposedly also possible without a timecode track - need to call ClearSelectionHighlights when moving, see gregory_move_clearhighlights.pdf
examples
- check IDs and filenames of current examples
- handle range, emails 30.08./03.09., also link to http://forum.avolites.com/viewtopic.php?f=20&t=5848&p=21193
- fire macros by triggers (sACN console to itself), see http://forum.avolites.com/viewtopic.php?f=20&t=5573#p21114
- write some words regarding saving patches (in the ai:specifics section)
- Sammlung, siehe FB Florian Engelmohr 29.01.2019: checkgroupexists.xml
- FB Florian Engelmohr, store palette: 1test2.xml
- check if handle is already in use, with casting: http://forum.avolites.com/viewtopic.php?f=20&t=5997#p21633
- Macros Robin Lotze, email 07.03.19
- converters, see http://forum.avolites.com/viewtopic.php?f=20&t=5962 (Math.EqualityConverter, Math.EnumAsStringEqualityConverter
- CreateShape, see slack/Flo, 08.07.19
- select multiple fixtures with Selection.Context.Programmer.SelectFixtures(“Fixtures”, {1,2,3}), see http://forum.avolites.com/viewtopic.php?f=20&t=6420
- is SetLevel limited to already fired playbacks like Fraser thinks? https://www.facebook.com/groups/1811437589141428/permalink/2695092050775973/?comment_id=2695129944105517&reply_comment_id=2695143527437492
- flash Pb and Groups, see email Andreas Buhr 08.07.20
- MIDI feedback, see http://forum.avolites.com/viewtopic.php?f=3&p=22925#p22925
Forum done until 01.03.19
setting timecode via WebAPI doesn't need a TimecodeTime object:
http://localhost:4430/titan/script/2/Timecode/TimecodeOne/SetStartTime?time=05:04:03:02
see https://www.facebook.com/groups/1811437589141428/posts/3157429167875590/
Timecode.TimecodeOne.SetStartTime and TimecodeTime object, see http://forum.avolites.com/viewtopic.php?f=20&t=6298
(Gregory, 27.08.2018)
Unfortunately no I don’t think there is any way to tell for sure. However generally older parts of the software such as Handles and Palettes will require function calls whereas newer or rewritten code such as Edit Times, Playback Options, Timecode and Capture settings will normally respond directly to the property changes. This is mainly because the latter was not always possible and we don’t generally rewrite working code unless there is a need to as this runs the risk of introducing bugs.
is there a way to tell whether setting a property is enough (like in ActionScript.SetProperty(“Playbacks.Editor.Times.PlaybackReleaseTime”, time:0) ) or both must be done (property set AND function applied, like with lockState)?
Gregory, Email 11.12.19 re. new variables: automatic definition of variables: gregory_variables.pdf
Toggle Trigger Mappings in v12, see https://www.facebook.com/groups/Avolites/permalink/1766567636808796/ and http://forum.avolites.com/viewtopic.php?f=3&t=6337, and toggletriggermappings.xml
However this start/end thing prevents macros to load in versions pre 14
Example for version checking, syntax of nested quotes etc.
<macro name="Set PB 903 legend" id="Macros.SetPB903Legend"> <description></description> <sequence> <step>Handles.SetSourceHandleFromHandle("playbackHandleUN=903")</step> <step condition="Math.String.StartsWith(System.SoftwareVersion, '13')">{ ActionScript.SetProperty("Handles.PendingLegend", "This is v13"); Handles.SetLegend(); Handles.ClearSelection(); }</step> </sequence> </macro>
Example for reversing, offsetting and restarting shapes (Matias Muccillo), see https://www.facebook.com/groups/Avolites/permalink/1799612296837663/
Elaborate on trigger software usage on Software List, e.g. Show Cockpit from https://www.facebook.com/groups/Avolites/?post_id=1830168723782020&comment_id=1830316103767282
matias Mucillos setup macro: mm_store_playback_test.xml
new way of writing conditions, use of variable, cast doesn't work inside clock - see Gregory's mail of 21.04.2021 and setfadein.zip (this is a further development from Playback - Set fade-in time
set halo colour, see Gregory's email 07.01.19:
<sequence> <step>Handles.SetSourceHandleFromHandle("chaseHandleUN=22")</step> <step>ActionScript.SetProperty("Handles.PendingHalo", colour:"#ffff0000")</step> <step>Handles.SetHalo()</step> <step>Handles.ClearSelection()</step> </sequence>
link macro to cuelist cue, Sebastiaan Groen (Messenger 02.06.21)
<sequence> <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"Location=Playbacks,1,1")</step> <step>Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"Location=Playbacks,1,1", 1)</step> <step>Playbacks.Editor.Macros.AddLinkFromId("Avolites.Macros.OpenWorkspaceWindow")</step> <!--example Macro--> </sequence>
additionally add/remove macros as per Roger Piqué (messenger 14.04.22): roger_addmacro.xml
selection by pattern which is always done through RunCommand, see Quick-Create groups additionally Gregory's comment, email 10.06.21:
It won’t make much difference but in principle you could select the group and set the pattern in one command e.g. Command.RunCommand(“GROUP 1 PATTERN 1.1”). The function used when holding down a group is slightly different Command.RunGroupCommand(Group.CurrentGroupUserNumber, “PATTERN 1.1”) which ends up running the same command string as above but changes an option for how the group is toggled. From what I can tell the difference is that RunGroupCommand will deselect fixtures it they are already selected but the normal command will always add to the select and never remove. Even though the factory macro sets the Selection.Context.Global.RepeatPattern property it does not look like the software normally does this and will therefore leave it as the user has last set it.
select handle to set opions: select_handle_for_setting_options.pdf
all user settings: missing_settings.xml, settings_neu.xml
set timeline cursor position:
ActionScript.SetProperty("Editor.Timelines.ContextTimeline.CursorPosition", Timecode.AsObservable(Timecode.MakeTimecodeTime(1, 00, 00, 00, false, 100)))
(messenger Roger Pique 06.04.22)
Gregory Haynes on time objects and timeline functions: gregory_timeline.pdf
first timeline examples:
<?xml version="1.0" encoding="utf-8"?> <avolites.macros> <!-- play/pause by usernumber 1 --> <macro id="Avolites.Macros.Timeline1.Play" name="Play Timeline 1"> <sequence> <step>Timelines.PlayTimeline(userNumber:1)</step> </sequence> </macro> <macro id="Avolites.Macros.Timeline1.Pause" name="Pause Timeline 1"> <sequence> <step>Timelines.PauseTimeline(userNumber:1)</step> </sequence> </macro> <!-- play/pause by location - playbacks page 1 slot 1 --> <macro id="Avolites.Macros.TimelinePB1.1.Play" name="Play Timeline PB 1.1"> <sequence> <step>Timelines.PlayTimeline("Location=Playbacks,1,1")</step> </sequence> </macro> <macro id="Avolites.Macros.TimelinePB1.1.Pause" name="Pause Timeline PB 1.1"> <sequence> <step>Timelines.PauseTimeline("Location=Playbacks,1,1")</step> </sequence> </macro> </avolites.macros>
Gregory (21.07.22): Off Palette Groups: offpalettegroup.xml
Gregory (15.08.22): no numbers in property names gregory_no_numbers_in_property_names.pdf
Gregory (13.01.23): invert selected fixtures gregory_toggleinvert.pdf
http://forum.avolites.com/viewtopic.php?f=20&p=24490:
I didn't find a way to retrieve the usernumber of the current layout. But if you can live with using the legends (Layout 1, Layout 2 etc. - or you change the coverterParameter accordingly) then this would work:
<macro id="Avolites.Macros.SelectLayout_2" name="Select layout UN 2"> <active binding="{propertyLink id='Editor.Layouts.ContextLayout.Legend' converter='Math.EqualityConverter' converterParameter='Layout 2'}"/> <sequence> <step>Editor.Layouts.SetContextLayoutFromUserNumber(2)</step> </sequence> </macro>
timeline macros, see timelinemacros.xml (14.02.24)
20240407
from facebook: create cuelist and write timecode
- createCuelistWithTc.xml
<?xml version="1.0" encoding="utf-8"?> <!-- see https://www.facebook.com/groups/Avolites/posts/3064252807040266/ --> <avolites.macros> <macro id="UserMacro.CreateCueList4"> <name>A14Create Cuelist</name> <sequence> <step>Playbacks.CueList.CreateCueList("Playbacks", 0)</step> <step>Playbacks.Select.EditHandle("Location=Playbacks,1,0")</step> <step>Handles.SetSourceHandle("Playbacks", 0)</step> <step>Playbacks.Timecode.ToggleEnabled.Handle(Handles.SourceHandle)</step> <step>Handles.SetSourceHandleFromHandle(null)</step> <step>Playbacks.AppendOrInsertPlaybackCue(Playbacks.PlaybackEdit.Handle,1)</step> <step>Playbacks.SetCueLegend(Playbacks.PlaybackEdit.Handle,1, "Song Start")</step> <!-- Fails <step>ActionScript.SetProperty("Playbacks.Editor.Timecode.CueTimecodeDisabled",Disabled)</step> --> <step>Timecode.SetCueTimecodeWithCueNumber( Playbacks.PlaybackEdit.Handle,1.0,Timecode.MakeTimecodeTime(1, 00, 00, 00, false, 100) )</step> <step>Playbacks.PlaybackEdit.Exit()</step> </sequence> </macro> <!-- added set timecode source --> <!-- explanation: (1) In order to set a playback's options you still need to have it set as SourceHandle, hence I commented the line where you nullify this (you may want to do this later...) (2) In order to set a playback's options you need to call FilterHandleOptions() (3) My favourite errors in the API documentation: this is an Enum, and valid options are Timecode1Id, Timecode2Id etc., and to set such enums you need to apply some doublequotes: the correct line reads <step>ActionScript.SetProperty.Enum("HandleOptions.CueLists.TimecodeSource","Timecode3Id")</step> --> <macro id="UserMacro.CreateCueListSetSource"> <name>Create Cuelist and Set TC Source</name> <sequence> <step>Playbacks.CueList.CreateCueList("Playbacks", 0)</step> <step>Playbacks.Select.EditHandle("Location=Playbacks,1,0")</step> <step>Handles.SetSourceHandle("Playbacks", 0)</step> <step>Playbacks.Timecode.ToggleEnabled.Handle(Handles.SourceHandle)</step> <!-- <step>Handles.SetSourceHandleFromHandle(null)</step> --> <step>Playbacks.AppendOrInsertPlaybackCue(Playbacks.PlaybackEdit.Handle,1)</step> <step>Playbacks.SetCueLegend(Playbacks.PlaybackEdit.Handle,1, "Song Start")</step> <!-- Fails <step>ActionScript.SetProperty("Playbacks.Editor.Timecode.CueTimecodeDisabled",Disabled)</step> --> <step>Timecode.SetCueTimecodeWithCueNumber( Playbacks.PlaybackEdit.Handle,1.0,Timecode.MakeTimecodeTime(1, 00, 00, 20, false, 100) )</step> <step>Handles.FilterHandleOptions()</step> <step>ActionScript.SetProperty.Enum("HandleOptions.CueLists.TimecodeSource","Timecode3Id")</step> <step>Playbacks.PlaybackEdit.Exit()</step> </sequence> </macro> </avolites.macros>
A similar question answered by Gregory, with further details: createcuelist.pdf
20240707
from FB, https://www.facebook.com/groups/Avolites/posts/3137723979693148/
Macro to set a playback's level and move the fader.
See also GH's email (SB private).
- enableCue.xml
<?xml version="1.0" encoding="utf-8"?> <!-- enable/disable a cuelists cue --> <!-- see http://forum.avolites.com/viewtopic.php?f=20&t=7217&p=24856 --> <avolites.macros> <macro id="UserMacro.testFirePB16.Page"> <name>_Test FPB 16 w. Page</name> <sequence> <step pause="0.05">Handles.Playbacks.ChangePage(99)</step> <step pause="0.05">Playbacks.FirePlaybackAtLevel("Location=Playbacks,1,1", level:0.6, true)</step> <step pause="0.05">Handles.Playbacks.ChangePage(0)</step> </sequence> </macro> </avolites.macros>
20240709
from forum: enable/disable a cuelist's cue see http://forum.avolites.com/viewtopic.php?f=20&t=7217&p=24856
- enableCue.xml
<?xml version="1.0" encoding="utf-8"?> <!-- enable/disable a cuelists cue --> <!-- see http://forum.avolites.com/viewtopic.php?f=20&t=7217&p=24856 --> <avolites.macros> <macro name="__PB 100 enable cue 10" id="Wiki.Macros.PB100.Cue10On"> <sequence> <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"playbackHandleUN=100")</step> <step>Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"playbackHandleUN=100", 10)</step> <step>ActionScript.SetProperty.Boolean("Playbacks.Editor.Times.Disabled", false)</step> </sequence> </macro> <macro name="__PB 100 disable cue 10" id="Wiki.Macros.PB100.Cue10Off"> <sequence> <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"playbackHandleUN=100")</step> <step>Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"playbackHandleUN=100", 10)</step> <step>ActionScript.SetProperty.Boolean("Playbacks.Editor.Times.Disabled", true)</step> </sequence> </macro> </avolites.macros>
Update SetCurrentShapesDirection for v17, see allshapesdirection.xml
Titan Tricks
- convert chase to list by syntax, see https://www.facebook.com/groups/AvolitesTitanOne/permalink/1593613030774823/
- use macro on single cue (with sACN triggers)
- create a group master on old software (with negative shape)
- create a size master on v9 (clock shape triggered with sACN and inverted curve)
- fade fx size/rate over time (in cue list, with a master being triggered by a virtual dimmer channel)
- make a pixel effect track (cuelist cue fires macro which toggles an external playback on/off)
- special cuelist (fader fires cue 1, go toggles between 2 and 3), see https://www.facebook.com/groups/260735644292354/permalink/732708060428441
- use clock as timer/stop watch, see https://www.avolites.de/wiki/macros:example:timecodestartstop and https://www.facebook.com/groups/Avolites/permalink/1444431649022398/
- Titan Ports, see titan_ports.xlsx
- set Fixture Library date to avoid Health Check:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Avolites\Titan\Libraries] "VersionDateTime"="2028-08-14 05:49:32"
- usage of task Scheduler to start other things automatically, see tnp_task_scheduler.zip
MIDI
- MSC specification: http://www.richmondsounddesign.com/docs/midi-show-control-specification.pdf
- MMC, siehe Macros Olie (Email 03./05.12.19)
- MTC über Netzwerk?
- MIDI Output, Loopback: https://www.facebook.com/groups/1811437589141428/permalink/2503806193237894/
AI knowledge base
- d4mance/BC 2014
- d4mance/BC 2016
- patches from forum
- pictures on welcome pages/section headers
- how to make use of a patch on the performance page (Patch IO, texture port), and how to set its thumbnail
- Pip and Multi Screen projects
- Multiviewer (TH):
- AI OUTPUTS
- RenderToTexture
- Sample Texture Region
- Clear
- Render Merge
- output/Window (off/on by Artnet)
- clock/countdown (SB/Arran)
- controlling from Q-Sys via UDP, text scroller (project A. Keil June 2020, with help from TH and CA)
Ai tricks and pitfalls
- renumbering fixtures
- no audio files on the performance page!
- how to enable tap tempo (tap widget, system settings, Beat settings per tile)
- antialiasing (double resolution, see movingscreens/email)
- what is saved where
- how to save and use clip collections
- how to create a project thumbnail
- wrong codec may even disturb playmodes
- MPEG Streamclip for transcoding
- MIDI trigger on the performance page requires MIDI notes - ControlChange doesn't work here
Is there a wiki plugin to show a number of random pages from the namespace, e.g. in Ai/Examples?
Types/Identifiers Hierarchy
identifiers (essentially this is the most common ways to idetify particular items) Clear mask: Intensity=1, Positions=2, Colours=4, Gobos=8, Beam=16, Effect = 32, Special = 64, FX = 128, Time = 256 also see AcwRecordMask?!?
See http://api.avolites.com/11.0/Avolites.Acw.Titan.AcwRecordMask.html
Discussion threads
Set All Shapes Direction | 2024/10/23 23:12 | Sebastian Beutel | 1 Comment |
Change Pages with Timecode | 2023/10/16 17:20 | Sebastian Beutel | 2 Comments |
Inhibit selected fixtures dimmer | 2023/02/28 12:25 | Sebastian Beutel | 1 Comment |
Set a Handle's Halo | 2021/05/29 18:08 | Sebastian Beutel | 2 Comments |
Delete Workspace X | 2018/06/12 13:05 | Sebastian Beutel | 1 Comment |
Timecode - Toggle On/Off for particular playback | 2017/11/20 16:39 | Sebastian Beutel | 1 Comment |
Playback - Set Paging to Never Hold | 2017/11/20 15:52 | Sebastian Beutel | 1 Comment |
MIDI Note On/Off | 2017/10/15 09:19 | 1 Comment | |
Macro - Export Macro | 2017/10/15 08:52 | 1 Comment |