Audio input capture more or less running

This commit is contained in:
xenakios
2017-11-13 22:35:36 +02:00
parent c32e64a570
commit 76de3b12a5
7 changed files with 82 additions and 11 deletions

View File

@ -167,11 +167,17 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
return;
if (m_is_recording == true)
{
if (m_rec_pos + buffer.getNumSamples() < m_recbuffer.getNumSamples())
{
m_recbuffer.copyFrom(0, m_rec_pos, buffer, 0, 0, buffer.getNumSamples());
m_recbuffer.copyFrom(1, m_rec_pos, buffer, 1, 0, buffer.getNumSamples());
}
m_rec_pos += buffer.getNumSamples();
if (m_rec_pos >= m_max_reclen * getSampleRate())
{
m_is_recording = false;
// Set record buffer as strech source...
m_control->getStretchAudioSource()->setAudioBufferAsInputSource(&m_recbuffer, getSampleRate(),
m_max_reclen*getSampleRate());
}
return;
}
@ -220,15 +226,24 @@ void PaulstretchpluginAudioProcessor::setRecordingEnabled(bool b)
if (b == true)
{
m_is_recording = true;
m_recbuffer.setSize(2, m_max_reclen*getSampleRate());
m_recbuffer.setSize(2, m_max_reclen*getSampleRate()+4096);
m_recbuffer.clear();
m_rec_pos = 0;
}
else
{
m_is_recording = false;
m_control->getStretchAudioSource()->setAudioBufferAsInputSource(&m_recbuffer, getSampleRate(), m_rec_pos);
}
}
double PaulstretchpluginAudioProcessor::getRecordingPositionPercent()
{
if (m_is_recording==false)
return 0.0;
return 1.0 / m_recbuffer.getNumSamples()*m_rec_pos;
}
//==============================================================================
// This creates new instances of the plugin..
AudioProcessor* JUCE_CALLTYPE createPluginFilter()