Skip to content

vmix-scripting-0.6.55

Latest

Choose a tag to compare

@SysProfile SysProfile released this 06 Mar 17:52

Progressive Parameter Overloads (! range prefix)

Overview

A new range prefix ! has been introduced in vMixValuesRange.json to support functions whose optional parameters represent individual constant values rather than a concatenated string. This differs from the existing + prefix (accumulative string) by treating each value as a separate positional argument.

Behavior

Given a range like !M,A,B,C,D,E,F,G, the extension generates one completion overload per depth level:

Overload Inserted code
1 AudioBus(InputsList.X, M)
2 AudioBus(InputsList.X, M, A)
3 AudioBus(InputsList.X, M, A, B)
8 AudioBus(InputsList.X, M, A, B, C, D, E, F, G)

Each letter is presented as a constant tab stop (no quotes), equivalent to a VB.NET overload signature:

Sub AudioBus(Input As InputsList, Bus1 As Letter)
Sub AudioBus(Input As InputsList, Bus1 As Letter, Optional Bus2 As Letter)
Sub AudioBus(Input As InputsList, Bus1 As Letter, Optional Bus2 As Letter, Optional Bus3 As Letter)
' ...

IntelliSense inside parentheses

When typing additional arguments inside a !-range function call, the extension suggests the remaining valid letters as Constant items (no quotes inserted), automatically excluding letters already present in the argument list.

Export / Import

Direction Transformation
Export AudioBus(InputsList.MyInput, M, A, B)API.Function("AudioBus", Input:="My Input", Value:="MAB")
Import API.Function("AudioBus", Input:="My Input", Value:="MAB")AudioBus(InputsList.MyInput, M, A, B)

The export concatenates all bus letter arguments into a single Value string as required by the vMix API. The import splits the Value string back into individual letter arguments, discarding any character not present in the valid set defined by the range.

How to apply to a function

In vMixValuesRange.json, use the ! prefix followed by comma-separated values:

{
  "category": "Audio",
  "function": "AudioBus",
  "range": "!M,A,B,C,D,E,F,G"
}

Currently applied to: AudioBus, AudioBusOff, AudioBusOn.