voicemeeter-api-powershell/README.md
onyx-and-iris e1867d0731 Initial commit
Initial commit

Added readme
2021-04-28 17:38:36 +01:00

78 lines
1.8 KiB
Markdown

# Powershell Wrapper for Voicemeeter API
This wrapper was written in response to a request in the VB-AUDIO discord for
a way to invoke commands using Powershell. It is designed to be simple to use
but not every feature is added.
## Tested against
- Basic 1.0.7.8
- Banana 2.0.5.8
- Potato 3.0.1.8
You may have success with many commands in earlier versions but some commands
(example Macrobuttons) were only added to the API in later releases.
## Requirements
- Voicemeeter: https://voicemeeter.com/
- Powershell 5.1
## Use
You may use try, finally blocks to ensure you login and logout.
```powershell
. $PSScriptRoot\lib\voicemeeter.ps1
try {
# pass a Voicemeeter type to class Remote
$vmr = [Remote]::new('banana')
$vmr.Login()
# Set macrobutton with id 4, mode state to 1
$vmr.button[4].state = 1
$vmr.button[4].state
# Set strip and bus params
$vmr.strip[0].mono = 1
$vmr.strip[0].mono
$vmr.bus[1].mute = 0
$vmr.bus[1].mute
}
finally
{
$vmr.Logout()
}
```
Voicemeeter type can be one of:
- basic
- banana
- potato
There is no bounds checking in this wrapper, meaning if you attempt to set a
parameter that does not exist for that version of Voicemeeter the wrapper will
throw an error and crash. So make sure what you are settings actually exists.
### Macrobuttons
Three modes defined: state, stateonly and trigger.
- State runs associated scripts
- Stateonly does not run associated scripts
- Index range (0, 69)
```
$vmr.button[3].state = 1
$vmr.button[4].stateonly = 0
$vmr.button[5].trigger = 1
```
### Run tests
Run tests using invoke-pester in powershell console from test directory.
Alternatively you may use .\runall.ps1 which accepts two parameters:
- tag Run tests of this type
- num Run this number of tests
Current test types are 'higher' and 'lower'
Example:
`.\runall.ps1 -tag 'higher' -num 3`