Fix Reverb Zone settings to work correctly with new reverb.

This commit is contained in:
Ken Cooke 2016-03-24 12:59:52 -07:00
parent caf2595e13
commit c6ca984782
3 changed files with 15 additions and 14 deletions

View file

@ -370,13 +370,14 @@ void AudioMixer::sendAudioEnvironmentPacket(SharedNodePointer node) {
wetLevel = _zoneReverbSettings[i].wetLevel;
// Modulate wet level with distance to wall
float MIN_ATTENUATION_DISTANCE = 2.0f;
float MAX_ATTENUATION = -12; // dB
glm::vec3 distanceToWalls = (box.getDimensions() / 2.0f) - glm::abs(streamPosition - box.calcCenter());
float distanceToClosestWall = glm::min(distanceToWalls.x, distanceToWalls.z);
if (distanceToClosestWall < MIN_ATTENUATION_DISTANCE) {
wetLevel += MAX_ATTENUATION * (1.0f - distanceToClosestWall / MIN_ATTENUATION_DISTANCE);
}
//float MIN_ATTENUATION_DISTANCE = 2.0f;
//float MAX_ATTENUATION = -12; // dB
//glm::vec3 distanceToWalls = (box.getDimensions() / 2.0f) - glm::abs(streamPosition - box.calcCenter());
//float distanceToClosestWall = glm::min(distanceToWalls.x, distanceToWalls.z);
//if (distanceToClosestWall < MIN_ATTENUATION_DISTANCE) {
// wetLevel += MAX_ATTENUATION * (1.0f - distanceToClosestWall / MIN_ATTENUATION_DISTANCE);
//}
break;
}
}

View file

@ -308,7 +308,7 @@
"name": "reverb",
"type": "table",
"label": "Reverb Settings",
"help": "In this table you can set reverb levels for audio zones. For a medium-sized (e.g., 100 square meter) meeting room, try a decay time of around 1.5 seconds and a wet level of -10 db. For an airplane hangar or cathedral, try a decay time of 4 seconds and a wet level of -5 db.",
"help": "In this table you can set reverb levels for audio zones. For a medium-sized (e.g., 100 square meter) meeting room, try a decay time of around 1.5 seconds and a wet/dry mix of 25%. For an airplane hangar or cathedral, try a decay time of 4 seconds and a wet/dry mix of 50%.",
"numbered": true,
"columns": [
{
@ -325,9 +325,9 @@
},
{
"name": "wet_level",
"label": "Wet Level",
"label": "Wet/Dry Mix",
"can_set": true,
"placeholder": "(in db)"
"placeholder": "(in percent)"
}
]
}

View file

@ -565,10 +565,10 @@ void AudioClient::updateReverbOptions() {
_zoneReverbOptions.setReverbTime(_receivedAudioStream.getRevebTime());
reverbChanged = true;
}
//if (_zoneReverbOptions.getWetLevel() != _receivedAudioStream.getWetLevel()) {
// _zoneReverbOptions.setWetLevel(_receivedAudioStream.getWetLevel());
// reverbChanged = true;
//}
if (_zoneReverbOptions.getWetDryMix() != _receivedAudioStream.getWetLevel()) {
_zoneReverbOptions.setWetDryMix(_receivedAudioStream.getWetLevel());
reverbChanged = true;
}
if (_reverbOptions != &_zoneReverbOptions) {
_reverbOptions = &_zoneReverbOptions;