macros:example:halvechasespeed

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
macros:example:halvechasespeed [2017/11/20 13:26] icke_siegenmacros:example:halvechasespeed [2019/04/27 11:26] (current) sideshowbond
Line 1: Line 1:
-====== Halve chase speed ======+Example 
 + 
 +====== Chase - Halve speed ======
  
 ^ by: | Gregory Haynes, Feb 2016 | ^ by: | Gregory Haynes, Feb 2016 |
 ^ published: | http://forum.avolites.com/viewtopic.php?f=20&t=3744#p15848 | ^ published: | http://forum.avolites.com/viewtopic.php?f=20&t=3744#p15848 |
 ^ description: | halves currently chase's BPM rate | ^ description: | halves currently chase's BPM rate |
-^ remarks: | The problem with this code is that it requires the chase to be set as the selected playback in the editor (used for the Edit Times menu). This means that the Playback View which could be showing a cue list switches to show the chase instead, to get around this I have stored the previous selected playback and restore that afterwards but this does cause the display to flicker. |+^ remarks: | The problem with this code is that it requires the chase to be set as the selected playback in the editor (used for the Edit Times menu). This means that the Playback View which could be showing a cue list switches to show the chase instead, to get around this I have stored the previous selected playback and restore that afterwards but this does cause the display to flicker. \\ **In version 10.1, one of the affected variables has changed - you need to use the correct macro for your Titan version.** |
  
 +{{tag>halve connect chase speed bpm}}
 ==== functions ==== ==== functions ====
   * [[macros:function:actionscript.setproperty]]   * [[macros:function:actionscript.setproperty]]
Line 14: Line 17:
   * [[macros:property:handles.sourcehandle]]   * [[macros:property:handles.sourcehandle]]
   * [[macros:property:playbacks.editor.selectedplayback]]   * [[macros:property:playbacks.editor.selectedplayback]]
-  * [[macros:property:playbacks.editor.times.chasespeed]]+  * [[macros:property:playbacks.editor.times.chasespeed]](until version 10.0) 
 +  * [[macros:property:playbacks.editor.times.playbackspeed]] (from version 10.1)
  
-**This macro works perfectly well in Titan 9.1does misbehave in 10.0 (always sets speed to 0 BPM), and throws an error in 10.1 (variable not registered).**+**This macro changes the speed which is stored with the chaseIf you've set the user setting 'Connected View Sets: Temporary Chase Speed' then when applying this macrothe main chase speed is halved and then overwrites the temp chase speed.** 
 + 
 +**In version 10.1, one of the affected variables has changed - you need to use the correct macro for your Titan version.**
    
 ===== Code ===== ===== Code =====
 +
 +==== until Titan version 10.0 ====
 <code xml halvechasespeed.xml> <code xml halvechasespeed.xml>
 <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
 <avolites.macros xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Avolites.Menus.xsd"> <avolites.macros xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Avolites.Menus.xsd">
 +  <!-- This macro does not work in versions from 10.1 as the property Playbacks.Editor.Times.ChaseSpeed has been swopped for Playbacks.Editor.Times.PlaybackSpeed. -->
   <macro name="Chase Speed Half" id="Avolites.Macros.ChaseSpeedHalf">   <macro name="Chase Speed Half" id="Avolites.Macros.ChaseSpeedHalf">
     <description>Halves the speed of the currently connected chase.</description>     <description>Halves the speed of the currently connected chase.</description>
