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())