Collision and click sounds improved

This commit is contained in:
Philip Rosedale 2013-08-08 16:00:50 -07:00
parent f2a9d0563a
commit 45961b2b64
2 changed files with 16 additions and 5 deletions

View file

@ -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;
}

View file

@ -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;
}
}