2025-06-14 17:05:16 +01:00
2024-11-03 15:47:03 +00:00
2025-03-10 15:32:25 +00:00
2025-06-14 09:16:19 +01:00
2025-03-10 15:32:10 +00:00
2022-09-23 09:29:14 +01:00
2025-06-14 09:00:04 +01:00
2025-06-14 17:05:16 +01:00
2025-06-14 09:00:04 +01:00
2024-11-03 16:15:05 +00:00
2025-06-14 09:13:25 +01:00
2025-03-10 15:32:10 +00:00

Windows Linux

VBAN Sendtext

Send Voicemeeter/Matrix vban requests.

For an outline of past/future changes refer to: CHANGELOG


Table of Contents

Requirements

Tested against

  • Basic 1.1.1.9
  • Banana 2.1.1.9
  • Potato 3.1.1.9
  • Matrix 1.0.1.2

Installation

go get github.com/onyx-and-iris/vbantxt

VBANTXT Package

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)
	}
}

VBANTXT CLI

Use

Simply pass your vban commands as commane line arguments:

vbantxt "strip[0].mute=1 strip[1].mono=1"

Configuration

Flags

FLAGS
  -H, --host STRING         VBAN host (default: localhost)
  -p, --port INT            VBAN port (default: 6980)
  -s, --streamname STRING   VBAN stream name (default: Command1)
  -b, --bps INT             VBAN BPS (default: 256000)
  -n, --channel INT         VBAN channel (default: 0)
  -r, --ratelimit INT       VBAN rate limit (ms) (default: 20)
  -C, --config STRING       Path to the configuration file (default: $XDG_CONFIG_HOME/vbantxt/config.toml)
  -l, --loglevel STRING     Log level (debug, info, warn, error, fatal, panic) (default: warn)
  -v, --version             Show version information

Pass --host, --port and --password as flags on the root command, for example:

vbantxt --host=localhost --port=6980 --streamname=Command1 --help

Environment Variables

All flags have corresponding environment variables, prefixed with VBANTXT_:

#!/usr/bin/env bash

export VBANTXT_HOST=localhost
export VBANTXT_PORT=6980
export VBANTXT_STREAMNAME=Command1

Flags will override environment variables.

TOML Config

By default the config loader will look for a config in:

  • $XDG_CONFIG_HOME / vbantxt / config.toml (see os.UserConfigDir)
    • A custom config path may be passed with the --config/-C flag.

All flags have corresponding keys in the config file, for example:

host="gamepc.local"
port=6980
streamname="Command1"

Script files

The vbantxt CLI 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:

xargs vbantxt < script.txt

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

Matrix

Sending commands to VB-Audio Matrix is also possible, for example:

vbantxt "Point(ASIO128.IN[2],ASIO128.OUT[1]).dBGain = -8"

Logging

The --loglevel/-l flag allows you to control the verbosity of the application's logging output.

Acceptable values for this flag are:

  • debug
  • info
  • warn
  • error
  • fatal
  • panic

For example, to set the log level to debug, you can use:

vbantxt --loglevel=debug "bus[0].eq.on=1 bus[1].gain=-12.8"

The default log level is warn if the flag is not specified.

License

vbantxt is distributed under the terms of the MIT license.

Languages
Go 92.5%
Makefile 7.5%