From a3a6c7257766495751e9f0b1239a7a31acb227e1 Mon Sep 17 00:00:00 2001
From: Paul Kaplan <pkaplan@media.mit.edu>
Date: Wed, 9 Aug 2017 13:35:00 -0400
Subject: [PATCH] Adjust sound effects to playtest levels

---
 src/lib/audio/audio-effects.js | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/audio/audio-effects.js b/src/lib/audio/audio-effects.js
index 683568b69..b7ba65cb2 100644
--- a/src/lib/audio/audio-effects.js
+++ b/src/lib/audio/audio-effects.js
@@ -19,6 +19,7 @@ class AudioEffects {
     constructor (buffer, name) {
         // Some effects will modify the playback rate and/or number of samples.
         // Need to precompute those values to create the offline audio context.
+        const pitchRatio = Math.pow(2, 4 / 12); // A major third
         let sampleCount = buffer.length;
         let playbackRate = 1;
         switch (name) {
@@ -26,11 +27,11 @@ class AudioEffects {
             sampleCount = buffer.length + 0.25 * 3 * buffer.sampleRate;
             break;
         case effectTypes.FASTER:
-            playbackRate = 1.5;
+            playbackRate = pitchRatio;
             sampleCount = Math.floor(buffer.length / playbackRate);
             break;
         case effectTypes.SLOWER:
-            playbackRate = 0.5;
+            playbackRate = 1 / pitchRatio;
             sampleCount = Math.floor(buffer.length / playbackRate);
             break;
         case effectTypes.REVERSE:
@@ -51,10 +52,10 @@ class AudioEffects {
         let output;
         switch (this.name) {
         case effectTypes.LOUDER:
-            ({input, output} = new VolumeEffect(this.audioContext, 1.5));
+            ({input, output} = new VolumeEffect(this.audioContext, 1.25));
             break;
         case effectTypes.SOFTER:
-            ({input, output} = new VolumeEffect(this.audioContext, 0.5));
+            ({input, output} = new VolumeEffect(this.audioContext, 0.75));
             break;
         case effectTypes.ECHO:
             ({input, output} = new EchoEffect(this.audioContext, 0.25));
-- 
GitLab