Examples
Getting Started
Here’s some sample code to get started with this package that pings the utility’s daemon.
1import asyncio
2
3from goxlr import GoXLR
4from goxlr.types import Fader, Channel
5
6
7async def main():
8 async with GoXLR() as xlr:
9 await xlr.set_fader(Fader.A, Channel.Headphones)
10 await xlr.set_volume(Channel.Headphones, 127)
11
12
13if __name__ == "__main__":
14 asyncio.run(main())
Paging
This is an experimental implementation of paging faders using a json configuration. Uses the effects buttons to switch pages.
1import asyncio
2import json
3from goxlr import GoXLR
4from goxlr.types import Channel, Fader, Button
5
6
7with open("docs/examples/paging.json") as f:
8 pages = json.load(f)
9
10
11async def main():
12 async with GoXLR() as goxlr:
13 print("Connected to GoXLR")
14
15 while True:
16 page = goxlr.get_active_effect_preset().name.removeprefix("Preset")
17 page = (int(page) - 1) % len(pages) + 1
18
19 print(f"Page {page}")
20
21 faders = pages[str(page)]
22
23 for fader, data in faders.items():
24 channel = getattr(Channel, data["channel"])
25
26 await goxlr.set_fader(Fader[fader], channel)
27 await goxlr.set_scribble_text(Fader[fader], channel.name)
28 await goxlr.set_scribble_icon(Fader[fader], data["icon"])
29
30 presets = [
31 Button.EffectSelect1,
32 Button.EffectSelect2,
33 Button.EffectSelect3,
34 Button.EffectSelect4,
35 Button.EffectSelect5,
36 Button.EffectSelect6,
37 ]
38
39 await goxlr.wait_for_button(presets)
40 await goxlr.wait_for_button(presets, all_values=True, invert=True)
41
42
43asyncio.run(main())