diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj b/Builds/VisualStudio2012/open-ephys.vcxproj index 14ed7842273bd6474165b7952f7e1e28b2ef49a5..9cb8ddb36bde8026bab72c4fe3373de68798f628 100644 --- a/Builds/VisualStudio2012/open-ephys.vcxproj +++ b/Builds/VisualStudio2012/open-ephys.vcxproj @@ -98,7 +98,7 @@ <ProgramDataBaseFileName>$(IntDir)\</ProgramDataBaseFileName> <WarningLevel>Level4</WarningLevel> <SuppressStartupBanner>true</SuppressStartupBanner> - <MultiProcessorCompilation>true</MultiProcessorCompilation> + <MultiProcessorCompilation>false</MultiProcessorCompilation> </ClCompile> <ResourceCompile> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> diff --git a/Source/Processors/AudioNode.cpp b/Source/Processors/AudioNode.cpp index a804995f40141cd1993708d94bdd84d16ddfb929..6abd062f2051402f741bffa88161671064f1c96c 100755 --- a/Source/Processors/AudioNode.cpp +++ b/Source/Processors/AudioNode.cpp @@ -336,7 +336,7 @@ void AudioNode::process(AudioSampleBuffer& buffer, // std::cout << "Samples remaining in incoming buffer: " << orphanedSamples << std::endl; - if (orphanedSamples > 0) + if (orphanedSamples > 0 && (samplesInBackupBuffer + orphanedSamples < backupBuffer->getNumSamples())) { backupBuffer->addFrom(0, // destination channel samplesInBackupBuffer, // destination start sample @@ -356,7 +356,11 @@ void AudioNode::process(AudioSampleBuffer& buffer, gain // gain to apply ); - } + } + else { + samplesInBackupBuffer = 0; // just throw out the buffer in the case of an overrun + // not ideal, but the output still sounds fine + } // Simple implementation of a "noise gate" on audio output expander.process(buffer.getWritePointer(0), // left channel