~~NOCACHE~~ ====== Currently to do ====== This is just a scratchpad of what to do next in this wiki - feel free to register and contribute. ===== Missing articles ===== ~~ORPHANSWANTED:wanted~~ ===== To Do ===== * elaborate on [[macros:hidden:wishlist|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 ([[macros:identifier: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 ** [[macros:identifiers]] * Elaborate on identifiers. * Examples * Groups ==== MaskIds ==== see http://forum.avolites.com/viewtopic.php?f=20&t=5936#p21411 ==== MenuItem ==== see [[macros:example:offonattribute|]] ==== not yet possible ==== * access Capture cameras, see http://forum.avolites.com/viewtopic.php?f=20&t=5940 ==== all the tbd's ===== * [[macros:deploying#altering_macros_when_used_in_a_show]] ==== questions ==== * how to display multiline messages in [[macros:example:shomessage]] * what happens in [[:macros:example:firereleaseplayback]] with multiple sequential steps, with release time - do they release simultaneously, or consecutively? ==== debugging macros ==== * empty if hive, see [[macros: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 * https://bitbucket.org/mdengineering/titan-usittascii/src/master/ * https://github.com/owaits/avolites-patchImport * 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 * http://forum.avolites.com/viewtopic.php?f=3&t=5171&p=18745#p18745 * https://bitbucket.org/mdengineering/titan-usittascii ==== 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. Handles.SetSourceHandleFromHandle("playbackHandleUN=903") { ActionScript.SetProperty("Handles.PendingLegend", "This is v13"); Handles.SetLegend(); Handles.ClearSelection(); } Example for reversing, offsetting and restarting shapes (Matias Muccillo), see https://www.facebook.com/groups/Avolites/permalink/1799612296837663/ {{ ::mm-symmetrical-shape.xml |}} Elaborate on trigger software usage on [[external: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 [[macros:example:setplaybackfadeintime|]] set halo colour, see Gregory's email 07.01.19: Handles.SetSourceHandleFromHandle("chaseHandleUN=22") ActionScript.SetProperty("Handles.PendingHalo", colour:"#ffff0000") Handles.SetHalo() Handles.ClearSelection() link macro to cuelist cue, Sebastiaan Groen (Messenger 02.06.21) ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"Location=Playbacks,1,1") Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"Location=Playbacks,1,1", 1) Playbacks.Editor.Macros.AddLinkFromId("Avolites.Macros.OpenWorkspaceWindow") 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 [[macros:example:quickcreategroups|]] 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: Timelines.PlayTimeline(userNumber:1) Timelines.PauseTimeline(userNumber:1) Timelines.PlayTimeline("Location=Playbacks,1,1") Timelines.PauseTimeline("Location=Playbacks,1,1") 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: Editor.Layouts.SetContextLayoutFromUserNumber(2) timeline macros, see {{ ::timelinemacros.xml |}} (14.02.24) ==== 20240407 ==== from facebook: create cuelist and write timecode A14Create Cuelist Playbacks.CueList.CreateCueList("Playbacks", 0) Playbacks.Select.EditHandle("Location=Playbacks,1,0") Handles.SetSourceHandle("Playbacks", 0) Playbacks.Timecode.ToggleEnabled.Handle(Handles.SourceHandle) Handles.SetSourceHandleFromHandle(null) Playbacks.AppendOrInsertPlaybackCue(Playbacks.PlaybackEdit.Handle,1) Playbacks.SetCueLegend(Playbacks.PlaybackEdit.Handle,1, "Song Start") Timecode.SetCueTimecodeWithCueNumber( Playbacks.PlaybackEdit.Handle,1.0,Timecode.MakeTimecodeTime(1, 00, 00, 00, false, 100) ) Playbacks.PlaybackEdit.Exit() Create Cuelist and Set TC Source Playbacks.CueList.CreateCueList("Playbacks", 0) Playbacks.Select.EditHandle("Location=Playbacks,1,0") Handles.SetSourceHandle("Playbacks", 0) Playbacks.Timecode.ToggleEnabled.Handle(Handles.SourceHandle) Playbacks.AppendOrInsertPlaybackCue(Playbacks.PlaybackEdit.Handle,1) Playbacks.SetCueLegend(Playbacks.PlaybackEdit.Handle,1, "Song Start") Timecode.SetCueTimecodeWithCueNumber( Playbacks.PlaybackEdit.Handle,1.0,Timecode.MakeTimecodeTime(1, 00, 00, 20, false, 100) ) Handles.FilterHandleOptions() ActionScript.SetProperty.Enum("HandleOptions.CueLists.TimecodeSource","Timecode3Id") Playbacks.PlaybackEdit.Exit() 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). _Test FPB 16 w. Page Handles.Playbacks.ChangePage(99) Playbacks.FirePlaybackAtLevel("Location=Playbacks,1,1", level:0.6, true) Handles.Playbacks.ChangePage(0) ==== 20240709 ==== from forum: enable/disable a cuelist's cue see http://forum.avolites.com/viewtopic.php?f=20&t=7217&p=24856 ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"playbackHandleUN=100") Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"playbackHandleUN=100", 10) ActionScript.SetProperty.Boolean("Playbacks.Editor.Times.Disabled", false) ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", handle:"playbackHandleUN=100") Playbacks.Editor.CueSelection.SelectCueByNumber(handle:"playbackHandleUN=100", 10) ActionScript.SetProperty.Boolean("Playbacks.Editor.Times.Disabled", true) 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, https://www.facebook.com/groups/Avolites/permalink/1713549732110587/?comment_id=1714066365392257 * 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 ==== {{threads>*&skipempty}}