     func startShrinkage() -> Void {
         self.timer.invalidate();
         
-        initialVolume = Double(NSSound.systemVolume());
+        self.initialVolume = Double(NSSound.systemVolume());
         
-        delta = initialVolume / Double(interval);
+        // calculate change per interval from number of times timer is called
+        self.delta = self.initialVolume / (self.fadeLength / Double(self.interval));
         
         self.timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(self.changeVolume), userInfo: nil, repeats: true);
     }

        self.timer.invalidate();
        
        NSSound.setSystemVolume(Float(initialVolume));
    }
}

        self.initialVolume = 0.0;
        self.interval = 30;
        self.delta = 0.0;
        self.fadeLength = 1800.0;
    }
    
    /**
