From 83f7b2943c772c82c3f9096a6d519387c68525c0 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 10:59:03 -0700 Subject: [PATCH 1/8] comment out the FreeVerb effect to check mixer performance --- audio-mixer/src/main.cpp | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 9b6d6032ef..ac3c1ade6f 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -220,40 +220,40 @@ int main(int argc, const char* argv[]) { numSamplesDelay = PHASE_DELAY_AT_90 * sinRatio; weakChannelAmplitudeRatio = 1 - (PHASE_AMPLITUDE_RATIO_AT_90 * sinRatio); } - - FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); - FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); - - if (freeVerbIterator == agentFreeVerbs.end()) { - // setup the freeVerb effect for this source for this client - otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; - - otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); - otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); - otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); - } else { - otherAgentFreeVerb = freeVerbIterator->second; - } - - const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; - const float MAX_REVERB_DISTANCE = 160.0f; - - // higher value increases wetness more quickly with distance - const float WETNESS_CALC_EXPONENT_BASE = 2.0f; - - const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); - const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); - const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); - const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; - const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, - MAX_EXPONENT_INT); - - float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, - (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) - - DISTANCE_REVERB_LOG_REMAINDER); - effectMix *= EFFECT_MIX_RHS; - - otherAgentFreeVerb->setEffectMix(effectMix); +// +// FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); +// FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); +// +// if (freeVerbIterator == agentFreeVerbs.end()) { +// // setup the freeVerb effect for this source for this client +// otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; +// +// otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); +// otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); +// otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); +// } else { +// otherAgentFreeVerb = freeVerbIterator->second; +// } +// +// const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; +// const float MAX_REVERB_DISTANCE = 160.0f; +// +// // higher value increases wetness more quickly with distance +// const float WETNESS_CALC_EXPONENT_BASE = 2.0f; +// +// const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); +// const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); +// const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); +// const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; +// const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, +// MAX_EXPONENT_INT); +// +// float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, +// (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) +// - DISTANCE_REVERB_LOG_REMAINDER); +// effectMix *= EFFECT_MIX_RHS; +// +// otherAgentFreeVerb->setEffectMix(effectMix); } int16_t* goodChannel = (bearingRelativeAngleToSource > 0.0f) From 72325446265ecaad9fe0602795a9759fa973a945 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:04:40 -0700 Subject: [PATCH 2/8] uncomment the FreeVerb code --- audio-mixer/src/main.cpp | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index d84a995767..5ed19e6c60 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -220,40 +220,40 @@ int main(int argc, const char* argv[]) { numSamplesDelay = PHASE_DELAY_AT_90 * sinRatio; weakChannelAmplitudeRatio = 1 - (PHASE_AMPLITUDE_RATIO_AT_90 * sinRatio); } -// -// FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); -// FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); -// -// if (freeVerbIterator == agentFreeVerbs.end()) { -// // setup the freeVerb effect for this source for this client -// otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; -// -// otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); -// otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); -// otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); -// } else { -// otherAgentFreeVerb = freeVerbIterator->second; -// } -// -// const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; -// const float MAX_REVERB_DISTANCE = 160.0f; -// -// // higher value increases wetness more quickly with distance -// const float WETNESS_CALC_EXPONENT_BASE = 2.0f; -// -// const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); -// const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); -// const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); -// const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; -// const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, -// MAX_EXPONENT_INT); -// -// float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, -// (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) -// - DISTANCE_REVERB_LOG_REMAINDER); -// effectMix *= EFFECT_MIX_RHS; -// -// otherAgentFreeVerb->setEffectMix(effectMix); + + FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); + FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); + + if (freeVerbIterator == agentFreeVerbs.end()) { + // setup the freeVerb effect for this source for this client + otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; + + otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); + otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); + otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); + } else { + otherAgentFreeVerb = freeVerbIterator->second; + } + + const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; + const float MAX_REVERB_DISTANCE = 160.0f; + + // higher value increases wetness more quickly with distance + const float WETNESS_CALC_EXPONENT_BASE = 2.0f; + + const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); + const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); + const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); + const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; + const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, + MAX_EXPONENT_INT); + + float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, + (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) + - DISTANCE_REVERB_LOG_REMAINDER); + effectMix *= EFFECT_MIX_RHS; + + otherAgentFreeVerb->setEffectMix(effectMix); } int16_t* goodChannel = (bearingRelativeAngleToSource > 0.0f) From 8e4ef406cabaf8eda0fdc4d0f64075312c5183d0 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:11:57 -0700 Subject: [PATCH 3/8] Revert "uncomment the FreeVerb code" This reverts commit 72325446265ecaad9fe0602795a9759fa973a945. --- audio-mixer/src/main.cpp | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 5ed19e6c60..d84a995767 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -220,40 +220,40 @@ int main(int argc, const char* argv[]) { numSamplesDelay = PHASE_DELAY_AT_90 * sinRatio; weakChannelAmplitudeRatio = 1 - (PHASE_AMPLITUDE_RATIO_AT_90 * sinRatio); } - - FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); - FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); - - if (freeVerbIterator == agentFreeVerbs.end()) { - // setup the freeVerb effect for this source for this client - otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; - - otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); - otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); - otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); - } else { - otherAgentFreeVerb = freeVerbIterator->second; - } - - const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; - const float MAX_REVERB_DISTANCE = 160.0f; - - // higher value increases wetness more quickly with distance - const float WETNESS_CALC_EXPONENT_BASE = 2.0f; - - const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); - const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); - const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); - const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; - const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, - MAX_EXPONENT_INT); - - float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, - (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) - - DISTANCE_REVERB_LOG_REMAINDER); - effectMix *= EFFECT_MIX_RHS; - - otherAgentFreeVerb->setEffectMix(effectMix); +// +// FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); +// FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); +// +// if (freeVerbIterator == agentFreeVerbs.end()) { +// // setup the freeVerb effect for this source for this client +// otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; +// +// otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); +// otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); +// otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); +// } else { +// otherAgentFreeVerb = freeVerbIterator->second; +// } +// +// const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; +// const float MAX_REVERB_DISTANCE = 160.0f; +// +// // higher value increases wetness more quickly with distance +// const float WETNESS_CALC_EXPONENT_BASE = 2.0f; +// +// const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); +// const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); +// const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); +// const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; +// const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, +// MAX_EXPONENT_INT); +// +// float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, +// (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) +// - DISTANCE_REVERB_LOG_REMAINDER); +// effectMix *= EFFECT_MIX_RHS; +// +// otherAgentFreeVerb->setEffectMix(effectMix); } int16_t* goodChannel = (bearingRelativeAngleToSource > 0.0f) From 19ab1816bbe1e32e88af86ae17026c4ac4b3b6e8 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:45:33 -0700 Subject: [PATCH 4/8] remove the CPU hogging FreeVerb effect --- audio-mixer/src/AvatarAudioRingBuffer.cpp | 8 ---- audio-mixer/src/AvatarAudioRingBuffer.h | 8 ---- audio-mixer/src/main.cpp | 52 ----------------------- 3 files changed, 68 deletions(-) diff --git a/audio-mixer/src/AvatarAudioRingBuffer.cpp b/audio-mixer/src/AvatarAudioRingBuffer.cpp index 61d23f0fe6..6da4e20871 100644 --- a/audio-mixer/src/AvatarAudioRingBuffer.cpp +++ b/audio-mixer/src/AvatarAudioRingBuffer.cpp @@ -11,18 +11,10 @@ #include "AvatarAudioRingBuffer.h" AvatarAudioRingBuffer::AvatarAudioRingBuffer() : - _freeVerbs(), _shouldLoopbackForAgent(false) { } -AvatarAudioRingBuffer::~AvatarAudioRingBuffer() { - // enumerate the freeVerbs map and delete the FreeVerb objects - for (FreeVerbAgentMap::iterator verbIterator = _freeVerbs.begin(); verbIterator != _freeVerbs.end(); verbIterator++) { - delete verbIterator->second; - } -} - int AvatarAudioRingBuffer::parseData(unsigned char* sourceBuffer, int numBytes) { _shouldLoopbackForAgent = (sourceBuffer[0] == PACKET_HEADER_MICROPHONE_AUDIO_WITH_ECHO); return PositionalAudioRingBuffer::parseData(sourceBuffer, numBytes); diff --git a/audio-mixer/src/AvatarAudioRingBuffer.h b/audio-mixer/src/AvatarAudioRingBuffer.h index 1ca069b70c..7efb503f16 100644 --- a/audio-mixer/src/AvatarAudioRingBuffer.h +++ b/audio-mixer/src/AvatarAudioRingBuffer.h @@ -9,28 +9,20 @@ #ifndef __hifi__AvatarAudioRingBuffer__ #define __hifi__AvatarAudioRingBuffer__ -#include -#include - #include "PositionalAudioRingBuffer.h" -typedef std::map FreeVerbAgentMap; - class AvatarAudioRingBuffer : public PositionalAudioRingBuffer { public: AvatarAudioRingBuffer(); - ~AvatarAudioRingBuffer(); int parseData(unsigned char* sourceBuffer, int numBytes); - FreeVerbAgentMap& getFreeVerbs() { return _freeVerbs; } bool shouldLoopbackForAgent() const { return _shouldLoopbackForAgent; } private: // disallow copying of AvatarAudioRingBuffer objects AvatarAudioRingBuffer(const AvatarAudioRingBuffer&); AvatarAudioRingBuffer& operator= (const AvatarAudioRingBuffer&); - FreeVerbAgentMap _freeVerbs; bool _shouldLoopbackForAgent; }; diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index d84a995767..3618982a79 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -104,11 +104,6 @@ int main(int argc, const char* argv[]) { int16_t clientSamples[BUFFER_LENGTH_SAMPLES_PER_CHANNEL * 2] = {}; - // setup STK for the reverb effect - const float DISTANCE_REVERB_DAMPING = 0.6f; - const float DISTANCE_REVERB_ROOM_SIZE = 0.75f; - const float DISTANCE_REVERB_WIDTH = 0.5f; - gettimeofday(&startTime, NULL); while (true) { @@ -142,8 +137,6 @@ int main(int argc, const char* argv[]) { int numSamplesDelay = 0; float weakChannelAmplitudeRatio = 1.0f; - stk::FreeVerb* otherAgentFreeVerb = NULL; - if (otherAgent != agent) { glm::vec3 listenerPosition = agentRingBuffer->getPosition(); @@ -220,40 +213,6 @@ int main(int argc, const char* argv[]) { numSamplesDelay = PHASE_DELAY_AT_90 * sinRatio; weakChannelAmplitudeRatio = 1 - (PHASE_AMPLITUDE_RATIO_AT_90 * sinRatio); } -// -// FreeVerbAgentMap& agentFreeVerbs = agentRingBuffer->getFreeVerbs(); -// FreeVerbAgentMap::iterator freeVerbIterator = agentFreeVerbs.find(otherAgent->getAgentID()); -// -// if (freeVerbIterator == agentFreeVerbs.end()) { -// // setup the freeVerb effect for this source for this client -// otherAgentFreeVerb = agentFreeVerbs[otherAgent->getAgentID()] = new stk::FreeVerb; -// -// otherAgentFreeVerb->setDamping(DISTANCE_REVERB_DAMPING); -// otherAgentFreeVerb->setRoomSize(DISTANCE_REVERB_ROOM_SIZE); -// otherAgentFreeVerb->setWidth(DISTANCE_REVERB_WIDTH); -// } else { -// otherAgentFreeVerb = freeVerbIterator->second; -// } -// -// const float WETNESS_DOUBLING_DISTANCE_FACTOR = 2.0f; -// const float MAX_REVERB_DISTANCE = 160.0f; -// -// // higher value increases wetness more quickly with distance -// const float WETNESS_CALC_EXPONENT_BASE = 2.0f; -// -// const float MAX_EXPONENT = logf(MAX_REVERB_DISTANCE) / logf(WETNESS_DOUBLING_DISTANCE_FACTOR); -// const int MAX_EXPONENT_INT = floorf(MAX_EXPONENT); -// const float DISTANCE_REVERB_LOG_REMAINDER = fmodf(MAX_EXPONENT, MAX_EXPONENT_INT); -// const float DISTANCE_REVERB_MAX_WETNESS = 1.0f; -// const float EFFECT_MIX_RHS = DISTANCE_REVERB_MAX_WETNESS / powf(WETNESS_DOUBLING_DISTANCE_FACTOR, -// MAX_EXPONENT_INT); -// -// float effectMix = powf(WETNESS_CALC_EXPONENT_BASE, -// (0.5f * logf(distanceSquareToSource) / logf(WETNESS_CALC_EXPONENT_BASE)) -// - DISTANCE_REVERB_LOG_REMAINDER); -// effectMix *= EFFECT_MIX_RHS; -// -// otherAgentFreeVerb->setEffectMix(effectMix); } int16_t* goodChannel = (bearingRelativeAngleToSource > 0.0f) @@ -280,17 +239,6 @@ int main(int argc, const char* argv[]) { int16_t currentSample = otherAgentBuffer->getNextOutput()[s]; - // apply the STK FreeVerb effect - if (otherAgentFreeVerb) { - currentSample = otherAgentFreeVerb->tick(currentSample); - - if (s >= BUFFER_LENGTH_SAMPLES_PER_CHANNEL - PHASE_DELAY_AT_90) { - // there is the possiblity this will be re-used as a delayed sample - // so store the reverbed sample so that is what will be pulled - otherAgentBuffer->getNextOutput()[s] = currentSample; - } - } - currentSample *= attenuationCoefficient; plateauAdditionOfSamples(goodChannel[s], currentSample); From 53fece29fa01edbb0b2b19520bbb8e7a3259e910 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:47:14 -0700 Subject: [PATCH 5/8] remove redundant calculation --- audio-mixer/src/main.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 3618982a79..955345b942 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -237,9 +237,7 @@ int main(int argc, const char* argv[]) { plateauAdditionOfSamples(delayedChannel[s], earlierSample); } - int16_t currentSample = otherAgentBuffer->getNextOutput()[s]; - - currentSample *= attenuationCoefficient; + int16_t currentSample = otherAgentBuffer->getNextOutput()[s] * attenuationCoefficient; plateauAdditionOfSamples(goodChannel[s], currentSample); From 115c39dbcff10938705c794bff1299ae7d28386e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:48:20 -0700 Subject: [PATCH 6/8] bring PHASE_DELAY_AT_90 constant above algorithim that uses it --- audio-mixer/src/main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 955345b942..cbe64706cd 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -124,8 +124,6 @@ int main(int argc, const char* argv[]) { // zero out the client mix for this agent memset(clientSamples, 0, sizeof(clientSamples)); - const int PHASE_DELAY_AT_90 = 20; - for (AgentList::iterator otherAgent = agentList->begin(); otherAgent != agentList->end(); otherAgent++) { if (((PositionalAudioRingBuffer*) otherAgent->getLinkedData())->willBeAddedToMix() && (otherAgent != agent || (otherAgent == agent && agentRingBuffer->shouldLoopbackForAgent()))) { @@ -205,6 +203,7 @@ int main(int argc, const char* argv[]) { glm::normalize(rotatedSourcePosition), glm::vec3(0.0f, 1.0f, 0.0f)); + const int PHASE_DELAY_AT_90 = 20; const float PHASE_AMPLITUDE_RATIO_AT_90 = 0.5; // figure out the number of samples of delay and the ratio of the amplitude From ecd03d7b4b3d94b3cfaed2d8c5d077683aab023e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:54:44 -0700 Subject: [PATCH 7/8] replace magic number 1 with sizeof --- interface/src/Audio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index cba5139c05..1f1f9cc335 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -129,7 +129,7 @@ int audioCallback (const void* inputBuffer, glm::vec3 headPosition = interfaceAvatar->getHeadJointPosition(); glm::quat headOrientation = interfaceAvatar->getHead().getOrientation(); - int leadingBytes = 1 + sizeof(headPosition) + sizeof(headOrientation); + int leadingBytes = sizeof(PACKET_HEADER_MICROPHONE_AUDIO_NO_ECHO) + sizeof(headPosition) + sizeof(headOrientation); // we need the amount of bytes in the buffer + 1 for type // + 12 for 3 floats for position + float for bearing + 1 attenuation byte From 233ce67379e0105a68ac1f9dcd6dab5652e45f20 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 6 Jun 2013 11:57:38 -0700 Subject: [PATCH 8/8] don't link STK library while not being used --- audio-mixer/CMakeLists.txt | 8 +------- audio-mixer/src/main.cpp | 2 -- injector/CMakeLists.txt | 8 +------- interface/CMakeLists.txt | 6 ------ libraries/audio/CMakeLists.txt | 8 +------- 5 files changed, 3 insertions(+), 29 deletions(-) diff --git a/audio-mixer/CMakeLists.txt b/audio-mixer/CMakeLists.txt index 7e83e6fc1a..eac2792883 100644 --- a/audio-mixer/CMakeLists.txt +++ b/audio-mixer/CMakeLists.txt @@ -18,10 +18,4 @@ include_glm(${TARGET_NAME} ${ROOT_DIR}) # link the shared hifi library include(${MACRO_DIR}/LinkHifiLibrary.cmake) link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR}) - -# link the stk library -set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk) -find_package(STK REQUIRED) -target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES}) -include_directories(${STK_INCLUDE_DIRS}) \ No newline at end of file +link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR}) \ No newline at end of file diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index cbe64706cd..7276a24594 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -24,8 +24,6 @@ #include #include #include -#include -#include #include "InjectedAudioRingBuffer.h" #include "AvatarAudioRingBuffer.h" diff --git a/injector/CMakeLists.txt b/injector/CMakeLists.txt index 83a650c62e..2c022b0e92 100644 --- a/injector/CMakeLists.txt +++ b/injector/CMakeLists.txt @@ -19,10 +19,4 @@ include_glm(${TARGET_NAME} ${ROOT_DIR}) include(${MACRO_DIR}/LinkHifiLibrary.cmake) link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR}) -link_hifi_library(avatars ${TARGET_NAME} ${ROOT_DIR}) - -# link the stk library -set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk) -find_package(STK REQUIRED) -target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES}) -include_directories(${STK_INCLUDE_DIRS}) \ No newline at end of file +link_hifi_library(avatars ${TARGET_NAME} ${ROOT_DIR}) \ No newline at end of file diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 5b0f94d7db..b2984b35bb 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -146,12 +146,6 @@ else (WIN32) include_directories(${PORTAUDIO_INCLUDE_DIRS}) target_link_libraries(${TARGET_NAME} ${PORTAUDIO_LIBRARIES}) - # link the stk library - set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk) - find_package(STK REQUIRED) - target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES}) - include_directories(${STK_INCLUDE_DIRS}) - # link required libraries on UNIX if (UNIX AND NOT APPLE) find_package(Threads REQUIRED) diff --git a/libraries/audio/CMakeLists.txt b/libraries/audio/CMakeLists.txt index 229f3dd49f..686986340f 100644 --- a/libraries/audio/CMakeLists.txt +++ b/libraries/audio/CMakeLists.txt @@ -19,10 +19,4 @@ link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR}) # link the threads library find_package(Threads REQUIRED) -target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT}) - -# link the stk library -set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk) -find_package(STK REQUIRED) -target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES}) -include_directories(${STK_INCLUDE_DIRS}) \ No newline at end of file +target_link_libraries(${TARGET_NAME} ${CMAKE_THREAD_LIBS_INIT}) \ No newline at end of file