voicemeeter-compact/README.md

169 lines
6.5 KiB
Markdown
Raw Normal View History

2022-04-11 23:48:28 +01:00
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/onyx-and-iris/voicemeeter-compact/blob/main/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![OS: Windows](https://img.shields.io/badge/os-windows-red)
2022-04-11 23:48:28 +01:00
![Image of app/potato size comparison](./doc_imgs/potatocomparisonsmaller.png)
2022-04-11 23:48:28 +01:00
# Voicemeeter Compact
A compact Voicemeeter remote app, works locally and over LAN.
For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md)
2022-04-11 23:48:28 +01:00
## Prerequisites
- Voicemeeter (Basic v1.0.8.2), (Banana v2.0.6.2) or (Potato v3.0.2.2)
- [Git for Windows](https://git-scm.com/download/win)
- Python 3.9+
2022-04-11 23:48:28 +01:00
## Installation
For a step-by-step guide [click here](INSTALLATION.md)
2022-04-19 21:58:56 +01:00
2022-04-11 23:48:28 +01:00
```
git clone https://github.com/onyx-and-iris/voicemeeter-compact
cd voicemeeter-compact
pip install .
```
## Usage
2022-04-11 23:48:28 +01:00
Example `__main__.py` file:
2022-04-11 23:48:28 +01:00
```python
import voicemeeter
import vmcompact
def main():
# pass the kind_id and the vmr object to the app
with voicemeeter.remote(kind_id) as vmr:
app = vmcompact.connect(kind_id, vmr)
app.mainloop()
2022-04-11 23:48:28 +01:00
if __name__ == "__main__":
# choose the kind of Voicemeeter (Local connection)
kind_id = "banana"
voicemeeter.launch(kind_id, hide=False)
main()
2022-04-11 23:48:28 +01:00
```
It's important to know that only labelled strips and buses will appear in the Channel frames. Removing a Channels label will cause the GUI to grow/shrink in real time.
2022-04-11 23:51:34 +01:00
![Image of unlabelled app](./doc_imgs/nolabels.png)
2022-04-11 23:50:58 +01:00
If the GUI looks like the above when you first load it, then no channels are labelled. From the menu, `Profiles->Load Profile` you may load an example config. Save your current Voicemeeter settings first :).
2022-04-19 23:29:16 +01:00
### kind_id
A _kind_id_ specifies a major Voicemeeter version. This may be one of:
- `basic`
- `banana`
- `potato`
2022-04-19 23:29:16 +01:00
## TOML Files
This is how your files should be organised. Wherever your `__main__.py` file is located (after install this can be any location), `config` and `profiles` directories
should be in the same location.
Regarding profiles, a directory for each kind should hold the profile files and in each there can be any number of config files. Example, a config for streaming, a config for general listening/movie watching or any other type of config.
2022-04-20 18:17:00 +01:00
.
2022-04-20 18:17:36 +01:00
├── `__main__.py`
2022-04-20 18:17:00 +01:00
├── configs
2022-04-20 18:17:00 +01:00
        ├── app.toml
2022-04-20 18:17:00 +01:00
        ├── vban.toml
2022-04-20 18:17:00 +01:00
├── profiles
2022-04-20 18:17:00 +01:00
        ├── basic
2022-04-20 18:17:00 +01:00
                ├── example.toml
2022-04-20 18:17:00 +01:00
                ├── other_config.toml
2022-04-20 18:17:00 +01:00
                ├── streaming_config.toml
2022-04-20 18:17:00 +01:00
        ├── banana
2022-04-20 18:17:00 +01:00
                ├── example.toml
2022-04-20 18:17:00 +01:00
                ├── other.toml
2022-04-20 18:17:00 +01:00
                ├── ...
2022-04-20 18:17:00 +01:00
        ├── potato
2022-04-20 18:17:00 +01:00
                ├── example.toml
2022-04-20 18:17:00 +01:00
                ├── ...
## Configs
2022-04-11 23:48:28 +01:00
### app.toml
2022-04-11 23:48:28 +01:00
Configure certain startup states for the app.
- `theme`
By default the app loads up the [Sun Valley light or dark theme](https://github.com/rdbende/Sun-Valley-ttk-theme) by @rdbende. When all 16 channels for Potato are labelled you may find the app becomes slower so you have the option to load up the app without any theme loaded. Simply set `enabled` to false and `mode` will take no effect.
2022-04-11 23:48:28 +01:00
- `extends`
Extending the app will show both strips and buses. In reduced mode only one or the other. This app will extend both horizontally and vertically, simply set `extends_horizontal` true or false accordingly.
2022-04-11 23:48:28 +01:00
- `channel`
For each channel labelframe the width and height may be adjusted which effects the spacing between widgets and the length of the scales and progressbars respectively.
- `mwscroll_step`
Sets the amount (in db) the gain slider moves with a single mousewheel step. Default 3.
- `submixes`
Select the default submix bus when Submix frame is shown. For example, a dedicated bus for OBS.
2022-04-11 23:48:28 +01:00
### vban.toml
2022-04-19 22:27:58 +01:00
Configure as many vban connections as you wish. This allows the app to work over a LAN connection as well as with a local Voicemeeter installation.
2022-04-11 23:48:28 +01:00
For vban connections to work correctly VBAN TEXT incoming stream MUST be configured correctly on the remote machine. Both pcs ought to be connected to a local private network and should be able to ping one another.
A valid vban.toml might look like this:
```toml
[connection-1]
kind = 'banana'
ip = '192.168.1.2'
streamname = 'streampc'
port = 6990
[connection-2]
kind = 'potato'
ip = '192.168.1.3'
streamname = 'worklaptop'
port = 6990
```
2022-04-11 23:48:28 +01:00
## Profiles
2022-04-12 01:55:54 +01:00
Three example profiles are included with the package, one for each kind of Voicemeeter. Use these to configure parameter startup states. Any parameter supported by the underlying interfaces may be used. For a detailed description of parameter coverage see:
2022-04-12 00:20:53 +01:00
2022-04-11 23:55:01 +01:00
[Voicemeeter Remote API Python](https://github.com/onyx-and-iris/voicemeeter-api-python)
2022-04-11 23:48:28 +01:00
[VBAN CMD API Python](https://github.com/onyx-and-iris/vban-cmd-python)
2022-04-12 00:21:37 +01:00
2022-04-11 23:48:28 +01:00
Profiles may be loaded at any time via the menu.
## Special Thanks
[Vincent Burel](https://github.com/vburel2018) for creating Voicemeeter, its SDK, the C Remote API, the RT Packet service and Streamer View app!
2022-04-11 23:55:01 +01:00
2022-04-11 23:48:28 +01:00
[Christian Volkmann](https://github.com/chvolkmann/voicemeeter-remote-python) for the detailed work that went into creating the underlying Remote API Python Interface.
Unfortunately, the Remote API Python Interface has `NOT` been open source licensed. I have raised an issue and asked directly and politely but so far no response. If a license is added in future I will update this section. Without an open source license there is no guarantee that in future this package may not be pulled down, without any notice.
2022-04-11 23:55:01 +01:00
[Rdbende](https://github.com/rdbende) for creating the beautiful Sun Valley Tkinter theme and adding it to Pypi!