mirror of
https://github.com/onyx-and-iris/voicemeeter-api-powershell.git
synced 2025-01-18 05:10:48 +00:00
obs example added
readme for obs example added config.psd1 added to gitignore
This commit is contained in:
parent
6cc43fa553
commit
7f5d92603e
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@ quick.ps1
|
||||
|
||||
lib/*.psd1
|
||||
**/*.log
|
||||
|
||||
config.psd1
|
||||
|
22
examples/obs/README.md
Normal file
22
examples/obs/README.md
Normal file
@ -0,0 +1,22 @@
|
||||
## About
|
||||
|
||||
Demonstrates how to sync Voicemeeter states with OBS scene switches.
|
||||
|
||||
## Requirements
|
||||
|
||||
- [OBS Studio 28+](https://obsproject.com/)
|
||||
- [OBSWebSocket for Powershell](https://github.com/onyx-and-iris/OBSWebSocket-Powershell)
|
||||
|
||||
## Use
|
||||
|
||||
This example assumes your OBS connection info saved in `config.psd1`, placed next to `Vm-Obs-Sync.ps1`:
|
||||
|
||||
```psd1
|
||||
@{
|
||||
hostname = "localhost"
|
||||
port = 4455
|
||||
password = "mystrongpassword"
|
||||
}
|
||||
```
|
||||
|
||||
Simply run the script and change current OBS scene.
|
47
examples/obs/Vm-Obs-Sync.ps1
Normal file
47
examples/obs/Vm-Obs-Sync.ps1
Normal file
@ -0,0 +1,47 @@
|
||||
Import-Module Voicemeeter
|
||||
Import-Module OBSWebSocket
|
||||
|
||||
$VerbosePreference = "Continue"
|
||||
|
||||
$info = @{
|
||||
START = "Toggling Strip 0 mute"
|
||||
BRB = "Setting Strip 0 gain to -8.3"
|
||||
END = "Setting Strip 0 mono to `$false"
|
||||
LIVE = "Setting Strip 0 color_x to 0.3"
|
||||
}
|
||||
|
||||
function CurrentProgramSceneChanged($data) {
|
||||
"Switched to scene " + $data.sceneName | Write-Host
|
||||
|
||||
switch ($data.SceneName) {
|
||||
"START" { $vmr.strip[0].mute = !$vmr.strip[0].mute }
|
||||
"BRB" { $vmr.strip[0].gain = -8.3 }
|
||||
"END" { $vmr.strip[0].mono = $true }
|
||||
"LIVE" { $vmr.strip[0].color_x = 0.3 }
|
||||
default { "Expected START, BRB, END or LIVE scene" | Write-Host }
|
||||
}
|
||||
$info[$data.SceneName] | Write-Host
|
||||
}
|
||||
|
||||
function ConnFromFile {
|
||||
$configpath = Join-Path $PSScriptRoot "config.psd1"
|
||||
return Import-PowerShellDataFile -Path $configpath
|
||||
}
|
||||
|
||||
function main {
|
||||
try {
|
||||
$vmr = Get-RemoteBasic
|
||||
$conn = ConnFromFile
|
||||
$r_client = Get-OBSRequest -hostname $conn.hostname -port $conn.port -pass $conn.password
|
||||
|
||||
$e_client = Get-OBSEvent -hostname $conn.hostname -port $conn.port -pass $conn.password
|
||||
$callbacks = @("CurrentProgramSceneChanged", ${function:CurrentProgramSceneChanged})
|
||||
$e_client.Register($callbacks)
|
||||
} finally {
|
||||
$r_client.TearDown()
|
||||
$e_client.TearDown()
|
||||
$vmr.Logout()
|
||||
}
|
||||
}
|
||||
|
||||
if ($MyInvocation.InvocationName -ne '.') { main }
|
Loading…
Reference in New Issue
Block a user