vmrcli/README.md
2024-07-08 18:01:10 +01:00

2.7 KiB

Voicemeeter Remote Command Line Utility

Tested against

  • Basic 1.1.1.1
  • Banana 2.1.1.1
  • Potato 3.1.1.1

Requirements

Use

.\vmrcli.exe [-h] [-i] [-k] [-D] [-v] [-c] [-m] [-s] <api commands>

Where:

  • h: Prints the help message.
  • i: Enable interactive mode. If set, any api commands passed on the command line will be ignored.
  • k: The kind of Voicemeeter (basic, banana or potato). Use this to launch the GUI.
  • D: Set log level 0=TRACE, 1=DEBUG, 2=INFO, 3=WARN, 4=ERROR, 5=FATAL
  • v: Enable extra console output (toggle, set messages)
  • c: Load a user configuration (give the full file path)
  • m: Launch the MacroButtons application
  • s: Launch the StreamerView application

API Commands

  • Commands starting with ! will be toggled, use it with boolean parameters.
  • Commands containing = will set a value. (use += and -= to increment/decrement)
  • All other commands with get a value.

Examples:

Launch basic GUI, set log level to INFO, Toggle Strip 0 Mute, print its new value, then decrease Bus 0 Gain by 3.8

.\vmrcli.exe -kbasic -D2 !strip[0].mute strip[0].mute bus[0].gain-=3.8

Launch banana GUI, set log level to DEBUG, set Strip 0 label to podmic then print Strip 2 label

.\vmrcli.exe -kbanana -D1 strip[0].label=podmic strip[2].label

Interactive Mode

Running the following command in Powershell:

.\vmrcli.exe -i

Will open an interactive prompt:

Interactive mode enabled. Enter 'Q' to exit.
>>

API commands follow the same rules as listed above. Entering Q or q will exit the program.

Script files

Scripts can be loaded from text files, for example in Powershell:

.\vmrcli.exe -D1 $(Get-Content .\example_commands.txt)

You may also pipe a scripts contents to the CLI:

$(Get-Content .\example_commands.txt) | .\vmrcli.exe -D1 -i

Multiple API commands can be in a single line, they may be delimited by space, ; or ,.

Build

Run the included makefile with GNU Make.

The binary in Releases is compiled with coloured logging enabled. To disable this you can override the LOG_USE_COLOR variable, for example:

make LOG_USE_COLOR=no

Official Documentation

Special Thanks