From 39ee62608b213ab6509b5f3160cb157f2695e422 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 30 Sep 2014 11:35:53 -0700 Subject: [PATCH 1/4] ensure HAVE_SIXENSE is defined to define _sixenseLibrary --- interface/src/devices/SixenseManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/devices/SixenseManager.cpp b/interface/src/devices/SixenseManager.cpp index 28b125b6da..c3d694d06c 100644 --- a/interface/src/devices/SixenseManager.cpp +++ b/interface/src/devices/SixenseManager.cpp @@ -45,7 +45,7 @@ SixenseManager& SixenseManager::getInstance() { } SixenseManager::SixenseManager() : -#ifdef __APPLE__ +#if defined(HAVE_SIXENSE) && defined(__APPLE__) _sixenseLibrary(NULL), #endif _isInitialized(false), From 4e7bf0487b5ad90d1776696619d0cc03cac716dd Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 30 Sep 2014 12:50:50 -0700 Subject: [PATCH 2/4] Add attenuation setting on DS page --- assignment-client/src/audio/AudioMixer.cpp | 18 ++++++++++++++++-- assignment-client/src/audio/AudioMixer.h | 1 + domain-server/resources/describe-settings.json | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index 3670653493..133e7a1bcd 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -62,6 +62,7 @@ #include "AudioMixer.h" const float LOUDNESS_TO_DISTANCE_RATIO = 0.00001f; +const float DEFAULT_ATTENUATION_PER_DOUBLING_IN_DISTANCE = 0.18; const QString AUDIO_MIXER_LOGGING_TARGET_NAME = "audio-mixer"; @@ -82,6 +83,7 @@ AudioMixer::AudioMixer(const QByteArray& packet) : _trailingSleepRatio(1.0f), _minAudibilityThreshold(LOUDNESS_TO_DISTANCE_RATIO / 2.0f), _performanceThrottlingRatio(0.0f), + _attenuationPerDoublingInDistance(DEFAULT_ATTENUATION_PER_DOUBLING_IN_DISTANCE), _numStatFrames(0), _sumListeners(0), _sumMixes(0), @@ -104,7 +106,6 @@ AudioMixer::~AudioMixer() { } const float ATTENUATION_BEGINS_AT_DISTANCE = 1.0f; -const float ATTENUATION_AMOUNT_PER_DOUBLING_IN_DISTANCE = 0.18f; const float RADIUS_OF_HEAD = 0.076f; int AudioMixer::addStreamToMixForListeningNodeWithStream(AudioMixerClientData* listenerNodeData, @@ -210,7 +211,7 @@ int AudioMixer::addStreamToMixForListeningNodeWithStream(AudioMixerClientData* l if (shouldDistanceAttenuate && (distanceBetween >= ATTENUATION_BEGINS_AT_DISTANCE)) { // calculate the distance coefficient using the distance to this node float distanceCoefficient = 1 - (logf(distanceBetween / ATTENUATION_BEGINS_AT_DISTANCE) / logf(2.0f) - * ATTENUATION_AMOUNT_PER_DOUBLING_IN_DISTANCE); + * _attenuationPerDoublingInDistance); if (distanceCoefficient < 0) { distanceCoefficient = 0; @@ -740,6 +741,19 @@ void AudioMixer::run() { qDebug() << "Buffers inside this zone will not be attenuated inside a box with center at" << QString("%1, %2, %3").arg(destinationCenter.x).arg(destinationCenter.y).arg(destinationCenter.z); } + + const QString ATTENATION_PER_DOULING_IN_DISTANCE = "attenuation-per-doubling-in-distance"; + qDebug() << "contains:" << audioGroupObject.contains(ATTENATION_PER_DOULING_IN_DISTANCE); + if (audioGroupObject[ATTENATION_PER_DOULING_IN_DISTANCE].isString()) { + qDebug() << "isString"; + bool ok = false; + float attenuation = audioGroupObject[ATTENATION_PER_DOULING_IN_DISTANCE].toString().toFloat(&ok); + + if (ok) { + _attenuationPerDoublingInDistance = attenuation; + qDebug() << "Attenuation per doubling in distance changed to" << _attenuationPerDoublingInDistance; + } + } } int nextFrame = 0; diff --git a/assignment-client/src/audio/AudioMixer.h b/assignment-client/src/audio/AudioMixer.h index 6c25fe21d9..4d08d480f8 100644 --- a/assignment-client/src/audio/AudioMixer.h +++ b/assignment-client/src/audio/AudioMixer.h @@ -69,6 +69,7 @@ private: float _trailingSleepRatio; float _minAudibilityThreshold; float _performanceThrottlingRatio; + float _attenuationPerDoublingInDistance; int _numStatFrames; int _sumListeners; int _sumMixes; diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index 19c293b610..afb287d06b 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -51,6 +51,14 @@ "help": "Boxes for source and listener (corner x, corner y, corner z, size x, size y, size z, corner x, corner y, corner z, size x, size y, size z)", "placeholder": "no zone" }, + { + "name": "attenuation-per-doubling-in-distance", + "label": "Attenuattion per doubling in distance", + "help": "Factor between 0.0 and 1.0", + "placeholder": "0.18", + "default": "0.18", + "advanced": true + }, { "name": "dynamic-jitter-buffer", "type": "checkbox", From b571fb86ae6bd08c4b00bcf2f081ce732e7ab504 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 30 Sep 2014 12:53:33 -0700 Subject: [PATCH 3/4] Changed attenuation setting help --- domain-server/resources/describe-settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index afb287d06b..86d4da684b 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -54,7 +54,7 @@ { "name": "attenuation-per-doubling-in-distance", "label": "Attenuattion per doubling in distance", - "help": "Factor between 0.0 and 1.0", + "help": "Factor between 0.0 and 1.0 (0.0: No attenuation, 1.0: extreme attenuation)", "placeholder": "0.18", "default": "0.18", "advanced": true From 4c34571570044c6c9208eabde883bcca6e4b1fc1 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Tue, 30 Sep 2014 12:54:58 -0700 Subject: [PATCH 4/4] Removed debug --- assignment-client/src/audio/AudioMixer.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index 133e7a1bcd..ce373f4d33 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -743,12 +743,9 @@ void AudioMixer::run() { } const QString ATTENATION_PER_DOULING_IN_DISTANCE = "attenuation-per-doubling-in-distance"; - qDebug() << "contains:" << audioGroupObject.contains(ATTENATION_PER_DOULING_IN_DISTANCE); if (audioGroupObject[ATTENATION_PER_DOULING_IN_DISTANCE].isString()) { - qDebug() << "isString"; bool ok = false; float attenuation = audioGroupObject[ATTENATION_PER_DOULING_IN_DISTANCE].toString().toFloat(&ok); - if (ok) { _attenuationPerDoublingInDistance = attenuation; qDebug() << "Attenuation per doubling in distance changed to" << _attenuationPerDoublingInDistance;