Send Voicemeeter/Matrix vban requests.
For an outline of past/future changes refer to: CHANGELOG
- Basic 1.0.8.4
- Banana 2.0.6.4
- Potato 3.0.2.4
- Matrix 1.0.0.3
- Voicemeeter or Matrix
- Go 1.18 or greater (if you want to compile yourself, otherwise check
Releases
)
go get github.com/onyx-and-iris/vbantxt
package main
import (
"log"
"github.com/onyx-and-iris/vbantxt"
)
func main() {
var (
host string = "vm.local"
port int = 6980
streamname string = "onyx"
)
client, err := vbantxt.New(host, port, streamname)
if err != nil {
log.Fatal(err)
}
defer client.Close()
err = client.Send("strip[0].mute=0")
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "Error: %s", err)
os.Exit(1)
}
}
Pass host
, port
and streamname
as flags, for example:
vbantxt -h="gamepc.local" -p=6980 -s=Command1 "strip[0].mute=1 strip[1].mono=1"
You may also store them in a config.toml
located in home directory / .config / vbantxt /
A valid config.toml
might look like this:
[connection]
host="gamepc.local"
port=6980
streamname="Command1"
host
defaults to "localhost"port
defaults to 6980streamname
defaults to "Command1"
Command line flags will override values in a config.toml.
The vbantxt-cli utility accepts a single string request or an array of string requests. This means you can pass scripts stored in files.
For example, in Windows with Powershell you could:
vbantxt $(Get-Content .\script.txt)
Or with Bash:
cat script.txt | xargs vbantxt-cli
to load commands from a file:
strip[0].mute=1;strip[0].mono=0
strip[1].mute=0;strip[1].mono=1
bus[3].eq.On=0
Sending commands to VB-Audio Matrix is also possible, for example:
vbantxt -s=streamname "Point(ASIO128.IN[2],ASIO128.OUT[1]).dBGain = -8"
Log level may be set by passing the -l
flag with a number from 0 up to 6 where
0 = Panic, 1 = Fatal, 2 = Error, 3 = Warning, 4 = Info, 5 = Debug, 6 = Trace
Log level defaults to Warning level.