User Tools

Site Tools


todo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
todo [2019/12/08 22:15] – [MIDI] icke_siegentodo [2025/03/05 07:41] (current) – [20240709] icke_siegen
Line 6: Line 6:
 ===== Missing articles ===== ===== Missing articles =====
  
- ~~ORPHANSWANTED:wanted~~+ ~~ORPHANSWANTED:wanted!tag~~
 ===== To Do ===== ===== To Do =====
  
-  * elaborate on wishlist+  * elaborate on [[macros:hidden:wishlist|wishlist]]
   * Write a little howto on the namespace structure in Ai   * Write a little howto on the namespace structure in Ai
   * Ai templates   * 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   * 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   * 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 |}}
  
  
Line 63: Line 65:
   * Structure/sections   * Structure/sections
   * example reset: {{ :reset.zip |}} - release playbacks groups and masters for a range of consoles   * 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 |}}
 +  * select group: http://localhost:4431/titan/script/2/Group/RecallGroup?handle_userNumber=1
 +  * create shape: http://localhost:4431/titan/script/2/Editor/Shapes/CreateShape?shapeId=1&runOnCells=0&absolute=true
 +  * set shape size: POST http://localhost:4431/titan/set/2/Editor/Shapes/Size (use an extension like RestMan and put 0.05 in the body as raw data, to set the shape size to 5%). See {{::api_post.png?200|}}
 +
 +  
 +==== 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 ==== ==== examples ====
  
Line 76: Line 111:
   * converters, see http://forum.avolites.com/viewtopic.php?f=20&t=5962 (Math.EqualityConverter, Math.EnumAsStringEqualityConverter   * converters, see http://forum.avolites.com/viewtopic.php?f=20&t=5962 (Math.EqualityConverter, Math.EnumAsStringEqualityConverter
   * CreateShape, see slack/Flo, 08.07.19   * 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 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 Timecode.TimecodeOne.SetStartTime and TimecodeTime object, see http://forum.avolites.com/viewtopic.php?f=20&t=6298
Line 86: Line 132:
 > >
 >>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)? >>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.
 +
 +<code xml>
 +
 +  <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>
 +
 +</code>
 +
 +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:
 +
 +  <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 [[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:
 +
 +<code xml>
 +<?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>
 +</code>
 +
 +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:
 +
 +<code xml>
 +<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>
 +</code>
 +
 +timeline macros, see {{ ::timelinemacros.xml |}} (14.02.24)
 +==== 20240407 ====
 +
 +from facebook: create cuelist and write timecode
 +
 +<code xml 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>
 +</code>
 +
 +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).
 +
 +<code xml 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>
 +</code>
 +
 +==== 20240709 ====
 +
 +from forum: enable/disable a cuelist's cue
 +see http://forum.avolites.com/viewtopic.php?f=20&t=7217&p=24856
 +
 +<code xml 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>
 +</code>
 +
 +Update SetCurrentShapesDirection for v17, see {{ ::allshapesdirection.xml |}}
 +
 +Nudge Timecode, Daniel Dai/Messenger/20250226
 +
 +{{::timecode_offset.jpeg?600|}}
  
 ==== Titan Tricks ==== ==== Titan Tricks ====
Line 97: Line 398:
   * special cuelist (fader fires cue 1, go toggles between 2 and 3), see https://www.facebook.com/groups/260735644292354/permalink/732708060428441   * 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/   * 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: 
 +
 +<code libraryDate.reg>
 +
 +Windows Registry Editor Version 5.00
 +
 +[HKEY_LOCAL_MACHINE\SOFTWARE\Avolites\Titan\Libraries]
 +"VersionDateTime"="2028-08-14 05:49:32"
 +
 +</code>
 +
 +  * usage of task Scheduler to start other things automatically, see {{ ::tnp_task_scheduler.zip }}
  
 ==== MIDI ==== ==== MIDI ====
  
   * MSC, https://www.facebook.com/groups/Avolites/permalink/1713549732110587/?comment_id=1714066365392257   * 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)   * MMC, siehe Macros Olie (Email 03./05.12.19)
   * MTC über Netzwerk?   * MTC über Netzwerk?
Line 111: Line 426:
   * patches from forum   * patches from forum
   * pictures on welcome pages/section headers   * pictures on welcome pages/section headers
-  * how to make use of a patch on the performance page, and how to set its thumbnail+  * 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   * Pip and Multi Screen projects
   * Multiviewer (TH):   * Multiviewer (TH):
Line 121: Line 436:
     * output/Window (off/on by Artnet)     * output/Window (off/on by Artnet)
   * clock/countdown (SB/Arran)   * 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 Ai tricks and pitfalls
todo.1575843355.txt.gz · Last modified: 2019/12/08 22:15 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki