MCPcopy Create free account
hub / github.com/DamRsn/NeuralNote / processBlock

Method processBlock

NeuralNote/Source/SourceAudioManager.cpp:45–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43}
44
45void SourceAudioManager::processBlock(const AudioBuffer<float>& inBuffer)
46{
47 if (mIsRecording) {
48 ScopedLock sl(mWriterLock);
49
50 // Write incoming audio to file at native sample rate
51 bool result = mThreadedWriter->write(inBuffer.getArrayOfReadPointers(), inBuffer.getNumSamples());
52 jassertquiet(result);
53 mNumSamplesAcquired += inBuffer.getNumSamples();
54 mDuration = static_cast<double>(mNumSamplesAcquiredDown) / BASIC_PITCH_SAMPLE_RATE;
55
56 // Downmix to mono
57 mInternalMonoBuffer.copyFrom(0, 0, inBuffer, 0, 0, inBuffer.getNumSamples());
58 for (int ch = 1; ch < inBuffer.getNumChannels(); ch++) {
59 mInternalMonoBuffer.addFrom(0, 0, inBuffer, ch, 0, inBuffer.getNumSamples());
60 }
61
62 mInternalMonoBuffer.applyGain(1.0f / static_cast<float>(inBuffer.getNumChannels()));
63
64 // Downsample to basic pitch sample rate
65 int num_samples_down = mDownSampler.processBlock(mInternalMonoBuffer.getReadPointer(0),
66 mInternalDownsampledBuffer.getWritePointer(0),
67 inBuffer.getNumSamples());
68 jassert(num_samples_down <= mInternalDownsampledBuffer.getNumSamples());
69
70 // Write downsampled audio to file at downsampled sample rate
71 bool result_down =
72 mThreadedWriterDown->write(mInternalDownsampledBuffer.getArrayOfReadPointers(), num_samples_down);
73 jassertquiet(result_down);
74
75 mNumSamplesAcquiredDown += num_samples_down;
76 }
77}
78
79void SourceAudioManager::startRecording()
80{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected