Browse Source

Fix wasm audio input quality

Signed-off-by: falkTX <falktx@falktx.com>
pull/506/head
falkTX 2 months ago
parent
commit
79e5339bef
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 24 additions and 42 deletions
  1. +24
    -42
      distrho/src/jackbridge/WebBridge.hpp

+ 24
- 42
distrho/src/jackbridge/WebBridge.hpp View File

@@ -224,51 +224,33 @@ struct WebBridge : NativeBridge {

var constraints = {};
// we need to use this weird awkward way for objects, otherwise build fails
constraints['audio'] = true;
constraints['video'] = false;
constraints['autoGainControl'] = {};
constraints['autoGainControl']['ideal'] = false;
constraints['echoCancellation'] = {};
constraints['echoCancellation']['ideal'] = false;
constraints['noiseSuppression'] = {};
constraints['noiseSuppression']['ideal'] = false;
constraints['channelCount'] = {};
constraints['channelCount']['min'] = 0;
constraints['channelCount']['ideal'] = numInputs;
constraints['latency'] = {};
constraints['latency']['min'] = 0;
constraints['latency']['ideal'] = 0;
constraints['sampleSize'] = {};
constraints['sampleSize']['min'] = 8;
constraints['sampleSize']['max'] = 32;
constraints['sampleSize']['ideal'] = 16;
// old property for chrome
constraints['googAutoGainControl'] = false;
constraints['audio'] = {};
constraints['audio']['autoGainControl'] = {};
constraints['audio']['autoGainControl']['ideal'] = false;
constraints['audio']['echoCancellation'] = {};
constraints['audio']['echoCancellation']['ideal'] = false;
constraints['audio']['noiseSuppression'] = {};
constraints['audio']['noiseSuppression']['ideal'] = false;
constraints['audio']['channelCount'] = {};
constraints['audio']['channelCount']['min'] = 0;
constraints['audio']['channelCount']['ideal'] = numInputs;
constraints['audio']['latency'] = {};
constraints['audio']['latency']['min'] = 0;
constraints['audio']['latency']['ideal'] = 0;
constraints['audio']['sampleSize'] = {};
constraints['audio']['sampleSize']['min'] = 8;
constraints['audio']['sampleSize']['max'] = 32;
constraints['audio']['sampleSize']['ideal'] = 16;
// old properties for chrome
constraints['audio']['mandatory'] = {};
constraints['audio']['mandatory']['googAutoGainControl'] = false;
constraints['audio']['mandatory']['googEchoCancellation'] = false;
constraints['audio']['mandatory']['googNoiseSuppression'] = false;
constraints['audio']['mandatory']['googHighpassFilter'] = false;
constraints['audio']['optional'] = {};

var success = function(stream) {
var tracks = stream.getAudioTracks();

// try to force as much as we can
for (var i in tracks) {
var track = tracks[i];

track.applyConstraints({'autoGainControl': { 'exact': false } })
.then(function(){console.log("Mic/Input auto-gain control has been disabled")})
.catch(function(){console.log("Cannot disable Mic/Input auto-gain")});

track.applyConstraints({'echoCancellation': { 'exact': false } })
.then(function(){console.log("Mic/Input echo-cancellation has been disabled")})
.catch(function(){console.log("Cannot disable Mic/Input echo-cancellation")});

track.applyConstraints({'noiseSuppression': { 'exact': false } })
.then(function(){console.log("Mic/Input noise-suppression has been disabled")})
.catch(function(){console.log("Cannot disable Mic/Input noise-suppression")});

track.applyConstraints({'googAutoGainControl': { 'exact': false } })
.then(function(){})
.catch(function(){});
}

WAB.captureStreamNode = WAB.audioContext['createMediaStreamSource'](stream);
WAB.captureStreamNode.connect(WAB.processor);
};


Loading…
Cancel
Save