Enable stereo microphone input and set the highest bitrate for Discord Web.
// ==UserScript==
// @name Discord Web Stereo and High Bitrate
// @namespace http://tampermonkey.net/
// @version 0.5
// @description Enable stereo microphone input and set the highest bitrate for Discord Web.
// @match https://discord.com/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// Hook into UnifiedConnection.setTransceiverEncodingParameters
const hookSetTransceiverEncodingParameters = () => {
const originalSetParameters = UnifiedConnection.prototype.setTransceiverEncodingParameters;
UnifiedConnection.prototype.setTransceiverEncodingParameters = function(parameters) {
if (parameters && parameters.encodings) {
for (const encoding of parameters.encodings) {
encoding.maxBitrate = 1329600; // Set this to the desired bitrate (1329.60 kbps)
encoding.channels = 2; // Enable stereo
}
}
return originalSetParameters.apply(this, arguments);
};
};
// Hook into setTransportOptions
const hookSetTransportOptions = () => {
const originalSetTransportOptions = RTCRtpSender.prototype.setTransportOptions;
RTCRtpSender.prototype.setTransportOptions = function(options) {
if (options && options.audio && options.audio.transportOptions) {
options.audio.transportOptions.encodingParams = {
channels: 2 // Enable stereo
};
}
return originalSetTransportOptions.apply(this, arguments);
};
};
// Initialize hooks when the page loads
const init = () => {
hookSetTransceiverEncodingParameters();
hookSetTransportOptions();
};
// Wait for the Discord Web app to fully load before initializing
window.addEventListener('load', init);
})();