wavelink-knob
Point your keyboard's volume knob at a single Elgato Wave Link channel instead of Windows master volume.
- Status
- Active
- Started
- Aug 25, 2026
- Hardware
- Aula / Epomaker F99 Pro (or any knob that sends media keys)
I got a new keyboard with a knob on it, and in my setup the knob was next to useless.
The reason is Wave Link. Its entire purpose is splitting your audio into separate channels — game, music, mic, browser — each with its own level. The knob knows about exactly one thing: Windows master volume. So turning it moved all of them together, which is precisely what you don't want from software whose job is keeping them apart.
It seemed obvious that I should be able to cycle through the channels and adjust or mute whichever one I'm on. The knob is right there. That's all this does.
Getting there is slightly awkward, because the F99 Pro's knob isn't remappable. Its firmware offers two modes — volume, or RGB brightness — and you toggle between them by holding the knob down. That's the whole menu.
So instead of changing what the knob sends, this changes what "volume" means. The knob keeps emitting standard media Volume Up/Down. A small Python script listens for those, ignores Windows master volume entirely, and writes the level to one Wave Link channel over its local API.
The controls#
turn knob -> level of the currently selected channel
Scroll Lock -> cycle which channel the knob is aimed at
mute key -> mute / unmute that channel
Ctrl+Alt+Q -> quit
A small readout appears bottom-centre showing which channel you're on and where its level is, because otherwise you're turning a knob and guessing.
What you need#
Windows 11, Wave Link 3.x, and Python 3.9+. Wave Link 3.0 dropped the requirement to own Elgato hardware, so any microphone works.
Nothing here is actually specific to the F99 Pro. Any keyboard whose knob emits standard media Volume Up/Down keys will do.
Tuning it#
Everything adjustable sits at the top of wavelink_knob.py — the level change per
detent (STEP, default 0.02), which key cycles channels, which fader gets moved, and
whether to include a slot that behaves like normal system volume.
Start with python wavelink_knob.py --list. It connects, prints your channels, and
exits, which tells you in one step whether the hard part is working.
NOTE
Keep the keyboard in the mode where the knob sends volume keys. On the F99 Pro that means holding the knob until Caps Lock and Win flash.
Install steps and the full configuration table are in the repo. MIT licensed.