├── Dynamic ├── blue.png ├── green.png ├── layers.companionconfig ├── layers.vmix ├── readme.md ├── red.png ├── slide.png └── yellow.png ├── MultiView ├── Mix2 │ └── MultiView.txt ├── Mix3 │ └── MultiView.txt ├── Mix4 │ └── MultiView.txt ├── MultiView.txt └── MultiView.vMixLayout ├── README.md └── buttons ├── atemstyle.html ├── buttons.html └── titleText.html /Dynamic/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazy-logic/vMix-Scripts/ca9a021d286f39fb929f884d32db8bf271bbe654/Dynamic/blue.png -------------------------------------------------------------------------------- /Dynamic/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazy-logic/vMix-Scripts/ca9a021d286f39fb929f884d32db8bf271bbe654/Dynamic/green.png -------------------------------------------------------------------------------- /Dynamic/layers.companionconfig: -------------------------------------------------------------------------------- 1 | {"version":2,"type":"page","config":{"1":{"style":"png","text":"1PPT","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"2":{"style":"png","text":"2PPT","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"3":{"style":"png","text":"1UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"4":{"style":"png","text":"2UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"5":{"style":"png","text":"3UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"6":{"style":"png","text":"4UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":0,"latch":false,"relative_delay":false},"7":{},"8":{"style":"png","text":"Take","size":"auto","alignment":"center:center","pngalignment":"center:center","color":0,"bgcolor":16711680,"latch":false,"relative_delay":false},"9":{"style":"png","text":"Select 1PPT","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"10":{"style":"png","text":"Select 2PPT","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"11":{"style":"png","text":"Select 1UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"12":{"style":"png","text":"Select 2UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"13":{"style":"png","text":"Select 3UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"14":{"style":"png","text":"Select 4UP","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"15":{"style":"png","text":"?","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"16":{"style":"png","text":"?","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"17":{"style":"png","text":"Layer 1","size":"auto","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"18":{"style":"png","text":"Layer 2","size":"auto","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"19":{"style":"png","text":"Layer 3","size":"auto","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"20":{"style":"png","text":"Layer 4","size":"auto","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"21":{},"22":{},"23":{},"24":{"style":"png","text":"Layer 8","size":"auto","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"25":{"style":"png","text":"ppt","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"26":{"style":"png","text":"red","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"27":{"style":"png","text":"yellow","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"28":{"style":"png","text":"blue","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"29":{"style":"png","text":"green","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false},"30":{},"31":{},"32":{"style":"png","text":"?","size":"24","alignment":"center:center","pngalignment":"center:center","color":16777215,"bgcolor":6684774,"latch":false,"relative_delay":false}},"instances":{"7nNairmBS":{"instance_type":"studiocoast-vmix","product":"vMix","label":"vmix","_configIdx":2,"host":"127.0.0.1","tcpPort":8099,"connectionErrorLog":true,"apiPollInterval":100,"tbarEnabled":false,"volumeLinear":false,"shiftDelimiter":"/","shiftBlinkPrvPrgm":true,"shiftBlinkLayerRouting":true,"variablesShowInputs":true,"variablesShowInputNumbers":true,"variablesShowInputGUID":true}},"actions":{"1":[{"id":"KJh3HSkLH","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"1PPT","mix":0},"delay":0}],"2":[{"id":"BLL7jRpuZ","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"2PPT","mix":0},"delay":0}],"3":[{"id":"beW11zLh5","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"1UP","mix":0},"delay":0}],"4":[{"id":"P217miCa8","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"2UP","mix":0},"delay":0}],"5":[{"id":"lPkpAytFq","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"3UP","mix":0},"delay":0}],"6":[{"id":"XvaQTZOjh","label":"7nNairmBS:previewInput","instance":"7nNairmBS","action":"previewInput","options":{"input":"4UP","mix":0},"delay":0}],"7":[],"8":[{"id":"_BhZykNJm","label":"7nNairmBS:transitionMix","instance":"7nNairmBS","action":"transitionMix","options":{"mix":0,"functionID":"Cut","duration":10},"delay":0}],"9":[{"id":"7z1tLEBaK","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"1PPT"},"delay":0}],"10":[{"id":"U8ch8emYt","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"2PPT"},"delay":0}],"11":[{"id":"SAhIV_2mi","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"1UP"},"delay":0}],"12":[{"id":"E_E3FV7hT","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"2UP"},"delay":0}],"13":[{"id":"0hYGe39JR","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"3UP"},"delay":0}],"14":[{"id":"YrVxw_N0C","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"4UP"},"delay":0}],"15":[{"id":"u6YaFH8XD","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"0"},"delay":0}],"16":[{"id":"xP46PA1aN","label":"7nNairmBS:setMultiViewOverlayDestinationInput","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationInput","options":{"destinationInput":"-1"},"delay":0}],"17":[{"id":"JydLSk578","label":"7nNairmBS:setMultiViewOverlayDestinationLayer","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationLayer","options":{"destinationLayer":"1"},"delay":0}],"18":[{"id":"cmtaj-OuO","label":"7nNairmBS:setMultiViewOverlayDestinationLayer","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationLayer","options":{"destinationLayer":"2"},"delay":0}],"19":[{"id":"nbqVqr8B3","label":"7nNairmBS:setMultiViewOverlayDestinationLayer","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationLayer","options":{"destinationLayer":"3"},"delay":0}],"20":[{"id":"OCCK88qM7","label":"7nNairmBS:setMultiViewOverlayDestinationLayer","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationLayer","options":{"destinationLayer":"4"},"delay":0}],"21":[],"22":[],"23":[],"24":[{"id":"CPewsJZF1","label":"7nNairmBS:setMultiViewOverlayDestinationLayer","instance":"7nNairmBS","action":"setMultiViewOverlayDestinationLayer","options":{"destinationLayer":"8"},"delay":0}],"25":[{"id":"T5med1kzs","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"slide.png"},"delay":0}],"26":[{"id":"Sk5ld3bLV","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"red.png"},"delay":0}],"27":[{"id":"R52bIUKrf","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"yellow.png"},"delay":0}],"28":[{"id":"xiH3a6p6Y","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"blue.png"},"delay":0}],"29":[{"id":"B3Q_6EvJJ","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"green.png"},"delay":0}],"30":[],"31":[],"32":[{"id":"rlTNKptZl","label":"7nNairmBS:setMultiViewOverlaySourceInput","instance":"7nNairmBS","action":"setMultiViewOverlaySourceInput","options":{"sourceIndex":"None"},"delay":0}]},"release_actions":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[],"13":[],"14":[],"15":[],"16":[],"17":[],"18":[],"19":[],"20":[],"21":[],"22":[],"23":[],"24":[],"25":[],"26":[],"27":[],"28":[],"29":[],"30":[],"31":[],"32":[]},"feedbacks":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"8":[],"9":[],"10":[],"11":[],"12":[],"13":[],"14":[],"15":[],"16":[],"17":[],"18":[],"19":[],"20":[],"24":[],"25":[],"26":[],"27":[],"28":[],"29":[],"32":[]},"page":{"name":"PAGE"}} -------------------------------------------------------------------------------- /Dynamic/readme.md: -------------------------------------------------------------------------------- 1 | How to dynamically change input on layers within vMix 2 | -------------------------------------------------------------------------------- /Dynamic/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazy-logic/vMix-Scripts/ca9a021d286f39fb929f884d32db8bf271bbe654/Dynamic/red.png -------------------------------------------------------------------------------- /Dynamic/slide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazy-logic/vMix-Scripts/ca9a021d286f39fb929f884d32db8bf271bbe654/Dynamic/slide.png -------------------------------------------------------------------------------- /Dynamic/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazy-logic/vMix-Scripts/ca9a021d286f39fb929f884d32db8bf271bbe654/Dynamic/yellow.png -------------------------------------------------------------------------------- /MultiView/Mix2/MultiView.txt: -------------------------------------------------------------------------------- 1 | Console.WriteLine("Hey thanks for using this script, Matt") 2 | 3 | do while true 4 | 5 | Dim doc As New XmlDocument() 6 | doc.LoadXml(API.Xml) 7 | Dim root As XmlNode = doc.DocumentElement 8 | 9 | Dim node As XmlNode = root.SelectSingleNode("/vmix/mix/active") 10 | Dim programNumber as Integer = node.InnerXml 11 | API.Function("SetMultiViewOverlay","MultiView", "2," & programNumber) 12 | 13 | Dim node1 As XmlNode = root.SelectSingleNode("/vmix/mix/preview") 14 | Dim previewNumber as Integer = node1.InnerXml 15 | API.Function("SetMultiViewOverlay","MultiView", "1," & previewNumber) 16 | 17 | 'sleep time depends on frame rate and acceptable latency.... 18 | 'for 60fps use 16, 19 | 'for 50fps use 20, 20 | 'for 30fps use 33, 21 | 'for 25fps use 40. 22 | sleep(40) 23 | loop 24 | -------------------------------------------------------------------------------- /MultiView/Mix3/MultiView.txt: -------------------------------------------------------------------------------- 1 | Console.WriteLine("Hey thanks for using this script, Matt") 2 | 3 | do while true 4 | 5 | Dim doc As New XmlDocument() 6 | doc.LoadXml(API.Xml) 7 | Dim root As XmlNode = doc.DocumentElement 8 | 9 | Dim node As XmlNode = root.SelectSingleNode("/vmix/mix[2]/active") 10 | Dim programNumber as Integer = node.InnerXml 11 | API.Function("SetMultiViewOverlay","MultiView", "2," & programNumber) 12 | 13 | Dim node1 As XmlNode = root.SelectSingleNode("/vmix/mix[2]/preview") 14 | Dim previewNumber as Integer = node1.InnerXml 15 | API.Function("SetMultiViewOverlay","MultiView", "1," & previewNumber) 16 | 17 | 'sleep time depends on frame rate and acceptable latency.... 18 | 'for 60fps use 16, 19 | 'for 50fps use 20, 20 | 'for 30fps use 33, 21 | 'for 25fps use 40. 22 | sleep(40) 23 | loop 24 | -------------------------------------------------------------------------------- /MultiView/Mix4/MultiView.txt: -------------------------------------------------------------------------------- 1 | Console.WriteLine("Hey thanks for using this script, Matt") 2 | 3 | do while true 4 | 5 | Dim doc As New XmlDocument() 6 | doc.LoadXml(API.Xml) 7 | Dim root As XmlNode = doc.DocumentElement 8 | 9 | Dim node As XmlNode = root.SelectSingleNode("/vmix/mix[3]/active") 10 | Dim programNumber as Integer = node.InnerXml 11 | API.Function("SetMultiViewOverlay","MultiView", "2," & programNumber) 12 | 13 | Dim node1 As XmlNode = root.SelectSingleNode("/vmix/mix[3]/preview") 14 | Dim previewNumber as Integer = node1.InnerXml 15 | API.Function("SetMultiViewOverlay","MultiView", "1," & previewNumber) 16 | 17 | 'sleep time depends on frame rate and acceptable latency.... 18 | 'for 60fps use 16, 19 | 'for 50fps use 20, 20 | 'for 30fps use 33, 21 | 'for 25fps use 40. 22 | sleep(40) 23 | loop 24 | -------------------------------------------------------------------------------- /MultiView/MultiView.txt: -------------------------------------------------------------------------------- 1 | Console.WriteLine("Hey thanks for using this script, Matt") 2 | 3 | do while true 4 | 5 | Dim doc As New XmlDocument() 6 | doc.LoadXml(API.Xml) 7 | Dim root As XmlNode = doc.DocumentElement 8 | 9 | Dim node As XmlNode = root.SelectSingleNode("/vmix/active") 10 | Dim programNumber as Integer = node.InnerXml 11 | API.Function("SetMultiViewOverlay","MultiView", "2," & programNumber) 12 | 13 | Dim node1 As XmlNode = root.SelectSingleNode("/vmix/preview") 14 | Dim previewNumber as Integer = node1.InnerXml 15 | API.Function("SetMultiViewOverlay","MultiView", "1," & previewNumber) 16 | 17 | 'sleep time depends on frame rate and acceptable latency.... 18 | 'for 60fps use 16, 19 | 'for 50fps use 20, 20 | 'for 30fps use 33, 21 | 'for 25fps use 40. 22 | sleep(40) 23 | loop 24 | -------------------------------------------------------------------------------- /MultiView/MultiView.vMixLayout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | 6 | true 7 | 1 8 | 0 9 | White 10 | 11 | false 12 | 0.5 13 | 0.5 14 | 1 15 | 1 16 | 17 | 0 18 | 0 19 | 0 20 | 21 | 22 | 0 23 | 0 24 | 0 25 | 26 | -0.5 27 | 0.5 28 | 29 | 30 | false 31 | 32 | true 33 | 1 34 | 0 35 | White 36 | 37 | false 38 | 0.5 39 | 0.5 40 | 1 41 | 1 42 | 43 | 0 44 | 0 45 | 0 46 | 47 | 48 | 0 49 | 0 50 | 0 51 | 52 | 0.5 53 | 0.5 54 | 55 | 56 | false 57 | 58 | true 59 | 1 60 | 0 61 | White 62 | 63 | false 64 | 0.25 65 | 0.25 66 | 1 67 | 1 68 | 69 | 0 70 | 0 71 | 0 72 | 73 | 74 | 0 75 | 0 76 | 0 77 | 78 | -0.75 79 | -0.25 80 | 81 | 82 | false 83 | 84 | true 85 | 1 86 | 0 87 | White 88 | 89 | false 90 | 0.25 91 | 0.25 92 | 1 93 | 1 94 | 95 | 0 96 | 0 97 | 0 98 | 99 | 100 | 0 101 | 0 102 | 0 103 | 104 | -0.25 105 | -0.25 106 | 107 | 108 | false 109 | 110 | true 111 | 1 112 | 0 113 | White 114 | 115 | false 116 | 0.25 117 | 0.25 118 | 1 119 | 1 120 | 121 | 0 122 | 0 123 | 0 124 | 125 | 126 | 0 127 | 0 128 | 0 129 | 130 | 0.25 131 | -0.25 132 | 133 | 134 | false 135 | 136 | true 137 | 1 138 | 0 139 | White 140 | 141 | false 142 | 0.25 143 | 0.25 144 | 1 145 | 1 146 | 147 | 0 148 | 0 149 | 0 150 | 151 | 152 | 0 153 | 0 154 | 0 155 | 156 | 0.75 157 | -0.25 158 | 159 | 160 | false 161 | 162 | true 163 | 1 164 | 0 165 | White 166 | 167 | false 168 | 0.25 169 | 0.25 170 | 1 171 | 1 172 | 173 | 0 174 | 0 175 | 0 176 | 177 | 178 | 0 179 | 0 180 | 0 181 | 182 | -0.75 183 | -0.75 184 | 185 | 186 | false 187 | 188 | true 189 | 1 190 | 0 191 | White 192 | 193 | false 194 | 0.25 195 | 0.25 196 | 1 197 | 1 198 | 199 | 0 200 | 0 201 | 0 202 | 203 | 204 | 0 205 | 0 206 | 0 207 | 208 | -0.25 209 | -0.75 210 | 211 | 212 | false 213 | 214 | true 215 | 1 216 | 0 217 | White 218 | 219 | false 220 | 0.25 221 | 0.25 222 | 1 223 | 1 224 | 225 | 0 226 | 0 227 | 0 228 | 229 | 230 | 0 231 | 0 232 | 0 233 | 234 | 0.25 235 | -0.75 236 | 237 | 238 | false 239 | 240 | true 241 | 1 242 | 0 243 | White 244 | 245 | false 246 | 0.25 247 | 0.25 248 | 1 249 | 1 250 | 251 | 0 252 | 0 253 | 0 254 | 255 | 256 | 0 257 | 0 258 | 0 259 | 260 | 0.75 261 | -0.75 262 | 263 | 264 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vMix-Scripts 2 | 3 | A collection of scripts for vMix. 4 | 5 | ### MultiView 6 | 7 | Custom multiview with Program and Preview for vMix - similar to that found in the atem switchers. 8 | The folders of Mix2,3,4 contain the XML Lines for Mixes 2, 3 and 4. Thanks to Howlswolf on the vMix forums for the additional mix XML strings. 9 | You'll need the vMixLayout file for the overlay preset and then the MultiView.txt file as a script. 10 | 11 | Multiview Demo 14 | 15 | ### Dynamic 16 | 17 | A comapnion file to use dynamic layer buttons on a streamdeck. Also the vMix assets i used in my video. 18 | 19 | Dynamic layers Demo 22 | 23 | -------------------------------------------------------------------------------- /buttons/atemstyle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | vMix Buttons by Crazy-Logic 4 | 5 | 6 | 7 | 18 | 19 | 20 | 21 | 22 |
23 |

vMix HTML Control


24 |
25 | 26 |
27 |
28 |

ME1

29 |
30 |

Program

31 | 35 | 39 | 43 | 47 |
48 | 49 | 50 |
51 |

Preview

52 | 56 | 60 | 64 | 68 | 69 |
70 |
71 | 72 |
73 |

Transition

74 | 78 | 82 | 86 |
87 | 88 |
89 |

DSK

90 | 91 | 92 | 93 | 94 |
95 |
96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /buttons/buttons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | vMix Buttons by Crazy-Logic 4 | 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /buttons/titleText.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | vMix Buttons by Crazy-Logic 4 | 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | --------------------------------------------------------------------------------