Line 29: Line 38:
       <step>ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", Playbacks.Editor.Times.ChaseSpeed / 2)</step>       <step>ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", Playbacks.Editor.Times.ChaseSpeed / 2)</step>
       <step condition="Math.IsLessThan(Playbacks.Editor.Times.ChaseSpeed, 1.0)">ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", 0.0)</step>       <step condition="Math.IsLessThan(Playbacks.Editor.Times.ChaseSpeed, 1.0)">ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", 0.0)</step>
 +      <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Handles.SourceHandle)</step>
 +    </sequence>
 +  </macro>
 +</avolites.macros>
 +</code>
 +
 +==== from Titan version 10.1 ====
 +<code xml halvechasespeed.xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<avolites.macros xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Avolites.Menus.xsd">
 +  <!-- This macro does not work in versions below 10.1 as the property Playbacks.Editor.Times.PlaybackSpeed formerly was  Playbacks.Editor.Times.PlaybackSpeed. --> 
 +  <macro name="Chase Speed Half" id="Avolites.Macros.ChaseSpeedHalf">
 +    <description>Halves the speed of the currently connected chase.</description>
 +    <sequence>
 +      <step>ActionScript.SetProperty("Handles.SourceHandle", Playbacks.Editor.SelectedPlayback)</step>
 +      <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Chases.ConnectedHandle)</step>
 +      <step>ActionScript.SetProperty.Float("Playbacks.Editor.Times.PlaybackSpeed", Playbacks.Editor.Times.PlaybackSpeed / 2)</step>
 +      <step condition="Math.IsLessThan(Playbacks.Editor.Times.PlaybackSpeed, 1.0)">ActionScript.SetProperty.Float("Playbacks.Editor.Times.PlaybackSpeed", 0.0)</step>
       <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Handles.SourceHandle)</step>       <step>ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Handles.SourceHandle)</step>
     </sequence>     </sequence>
Line 38: Line 65:
  
 This explains the functional steps within the sequence. For all the other XML details please refer to [[macros:formats_and_syntax#xml_format|Formats and syntax]] This explains the functional steps within the sequence. For all the other XML details please refer to [[macros:formats_and_syntax#xml_format|Formats and syntax]]
 +
 +In version 10.1, the property ''Playbacks.Editor.Times.ChaseSpeed'' was swopped for ''Playbacks.Editor.Times.PlaybackSpeed''. Apart from that, the mechanics of the macro are unchanged.
  
   * ''ActionScript.SetProperty("Handles.SourceHandle", Playbacks.Editor.SelectedPlayback)''\\ temporarily stores the currently selected playback into 'Handles.SourceHandle' from where it will be retrieved when the macro is finished, see Gregory's explanation above   * ''ActionScript.SetProperty("Handles.SourceHandle", Playbacks.Editor.SelectedPlayback)''\\ temporarily stores the currently selected playback into 'Handles.SourceHandle' from where it will be retrieved when the macro is finished, see Gregory's explanation above
   * ''ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Chases.ConnectedHandle)''\\ this selects the currently connected chaser for editing   * ''ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Chases.ConnectedHandle)''\\ this selects the currently connected chaser for editing
-  * ''Math.Min("Playbacks.Editor.Times.ChaseSpeed", Playbacks.Editor.Times.ChaseSpeed 2, 3600.0)''\\ sets the speed of the chaser to its half, or 3600.0, whatever the smaller value - this way it will never be faster than 360 BPM +  * ''ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", Playbacks.Editor.Times.ChaseSpeed 2)''\\ sets the speed of the chaser to its half 
-  * ''<step condition="Math.IsEqual(Playbacks.Editor.Times.ChaseSpeed, 0.0)">ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", 1.0)</step>''\\ if the speed equals 0.0: sets speed to 1.0+  * ''<step condition="Math.IsLessThan(Playbacks.Editor.Times.ChaseSpeed, 1.0)">ActionScript.SetProperty.Float("Playbacks.Editor.Times.ChaseSpeed", 0.0)</step> 
 +      ''\\ if the speed is less than 1.0: sets speed to 0.0
   * ''ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Handles.SourceHandle)''\\ restores the selected playback from before the macro was run   * ''ActionScript.SetProperty("Playbacks.Editor.SelectedPlayback", Handles.SourceHandle)''\\ restores the selected playback from before the macro was run
              
Line 49: Line 79:
 ===== How to use it ===== ===== How to use it =====
  
-**This macro works perfectly well in Titan 9.1, does misbehave in 10.0 (always sets speed to 0 BPM), and throws an error in 10.1 (variable not registered).**+**Please choose the correct macro for your Titan version.**
  
   * [[macros:deploying|make this macro available]]   * [[macros:deploying|make this macro available]]
   * with a chase running and connected (Speed and Cross Fade on the wheels), triggering this macro halves the speed of the chase   * with a chase running and connected (Speed and Cross Fade on the wheels), triggering this macro halves the speed of the chase
 +  * watch the user setting 'Connected View Sets'. This macro always affects the main chase speed, not the temporary speed. Hence, if there is a temporary chase speed set with the wheels, applying this macro will return to the main chase speed and halve it.
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
macros/example/halvechasespeed.1511184388.txt.gz · Last modified: 2017/11/20 13:26 by icke_siegen

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki