[![Go Reference](https://pkg.go.dev/badge/github.com/onyx-and-iris/voicemeeter-api-go.svg)](https://pkg.go.dev/github.com/onyx-and-iris/voicemeeter-api-go) # A Go Wrapper for Voicemeeter API This package offers a Go interface for the Voicemeeter Remote C API. For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md) ## Tested against - Basic 1.0.8.2 - Banana 2.0.6.2 - Potato 3.0.2.2 ## Requirements - [Voicemeeter](https://voicemeeter.com/) - Go 1.18 or greater ## Installation ### GO.MOD Add to your `go.mod` file: `require github.com/onyx-and-iris/voicemeeter-api-go v1.0.2` ### GO GET Install voicemeeter-api-go package from your console `go get github.com/onyx-and-iris/voicemeeter-api-go` ## `Use` #### `main.go` ```go package main import ( "fmt" "github.com/onyx-and-iris/voicemeeter-api-go/voicemeeter" ) func main() { kindId := "banana" vmRem := voicemeeter.GetRemote(kindId) vmRem.Login() vmRem.Strip[0].SetLabel("rode podmic") vmRem.Strip[0].SetMute(true) fmt.Printf("Strip 0 (%s) mute was set to %v\n", vmRem.Strip[0].GetLabel(), vmRem.Strip[0].GetMute()) vmRem.Logout() } ``` ## `kindId` Pass the kind of Voicemeeter as an argument. kindId may be: - `basic` - `banana` - `potato` ## `Remote Type` #### `vmRem.Strip` []t_strip slice containing both physicalStrip and virtualStrip types #### `vmRem.Bus` []t_bus slice containing both physicalBus and virtualBus types #### `vmRem.Button` []button slice containing button types, one for each macrobutton #### `vmRem.Command` pointer to command type, represents action type functions #### `vmRem.Vban` pointer to vban type, containing both vbanInStream and vbanOutStream slices #### `vmRem.Device` pointer to device type, represents physical input/output hardware devices #### `vmRem.Recorder` pointer to recorder type, represents the recorder #### `vmRem.Type()` returns the type of Voicemeeter as a string #### `vmRem.Version()` returns the version of Voicemeeter as a string #### `vmRem.SendText(