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:
onyx-and-iris 2023-06-25 18:40:09 +01:00
parent 0970bfe0b5
commit d2a5fe197e
3 changed files with 118 additions and 22 deletions

4
.gitignore vendored
View File

@ -156,4 +156,6 @@ quick.py
#config
config.toml
vban.toml
vban.toml
.vscode/

View File

@ -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
View File

@ -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`