[![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 vX.X.X` where `vX.X.X` is the version you require. #### GO GET Install voicemeeter-api-go package from your console to download the latest version. `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" ) func main() { kindId := "banana" vm := voicemeeter.NewRemote(kindId) vm.Login() vm.Strip[0].SetLabel("rode podmic") vm.Strip[0].SetMute(true) fmt.Printf("Strip 0 (%s) mute was set to %v\n", vm.Strip[0].GetLabel(), vm.Strip[0].GetMute()) vm.Logout() } ``` ## `kindId` Pass the kind of Voicemeeter as an argument. kindId may be: - `basic` - `banana` - `potato` ## `Remote Type` #### `vm.Strip` []t_strip slice containing both physicalStrip and virtualStrip types #### `vm.Bus` []t_bus slice containing both physicalBus and virtualBus types #### `vm.Button` []button slice containing button types, one for each macrobutton #### `vm.Command` pointer to command type, represents action type functions #### `vm.Vban` pointer to vban type, containing both vbanInStream and vbanOutStream slices #### `vm.Device` pointer to device type, represents physical input/output hardware devices #### `vm.Recorder` pointer to recorder type, represents the recorder #### `vm.Type()` returns the type of Voicemeeter as a string #### `vm.Version()` returns the version of Voicemeeter as a string #### `vm.SendText(