mirror of
https://github.com/onyx-and-iris/vban-cmd-python.git
synced 2024-11-15 17:10:46 +00:00
version 2.0.0 section added to changelog
apply examples updated to include bus.eq.on Strip.{Comp,Gate,Denioser} sections added to readme
This commit is contained in:
parent
0970bfe0b5
commit
d2a5fe197e
2
.gitignore
vendored
2
.gitignore
vendored
@ -157,3 +157,5 @@ quick.py
|
||||
#config
|
||||
config.toml
|
||||
vban.toml
|
||||
|
||||
.vscode/
|
30
CHANGELOG.md
30
CHANGELOG.md
@ -11,6 +11,36 @@ Before any major/minor/patch bump all unit tests will be run to verify they pass
|
||||
|
||||
- [x]
|
||||
|
||||
## [2.0.0] - 2023-06-25
|
||||
|
||||
This update introduces some breaking changes:
|
||||
|
||||
### Changed
|
||||
|
||||
- `strip[i].comp` now references StripComp class
|
||||
- To change the comp knob you should now use the property `strip[i].comp.knob`
|
||||
- `strip[i].gate` now references StripGate class
|
||||
|
||||
- To change the gate knob you should now use the property `strip[i].gate.knob`
|
||||
|
||||
- `bus[i].eq` now references BusEQ class
|
||||
|
||||
- To set bus[i].{eq,eq_ab} as before you should now use bus[i].eq.on and bus[i].eq.ab
|
||||
|
||||
- new error class `VBANCMDConnectionError` raised when a connection fails or times out.
|
||||
|
||||
There are other non-breaking changes:
|
||||
|
||||
### Changed
|
||||
|
||||
- now using a producer thread to send events to the updater thread.
|
||||
- factory.request_vbancmd_obj simply raises a `VBANCMDError` if passed an incorrect kind.
|
||||
- module level loggers implemented (with class loggers as child loggers)
|
||||
|
||||
### Added
|
||||
|
||||
- `strip[i].eq` added to PhysicalStrip
|
||||
|
||||
## [1.8.0]
|
||||
|
||||
### Added
|
||||
|
106
README.md
106
README.md
@ -18,9 +18,9 @@ For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md)
|
||||
|
||||
## Tested against
|
||||
|
||||
- Basic 1.0.8.4
|
||||
- Banana 2.0.6.4
|
||||
- Potato 3.0.2.4
|
||||
- Basic 1.0.8.8
|
||||
- Banana 2.0.6.8
|
||||
- Potato 3.0.2.8
|
||||
|
||||
## Requirements
|
||||
|
||||
@ -71,19 +71,19 @@ class ManyThings:
|
||||
|
||||
def other_things(self):
|
||||
self.vban.bus[3].gain = -6.3
|
||||
self.vban.bus[4].eq = True
|
||||
self.vban.bus[4].eq.on = True
|
||||
info = (
|
||||
f"bus 3 gain has been set to {self.vban.bus[3].gain}",
|
||||
f"bus 4 eq has been set to {self.vban.bus[4].eq}",
|
||||
f"bus 4 eq has been set to {self.vban.bus[4].eq.on}",
|
||||
)
|
||||
print("\n".join(info))
|
||||
|
||||
|
||||
def main():
|
||||
kind_id = "banana"
|
||||
KIND_ID = "banana"
|
||||
|
||||
with vban_cmd.api(
|
||||
kind_id, ip="gamepc.local", port=6980, streamname="Command1"
|
||||
KIND_ID, ip="gamepc.local", port=6980, streamname="Command1"
|
||||
) as vban:
|
||||
do = ManyThings(vban)
|
||||
do.things()
|
||||
@ -93,7 +93,7 @@ def main():
|
||||
vban.apply(
|
||||
{
|
||||
"strip-2": {"A1": True, "B1": True, "gain": -6.0},
|
||||
"bus-2": {"mute": True},
|
||||
"bus-2": {"mute": True, "eq": {"on": True}},
|
||||
}
|
||||
)
|
||||
|
||||
@ -104,9 +104,9 @@ if __name__ == "__main__":
|
||||
|
||||
Otherwise you must remember to call `vban.login()`, `vban.logout()` at the start/end of your code.
|
||||
|
||||
## `kind_id`
|
||||
## `KIND_ID`
|
||||
|
||||
Pass the kind of Voicemeeter as an argument. kind_id may be:
|
||||
Pass the kind of Voicemeeter as an argument. KIND_ID may be:
|
||||
|
||||
- `basic`
|
||||
- `banana`
|
||||
@ -124,8 +124,6 @@ The following properties are available.
|
||||
- `label`: string
|
||||
- `gain`: float, -60 to 12
|
||||
- `A1 - A5`, `B1 - B3`: boolean
|
||||
- `comp`: float, from 0.0 to 10.0
|
||||
- `gate`: float, from 0.0 to 10.0
|
||||
- `limit`: int, from -40 to 12
|
||||
|
||||
example:
|
||||
@ -152,6 +150,69 @@ vban.strip[5].appmute("Spotify", True)
|
||||
vban.strip[5].appgain("Spotify", 0.5)
|
||||
```
|
||||
|
||||
##### Strip.Comp
|
||||
|
||||
The following properties are available.
|
||||
|
||||
- `knob`: float, from 0.0 to 10.0
|
||||
- `gainin`: float, from -24.0 to 24.0
|
||||
- `ratio`: float, from 1.0 to 8.0
|
||||
- `threshold`: float, from -40.0 to -3.0
|
||||
- `attack`: float, from 0.0 to 200.0
|
||||
- `release`: float, from 0.0 to 5000.0
|
||||
- `knee`: float, from 0.0 to 1.0
|
||||
- `gainout`: float, from -24.0 to 24.0
|
||||
- `makeup`: boolean
|
||||
|
||||
example:
|
||||
|
||||
```python
|
||||
print(vm.strip[4].comp.knob)
|
||||
```
|
||||
|
||||
Strip Comp properties are defined as write only.
|
||||
|
||||
`knob` defined for all verions, all other parameters potato only.
|
||||
|
||||
##### Strip.Gate
|
||||
|
||||
The following properties are available.
|
||||
|
||||
- `knob`: float, from 0.0 to 10.0
|
||||
- `threshold`: float, from -60.0 to -10.0
|
||||
- `damping`: float, from -60.0 to -10.0
|
||||
- `bpsidechain`: int, from 100 to 4000
|
||||
- `attack`: float, from 0.0 to 1000.0
|
||||
- `hold`: float, from 0.0 to 5000.0
|
||||
- `release`: float, from 0.0 to 5000.0
|
||||
|
||||
example:
|
||||
|
||||
```python
|
||||
vm.strip[2].gate.attack = 300.8
|
||||
```
|
||||
|
||||
Strip Gate properties are defined as write only, potato version only.
|
||||
|
||||
`knob` defined for all verions, all other parameters potato only.
|
||||
|
||||
##### Strip.Denoiser
|
||||
|
||||
The following properties are available.
|
||||
|
||||
- `knob`: float, from 0.0 to 10.0
|
||||
|
||||
strip.denoiser properties are defined as write only, potato version only.
|
||||
|
||||
##### Strip.EQ
|
||||
|
||||
The following properties are available.
|
||||
|
||||
- `on`: boolean
|
||||
- `ab`: boolean
|
||||
|
||||
Strip EQ properties are defined as write only, potato version only.
|
||||
|
||||
##### Gainlayers
|
||||
|
||||
- `gain`: float, from -60.0 to 12.0
|
||||
@ -183,8 +244,6 @@ Level properties will return -200.0 if no audio detected.
|
||||
The following properties are available.
|
||||
|
||||
- `mono`: boolean
|
||||
- `eq`: boolean
|
||||
- `eq_ab`: boolean
|
||||
- `mute`: boolean
|
||||
- `label`: string
|
||||
- `gain`: float, -60 to 12
|
||||
@ -196,6 +255,13 @@ vban.bus[4].eq = true
|
||||
print(vban.bus[0].label)
|
||||
```
|
||||
|
||||
##### Bus.EQ
|
||||
|
||||
The following properties are available.
|
||||
|
||||
- `on`: boolean
|
||||
- `ab`: boolean
|
||||
|
||||
##### Modes
|
||||
|
||||
The following properties are available.
|
||||
@ -325,9 +391,8 @@ opts = {
|
||||
"ip": "<ip address>",
|
||||
"streamname": "Command1",
|
||||
"port": 6980,
|
||||
"subs": {"ldirty": True},
|
||||
}
|
||||
with vban_cmd.api('banana', **opts) as vban:
|
||||
with vban_cmd.api('banana', ldirty=True, **opts) as vban:
|
||||
...
|
||||
```
|
||||
|
||||
@ -386,16 +451,15 @@ print(vban.event.get())
|
||||
|
||||
## VbanCmd class
|
||||
|
||||
`vban_cmd.api(kind_id: str, **opts: dict)`
|
||||
`vban_cmd.api(kind_id: str, **opts)`
|
||||
|
||||
You may pass the following optional keyword arguments:
|
||||
|
||||
- `ip`: str, ip or hostname of remote machine
|
||||
- `streamname`: str, name of the stream to connect to.
|
||||
- `port`: int=6980, vban udp port of remote machine.
|
||||
- `subs`: dict={"pdirty": True, "ldirty": False}, controls which updates to listen for.
|
||||
- `pdirty`: parameter updates
|
||||
- `ldirty`: level updates
|
||||
- `pdirty`: parameter updates
|
||||
- `ldirty`: level updates
|
||||
|
||||
#### `vban.pdirty`
|
||||
|
||||
@ -415,7 +479,7 @@ vban.sendtext("Strip[0].Mute=1;Bus[0].Mono=1")
|
||||
|
||||
#### `vban.public_packet`
|
||||
|
||||
Returns a Voicemeeter rt data packet object. Designed to be used internally by the interface but available for parsing through this read only property object. States not guaranteed to be current (requires use of dirty parameters to confirm).
|
||||
Returns a `VbanRtPacket`. Designed to be used internally by the interface but available for parsing through this read only property object. States not guaranteed to be current (requires use of dirty parameters to confirm).
|
||||
|
||||
### `Errors`
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user