From addab6e9bee35585bef3b4a567e691d011cc7a45 Mon Sep 17 00:00:00 2001 From: BERTHAUT Florent Date: Fri, 8 May 2020 11:50:19 +0200 Subject: [PATCH] Fixed volume control --- src/gdpd.cpp | 24 +++++++++++++++++------- src/gdpd.hpp | 9 ++++++++- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/gdpd.cpp b/src/gdpd.cpp index da5956d..fbdc24c 100644 --- a/src/gdpd.cpp +++ b/src/gdpd.cpp @@ -17,11 +17,8 @@ void Gdpd::_register_methods() { int Gdpd::audioCallback(void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *userData){ Gdpd* gdpd = static_cast(userData); - int ticks = nBufferFrames / 64; - gdpd->m_pd.processFloat(ticks, (float*)inputBuffer, (float*)outputBuffer); - for(int b=0; bget_volume(); - } + gdpd->processAudio(outputBuffer, inputBuffer, nBufferFrames, streamTime, + status, userData); return 0; } @@ -63,8 +60,8 @@ int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) { unsigned int sr = m_audio.getDeviceInfo(outParams.deviceId).preferredSampleRate; outParams.deviceId = m_audio.getDefaultOutputDevice(); inParams.deviceId = m_audio.getDefaultOutputDevice(); - outParams.nChannels = nbInputs; - inParams.nChannels = nbOutputs; + outParams.nChannels = m_nbInputs = nbInputs; + inParams.nChannels = m_nbOutputs = nbOutputs; m_bufferFrames = 128; RtAudio::StreamOptions options; @@ -89,6 +86,19 @@ int Gdpd::init(int nbInputs, int nbOutputs, int sampleRate) { return 0; } +void Gdpd::processAudio(void *outputBuffer, void *inputBuffer, + unsigned int nBufferFrames, double streamTime, + RtAudioStreamStatus status, void *userData) { + int ticks = nBufferFrames / libpd_blocksize(); + + m_pd.processFloat(ticks, (float*)inputBuffer, (float*)outputBuffer); + + //volume control on the output + for(int b=0; b