@newgameplusinc/odyssey-audio-video-sdk-dev 1.0.263 → 1.0.264

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,13 +38,13 @@ class SpatialAudioChannel {
38
38
  // Master gain
39
39
  this.masterGainNode = this.audioContext.createGain();
40
40
  this.masterGainNode.gain.value = 1.0;
41
- // Master compressor
41
+ // Master compressor - gentle settings for voice clarity
42
42
  this.compressor = this.audioContext.createDynamicsCompressor();
43
- this.compressor.threshold.value = -15;
44
- this.compressor.knee.value = 40;
45
- this.compressor.ratio.value = 2.5;
46
- this.compressor.attack.value = 0.02;
47
- this.compressor.release.value = 0.25;
43
+ this.compressor.threshold.value = -24; // Higher threshold - only compress loud peaks
44
+ this.compressor.knee.value = 30; // Soft knee for natural transition
45
+ this.compressor.ratio.value = 3; // Gentle ratio for voice
46
+ this.compressor.attack.value = 0.003; // 3ms attack - catch transients but not too fast
47
+ this.compressor.release.value = 0.25; // 250ms release - smooth recovery
48
48
  // Connect master chain
49
49
  this.masterGainNode.connect(this.compressor);
50
50
  this.compressor.connect(this.audioContext.destination);
@@ -399,12 +399,13 @@ class SpatialAudioChannel {
399
399
  return { monoSplitter, monoGainL, monoGainR, monoMerger, stereoUpmixer };
400
400
  }
401
401
  createParticipantCompressor() {
402
+ // Per-participant compressor - light touch to preserve voice dynamics
402
403
  const compressor = this.audioContext.createDynamicsCompressor();
403
- compressor.threshold.value = -6;
404
- compressor.knee.value = 3;
405
- compressor.ratio.value = 20;
406
- compressor.attack.value = 0.001;
407
- compressor.release.value = 0.05;
404
+ compressor.threshold.value = -18; // Only compress loud speech
405
+ compressor.knee.value = 12; // Soft knee for natural sound
406
+ compressor.ratio.value = 4; // Moderate ratio (was 20:1 - way too aggressive)
407
+ compressor.attack.value = 0.003; // 3ms attack - catch transients naturally
408
+ compressor.release.value = 0.15; // 150ms release - smooth recovery, no pumping
408
409
  return compressor;
409
410
  }
410
411
  createFilters() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newgameplusinc/odyssey-audio-video-sdk-dev",
3
- "version": "1.0.263",
3
+ "version": "1.0.264",
4
4
  "description": "Odyssey Spatial Audio & Video SDK using MediaSoup for real-time communication",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",