https://github.com/frando/studiox-switcher
Input channel switcher & silence detector for JACK
https://github.com/frando/studiox-switcher
Last synced: 11 days ago
JSON representation
Input channel switcher & silence detector for JACK
- Host: GitHub
- URL: https://github.com/frando/studiox-switcher
- Owner: Frando
- Created: 2021-07-19T17:24:25.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-07-23T09:10:48.000Z (almost 5 years ago)
- Last Synced: 2025-03-27T01:32:48.344Z (over 1 year ago)
- Language: Rust
- Size: 23.4 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# studiox-switcher
A input switcher and silence detector for JACK.
* Can switch between 3 stereo inputs
* A fallback channel is activated if the active input is below a volume threshold for some amount of seconds
* Channels may be switched via OSC and HTTP (TODO)
## Roadmap
- [x] Core DSP engine via Faust for switching, silence detection and level metering
- [x] JACK client with autoconnect
- [x] OSC interface for switching
- [ ] HTTP interface
- [ ] Web frontend
- [ ] Level meter on CLI and web frontend
- [ ] Authentication
## Installation
```
git clone https://github.com/Frando/studiox-switcher.git
cd studiox-switcher
cargo build --release
sudo cp rust_target/release/studiox-switcher /usr/local/bin
```
## Configuration & usage
`studiox-switcher` may be called with a `-c path/to/config.toml` option. In the config file, the labels and JACK connection target ports for inputs and outputs can be specified. See [`studiox-switcher.toml`](studiox-switcher.toml) for an example config file.
### Usage via OSC
`studiox-switcher` listens for OSC messages on port 7000. The only supported path is `/switcher` with two integers, the first being the input number (1-3) and the second either 0 or 1 to enable or disable the channel.
If more than one channel is enabled, the "higher" channel wins. If none is enabled, the fallback channel is on. If an enabled channel goes silent, the fallback channel kicks in.
Example: Enable channel 1
```
oscsend localhost 7000 /switcher ii 1 1
```