fd30a5ef0d
merge subject classes. modify obsevers callback ensure sunvalley theme loaded only once. minor version bump |
||
---|---|---|
configs | ||
doc_imgs | ||
vmcompact | ||
__main__.py | ||
.gitignore | ||
CHANGELOG.md | ||
INSTALLATION.md | ||
LICENSE | ||
poetry.lock | ||
pyproject.toml | ||
README.md |
Voicemeeter Compact
A compact Voicemeeter remote app, works locally and over LAN.
For an outline of past/future changes refer to: CHANGELOG
Prerequisites
- Voicemeeter (Basic v1.0.8.2), (Banana v2.0.6.2) or (Potato v3.0.2.2)
- Python 3.11+
Installation
For a step-by-step guide click here
pip install voicemeeter-compact
Usage
Example __main__.py
file:
import voicemeeterlib
import vmcompact
def main():
# pass the kind_id and the vm object to the app
with voicemeeterlib.api(kind_id) as vm:
app = vmcompact.connect(kind_id, vm)
app.mainloop()
if __name__ == "__main__":
# choose the kind of Voicemeeter (Local connection)
kind_id = "banana"
main()
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.
If the GUI looks like the above when you first load it, then no channels are labelled. From the menu, Configs->Load config
you may load an example config. Save your current Voicemeeter settings first :).
kind_id
Set the kind of Voicemeeter, kind_id may be:
basic
banana
potato
TOML Files
This is how your files should be organised. Wherever your __main__.py
file is located (after install this can be any location), configs
should be in the same location.
Directly inside of configs directory you may place an app.toml, vban.toml and a directory for each kind.
Inside each kind directory you may place as many custom toml configurations as you wish.
.
├── __main__.py
├── configs
├── app.toml
├── vban.toml
├── basic
├── example.toml
├── other_config.toml
├── streaming_config.toml
├── banana
├── example.toml
├── other.toml
├── ...
├── potato
├── example.toml
├── ...
Configs
app.toml
Configure certain startup states for the app.
-
profiles
Configure a profile to load on app startup. Don't include the .toml extension in the profile name. -
theme
By default the app loads up the Sun Valley light or dark theme by @rdbende. You have the option to load up the app without any theme loaded. Simply setenabled
to false andmode
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 setextends_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. -
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.
vban.toml
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.
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:
[connection-1]
kind = 'banana'
ip = '192.168.1.2'
streamname = 'worklaptop'
port = 6980
[connection-2]
kind = 'potato'
ip = '192.168.1.3'
streamname = 'streampc'
port = 6990
basic/ banana/ potato/
Three example user configs 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. Check the 'multiple-parameters' section for more info:
Python Interface for Voicemeeter API
User configs may be loaded at any time via the menu.
Special Thanks
Vincent Burel for creating Voicemeeter, its SDK, the C Remote API, the RT Packet service and Streamer View app!
Rdbende for creating the beautiful Sun Valley Tkinter theme and adding it to Pypi!