1. Fader Control
The plugin defines two main faders that allow for smooth volume adjustment:
| Fader |
Description |
Scale |
| Input Volume |
Adjusts microphone volume (Input). |
0% - 100% |
| Output Volume |
Adjusts headphone/speaker volume (Output). |
0% - 200% |
Both faders support Mute (microphone muting) and Deafen (output muting) functions.
2. Button Support
Physical buttons can be assigned to toggle specific voice settings:
- Mute: Mutes the microphone. (Unmuting also automatically disables the Deafen state).
- Deafen: Completely silences all audio (both microphone and headphones).
🛠 Operating Mechanisms
Authorization and Connection
- Upon startup, the plugin attempts to connect to a running Discord instance.
- If no token is found, the plugin requests user authorization within the Discord app (required permissions:
rpc, rpc.activities.write, rpc.voice.read, rpc.voice.write).
- The access token is saved in the configuration to prevent the need for repeated logins.
State Synchronization
The plugin ensures that the state of the physical controller is always aligned with the application:
- RPC Events: It listens for
VOICE_SETTINGS_UPDATE events—any change made within Discord instantly updates the MIDI controller.
- Interval Sync: An additional control synchronization is performed every 30 seconds (
syncGap).
- Normalization: The code automatically handles property naming discrepancies (e.g., mapping
noise_suppression to noiseSuppression).
1. Fader Control
The plugin defines two main faders that allow for smooth volume adjustment:
Both faders support Mute (microphone muting) and Deafen (output muting) functions.
2. Button Support
Physical buttons can be assigned to toggle specific voice settings:
🛠 Operating Mechanisms
Authorization and Connection
rpc,rpc.activities.write,rpc.voice.read,rpc.voice.write).State Synchronization
The plugin ensures that the state of the physical controller is always aligned with the application:
VOICE_SETTINGS_UPDATEevents—any change made within Discord instantly updates the MIDI controller.syncGap).noise_suppressiontonoiseSuppression).