From bb201dfd8e9f1487b6b2825f8afbb3181958082a Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 30 May 2013 12:42:12 -0700 Subject: [PATCH] perform a test reverb effect --- audio-mixer/src/main.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 982ebc526c..05a0dd1bb9 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include "AudioRingBuffer.h" #include "PacketHeaders.h" @@ -104,6 +106,13 @@ int main(int argc, const char* argv[]) { int16_t clientSamples[BUFFER_LENGTH_SAMPLES_PER_CHANNEL * 2] = {}; + // setup STK for the reverb effect + stk::FreeVerb freeVerb; + freeVerb.setDamping(0.5f); + freeVerb.setRoomSize(0.5f); + freeVerb.setDamping(0.5f); + freeVerb.setWidth(0.5f); + gettimeofday(&startTime, NULL); while (true) { @@ -255,6 +264,13 @@ int main(int argc, const char* argv[]) { } } + // apply the FreeVerb to the clientSamples array + for (int s = 0; s < BUFFER_LENGTH_SAMPLES_PER_CHANNEL; s++) { + clientSamples[s] = freeVerb.tick(clientSamples[s], + clientSamples[s + BUFFER_LENGTH_SAMPLES_PER_CHANNEL]); + clientSamples[s + BUFFER_LENGTH_SAMPLES_PER_CHANNEL] = freeVerb.lastOut(1); + } + memcpy(clientPacket + 1, clientSamples, sizeof(clientSamples)); agentList->getAgentSocket()->send(agent->getPublicSocket(), clientPacket, BUFFER_LENGTH_BYTES + 1); }