From 45961b2b64ad1d761a11dff6326876ae67b7a1f1 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 8 Aug 2013 16:00:50 -0700 Subject: [PATCH 1/3] Collision and click sounds improved --- interface/src/Application.cpp | 10 +++++++++- interface/src/Audio.cpp | 11 +++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 6d272b757c..4265f330c4 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -952,7 +952,15 @@ void Application::mousePressEvent(QMouseEvent* event) { _hoverVoxelOriginalColor[1] = _hoverVoxel.green; _hoverVoxelOriginalColor[2] = _hoverVoxel.blue; _hoverVoxelOriginalColor[3] = 1; - _audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY); + const float RED_CLICK_FREQUENCY = 1000.f; + const float GREEN_CLICK_FREQUENCY = 1250.f; + const float BLUE_CLICK_FREQUENCY = 1330.f; + const float MIDDLE_A_FREQUENCY = 440.f; + float frequency = MIDDLE_A_FREQUENCY + ((float)_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY + + (float)_hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + + (float)_hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; + + _audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY); _isHoverVoxelSounding = true; } diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 3e011f5e05..add56df80c 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -704,7 +704,7 @@ void Audio::addProceduralSounds(int16_t* inputBuffer, float speed = glm::length(_lastVelocity); float volume = VOLUME_BASELINE * (1.f - speed / MAX_AUDIBLE_VELOCITY); - int sample; + float sample; // // Travelling noise @@ -724,13 +724,16 @@ void Audio::addProceduralSounds(int16_t* inputBuffer, if (_collisionSoundMagnitude > COLLISION_SOUND_CUTOFF_LEVEL) { for (int i = 0; i < numSamples; i++) { t = (float) _proceduralEffectSample + (float) i; + sample = sinf(t * _collisionSoundFrequency) + sinf(t * _collisionSoundFrequency / DOWN_TWO_OCTAVES) + sinf(t * _collisionSoundFrequency / DOWN_FOUR_OCTAVES * UP_MAJOR_FIFTH); sample *= _collisionSoundMagnitude * COLLISION_SOUND_MAX_VOLUME; - inputBuffer[i] += sample; - outputLeft[i] += sample; - outputRight[i] += sample; + + + inputBuffer[i] += (int) sample; + outputLeft[i] += (int) sample; + outputRight[i] += (int) sample; _collisionSoundMagnitude *= _collisionSoundDuration; } } From d5a0b2ff93f2f34a18023e73acdbdaed889f4b58 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 8 Aug 2013 16:10:07 -0700 Subject: [PATCH 2/3] Fixes per review --- interface/src/Application.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7527c0ec54..4776f4a189 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -956,9 +956,10 @@ void Application::mousePressEvent(QMouseEvent* event) { const float GREEN_CLICK_FREQUENCY = 1250.f; const float BLUE_CLICK_FREQUENCY = 1330.f; const float MIDDLE_A_FREQUENCY = 440.f; - float frequency = MIDDLE_A_FREQUENCY + ((float)_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY + - (float)_hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + - (float)_hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; + float frequency = MIDDLE_A_FREQUENCY + + (_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY + + _hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + + _hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; _audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY); _isHoverVoxelSounding = true; From 0e1149a8ef057603a9cbae14ae9ac75ce502b969 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 8 Aug 2013 16:11:51 -0700 Subject: [PATCH 3/3] Fixes per review --- interface/src/Application.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4776f4a189..dab8d3353d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -956,10 +956,10 @@ void Application::mousePressEvent(QMouseEvent* event) { const float GREEN_CLICK_FREQUENCY = 1250.f; const float BLUE_CLICK_FREQUENCY = 1330.f; const float MIDDLE_A_FREQUENCY = 440.f; - float frequency = MIDDLE_A_FREQUENCY - + (_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY + - _hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + - _hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; + float frequency = MIDDLE_A_FREQUENCY + + (_hoverVoxel.red / 255.f * RED_CLICK_FREQUENCY + + _hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + + _hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; _audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY); _isHoverVoxelSounding = true;