From 2f1302d97ca1aa3833359968fa73a0551ae15af5 Mon Sep 17 00:00:00 2001 From: onyx-and-iris <75868496+onyx-and-iris@users.noreply.github.com> Date: Mon, 11 Apr 2022 23:48:28 +0100 Subject: [PATCH] add readme. add readme. --- README.md | 76 ++++++++++++++++++++++++++++++++++++++-- horizontal_extended.png | Bin 0 -> 16568 bytes nolabels.png | Bin 0 -> 6490 bytes vertical_extended.png | Bin 0 -> 19848 bytes 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 horizontal_extended.png create mode 100644 nolabels.png create mode 100644 vertical_extended.png diff --git a/README.md b/README.md index 8aeff47..6f3df25 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,74 @@ -# voicemeeter-compact -voicemeeter-compact +[![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) + +![Image of app in vertical extended mode](horizontal_extended.png) +# Voicemeeter Compact +## Prerequisites +- Voicemeeter 1 (Basic), 2 (Banana) or 3 (Potato) +- Python 3.9+ + +## Installation +``` +git clone https://github.com/onyx-and-iris/voicemeeter-compact +cd voicemeeter-compact +pip install . +``` + +## Usage +Example `__main__.py` file: +```python +import voicemeeter +import vmcompact + + +if __name__ == "__main__": + # choose the kind of Voicemeeter (Local connection) + kind_id = "banana" + + # hide can be used to enable/disable the Voicemeeter GUI + # if hidden the audio engine will still start and the app should work as normal but the main VM GUI will not display, + # nor will there be an icon in the taskbar. + voicemeeter.launch(kind_id, hide=False) + + # 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() +``` + + +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. +![Image of unlabelled app](nolabels.png) +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 :). + +## Config Files +### app.toml +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. + +- `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. + +- `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. + +- `submixes` +Select the default submix bus when Submix frame is shown. For example, a dedicated bus for OBS. + +### vban.toml +Configure as many vban connections as you wish. This allows the app too work over a LAN connection as well as with a local Voicemeeter installation. If you don't wish to use any vban connections I advise you to delete this file. + +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. + +## Profiles +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 is supported. For a detailed description of parameter coverage see: +[Voicemeeter Remote API Python](https://github.com/onyx-and-iris/voicemeeter-api-python)[VBAN CMD API Python](https://github.com/onyx-and-iris/vban-cmd-python) +[VBAN CMD API Python](https://github.com/onyx-and-iris/vban-cmd-python) +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 and Streamer View app! +[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. +[Rdbende](https://github.com/rdbende) for creating the beautiful Sun Valley Tkinter theme. diff --git a/horizontal_extended.png b/horizontal_extended.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca8ad1ad94db6e58acfe9cb458dbd815007a471 GIT binary patch literal 16568 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 Ib4q9e05A0g@c;k- literal 0 HcmV?d00001