2019-04-28 13:44:11 +01:00
# OBS-to-XAir
2022-09-27 09:25:25 +01:00
2022-11-08 18:24:42 +00:00
This is a small script that mutes, unmutes and toggles groups of channels on Behringer XAir Mixers depending on the current scene.
2019-04-28 14:43:26 +01:00
## Requirements
2022-09-27 09:25:25 +01:00
- The [obs-websocket-v5 plugin ](https://github.com/obsproject/obs-websocket/releases ) (Version 5.0.0+)
- Note, this now comes included with OBS 28+
- [obsws-python ](https://github.com/aatikturk/obsws-python )
- [xair-api ](https://github.com/onyx-and-iris/xair-api-python )
- Python 3.10 or greater
## Installation
- First install [latest version of Python ](https://www.python.org/downloads/ ).
2019-04-28 14:43:26 +01:00
2022-09-27 09:25:25 +01:00
- Ensure you tick `Add Python 3.x to PATH` during setup.
2019-04-28 14:43:26 +01:00
2022-09-27 09:25:25 +01:00
- Download the repository files with git or the green `Code` button. Then in command prompt:
2025-01-13 18:00:06 +00:00
```bash
2022-09-27 09:25:25 +01:00
cd OBS-to-XAir
pip install .
```
2019-04-28 14:43:26 +01:00
## Configuration
2022-09-27 09:25:25 +01:00
- Configure websocket settings within `OBS->Tools->obs-websocket Settings`
2019-04-28 14:43:26 +01:00
2025-01-13 18:00:06 +00:00
- Open the included `config.toml` , use it to:
- Set the obs connection info `host` , `port` and `password`
2019-04-28 14:43:26 +01:00
2025-01-13 18:00:06 +00:00
- Set the mixer's `kind_id` and `ip` .
- Mixer kind_id may be any one of (`XR12, XR16, XR18, MR18, X32`)
2019-04-28 14:43:26 +01:00
2025-01-13 18:00:06 +00:00
- Set the scene to channel mapping.
2019-04-28 14:43:26 +01:00
## Usage
2022-09-27 09:25:25 +01:00
Simply run the script, there will be confirmation of mixer connection and OBS connection if everything is successful. Switch between the defined scenes.
Closing OBS will stop the script.
2025-01-13 18:00:06 +00:00
#### CLI options
- `--config` : may be a full path to a config file or just a config name.
- If only a config name is passed the script will look in the following locations, returning the first config found:
- Current working directory (may be different from script location depending on how you launch the script)
- In the directory the script is located.
- `user home directory / .config / xair-obs`
- `--debug` , `--verbose` : separate logging levels. Debug will produce a lot of logging output.
2022-09-27 09:25:25 +01:00
## Further notes
Since this script relies upon two interfaces, `obsws-python` and `xair-api` this code can be readily modified to interact with any OBS events and set any xair parameters. Check the README files for each interface for further details.
2019-04-28 14:43:26 +01:00
## Compatibility
This script was developed and tested with:
2025-01-13 18:00:06 +00:00
- OBS 31.0.0
- obs-websocket 5.5.4
2022-11-08 18:24:42 +00:00
- A Midas MR18 and an X32 emulator.
2022-09-27 09:25:25 +01:00
## Special Thanks
2025-01-13 18:00:06 +00:00
- [Lebaston ](https://github.com/lebaston100 ) for the initial implementation of this script.
- OBS team and the obs-websocket developers.
- Behringer/Midas for making their mixers programmable!
- [Adem ](https://github.com/aatikturk ) for contributions towards the obsws-python clients.
- [Onyx-and-Iris ](https://github.com/onyx-and-iris ) for contributions towards the obsws-python and xair-api interfaces.