Example ====== ColourChaseChanger (V2) ====== ^ by: | Jonas Nijs, Dec. 2017 | ^ published: | December 2017 | ^ description: | changes the colours of a color chase to any color you want | ^ remarks: | This is an updated version [[macros:example:changecolorchaseold|to the old one]], this time using system syntax so it goes faster and whitout your screen flickering. | ^ ::: | Also see the author's remarks on how to use it [[#how_to_use_it|(below the code)]] | ^ ::: | [[http://forum.avolites.com/viewtopic.php?f=20&t=4823|In the original post]] there is also a short manual linked which you might find helpful. | Kim Wida developed a slightly changed version: [[macros:example:palettechasechanger_v3|]]. {{tag>change chase blind colour}} ==== functions ==== * [[macros:function:actionscript.setproperty.boolean]] * [[macros:function:Programmer.SetBlindMode]] * [[macros:function:Group.RecallGroupNumeric]] * [[macros:function:Palette.ApplyPalette]] * [[macros:function:actionscript.setproperty]] * [[macros:function:Palette.StoreCurrentPaletteReplace]] -- alternatively [[macros:function:Palette.MergeCurrentPalette]] (see [[#explanation]]) * [[macros:function:Programmer.Editor.Clear]] ==== properties ==== * [[macros:property:programmer.blindactive]] * [[macros:property:Palette.CurrentPaletteHandle]] * [[macros:property:Attribute.Mask.Clear.Value]] * [[macros:property:Programmer.Editor.Fixtures.Clear.Presets]] * [[macros:property:Expert.ClearMenu.FadeTime]] ===== Code ===== Color chase changer ActionScript.SetProperty.Boolean("Programmer.BlindActive", true) Programmer.SetBlindMode(false, 0) Group.RecallGroupNumeric(100) Palette.ApplyPalette("Location=Colours,1,16", false) ActionScript.SetProperty("Palette.CurrentPaletteHandle", handle:"Location=Colours,2,1") Palette.StoreCurrentPaletteReplace() Programmer.Editor.Clear(Attribute.Mask.Clear.Value, Programmer.Editor.Fixtures.Clear.Presets, false, Expert.ClearMenu.FadeTime) Group.RecallGroupNumeric(100) Palette.ApplyPalette("Location=Colours,1,17", false) ActionScript.SetProperty("Palette.CurrentPaletteHandle", handle:"Location=Colours,2,2") Palette.StoreCurrentPaletteReplace() Programmer.Editor.Clear(Attribute.Mask.Clear.Value, Programmer.Editor.Fixtures.Clear.Presets, false, Expert.ClearMenu.FadeTime) ActionScript.SetProperty.Boolean("Programmer.BlindActive", false) Programmer.SetBlindMode(false, 0) ===== Explanation ===== a brief explanation of the syntax used. For all the other XML details please refer to [[macros:formats_and_syntax#xml_format|Formats and syntax]] Essentially this macro does: * enter blind mode * replace a palette - e.g. our foreground colour - for a certain fixture group with another palette, clear * replace yet another palette - e.g. our background colour - for a certain fixture group with another palette, clear * exit blind mode The commands are as follows: * ''ActionScript.SetProperty.Boolean("Programmer.BlindActive", true)'' and ''Programmer.SetBlindMode(false, 0)'' toggle to blind mode, see [[macros:example:blindmodeonoff]] * ''Group.RecallGroupNumeric(100)'' recalls a specific group of fixtures - here group no. 100 * ''Palette.ApplyPalette("Location=Colours,1,16", false)'' selects the colour palette on the first page of the Colours workspace window, 16th slot * ''ActionScript.SetProperty("Palette.CurrentPaletteHandle", handle:"Location=Colours,2,1")'' sets the colour palette on the second page on the 1th slot into the desks memory, i.e. makes it the current palette handle for the next actions * ''Palette.StoreCurrentPaletteReplace()'' replaces the palette in the desks memory - the active palette handle - with what's in the programmer \\ **HINT:** if you instead want to replace only a part of the palette then you need to merge it instead of replace the entire palette. Use [[macros:function:palette.mergecurrentpalette|]] instead * ''Programmer.Editor.Clear(...)'' clears the programmer (for the parameters see [[macros:function:Programmer.Editor.Clear]] - clears according to the current clear mask, clearing the presets as setglobally, in the globally set clear/release time) * repeat the above steps, now with ''Palette.ApplyPalette("Location=Colours,1,17", false)'' and ''ActionScript.SetProperty("Palette.CurrentPaletteHandle", handle:"Location=Colours,2,2")'', in order to replace the background colour * ''ActionScript.SetProperty.Boolean("Programmer.BlindActive", false)'' and ''Programmer.SetBlindMode(false, 0)'' exit blind mode again - see above ===== How to use it ===== - [[macros:deploying|make this macro available]] - make a color chase that uses color pallets - place those color pallets on the color pallets windows page 2 positions 1 and 2 - create a group for all the fixtures used in that color chase and give that group usernumber 100 - when you want to change the colors, place the 2 new colors you want on the color pallets page 1 positions 16 and 17 - run the macro and have fun. ~~DISCUSSION~~