|
|
@@ -82,6 +82,7 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() |
|
|
|
setPreBufferAmount(2); |
|
|
|
m_ppar.pitch_shift.enabled = true; |
|
|
|
m_ppar.freq_shift.enabled = true; |
|
|
|
m_ppar.filter.enabled = true; |
|
|
|
m_stretch_source->setOnsetDetection(0.0); |
|
|
|
m_stretch_source->setLoopingEnabled(true); |
|
|
|
m_stretch_source->setFFTWindowingType(1); |
|
|
@@ -108,7 +109,13 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() |
|
|
|
addParameter(new AudioParameterFloat("octavemix1_0", "1 octave up level", 0.0f, 1.0f, 0.0f)); // 18 |
|
|
|
addParameter(new AudioParameterFloat("octavemix15_0", "1 octave and fifth up level", 0.0f, 1.0f, 0.0f)); // 19 |
|
|
|
addParameter(new AudioParameterFloat("octavemix2_0", "2 octaves up level", 0.0f, 1.0f, 0.0f)); // 20 |
|
|
|
|
|
|
|
addParameter(new AudioParameterFloat("tonalvsnoisebw_0", "Tonal vs Noise BW", 0.74f, 1.0f, 0.74f)); // 21 |
|
|
|
addParameter(new AudioParameterFloat("tonalvsnoisepreserve_0", "Tonal vs Noise preserve", -1.0f, 1.0f, 0.5f)); // 22 |
|
|
|
addParameter(new AudioParameterFloat("filter_low_0", "Filter low", 20.0f, 10000.0f, 20.0f)); // 23 |
|
|
|
addParameter(new AudioParameterFloat("filter_high_0", "Filter high", 20.0f, 20000.0f, 20000.0f)); // 24 |
|
|
|
addParameter(new AudioParameterFloat("onsetdetect_0", "Onset detection", 0.0f, 1.0f, 0.0f)); // 25 |
|
|
|
addParameter(new AudioParameterBool("capture_enabled0", "Capture", false)); // 26 |
|
|
|
startTimer(1, 50); |
|
|
|
} |
|
|
|
|
|
|
|
PaulstretchpluginAudioProcessor::~PaulstretchpluginAudioProcessor() |
|
|
@@ -342,6 +349,12 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M |
|
|
|
m_ppar.octave.o15 = *getFloatParameter(cpi_octaves15); |
|
|
|
m_ppar.octave.o2 = *getFloatParameter(cpi_octaves2); |
|
|
|
m_ppar.octave.enabled = true; |
|
|
|
m_ppar.filter.low = *getFloatParameter(cpi_filter_low); |
|
|
|
m_ppar.filter.high = *getFloatParameter(cpi_filter_high); |
|
|
|
m_ppar.tonal_vs_noise.enabled = (*getFloatParameter(cpi_tonalvsnoisebw)) > 0.75; |
|
|
|
m_ppar.tonal_vs_noise.bandwidth = *getFloatParameter(cpi_tonalvsnoisebw); |
|
|
|
m_ppar.tonal_vs_noise.preserve = *getFloatParameter(cpi_tonalvsnoisepreserve); |
|
|
|
m_stretch_source->setOnsetDetection(*getFloatParameter(cpi_onsetdetection)); |
|
|
|
m_stretch_source->setLoopXFadeLength(*getFloatParameter(cpi_loopxfadelen)); |
|
|
|
double t0 = *getFloatParameter(cpi_soundstart); |
|
|
|
double t1 = *getFloatParameter(cpi_soundend); |
|
|
@@ -422,7 +435,7 @@ void PaulstretchpluginAudioProcessor::setRecordingEnabled(bool b) |
|
|
|
{ |
|
|
|
m_using_memory_buffer = true; |
|
|
|
m_current_file = File(); |
|
|
|
m_recbuffer.setSize(2, m_max_reclen*getSampleRate()+4096); |
|
|
|
m_recbuffer.setSize(2, m_max_reclen*getSampleRate()+4096,false,false,true); |
|
|
|
m_recbuffer.clear(); |
|
|
|
m_rec_pos = 0; |
|
|
|
callGUI(this,[this,lenbufframes](PaulstretchpluginAudioProcessorEditor* ed) |
|
|
@@ -486,6 +499,25 @@ double PaulstretchpluginAudioProcessor::getPreBufferingPercent() |
|
|
|
return m_buffering_source->getPercentReady(); |
|
|
|
} |
|
|
|
|
|
|
|
void PaulstretchpluginAudioProcessor::timerCallback(int id) |
|
|
|
{ |
|
|
|
if (id == 1) |
|
|
|
{ |
|
|
|
bool capture = getParameter(cpi_capture_enabled); |
|
|
|
if (capture == true && m_is_recording == false) |
|
|
|
{ |
|
|
|
setRecordingEnabled(true); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (capture == false && m_is_recording == true) |
|
|
|
{ |
|
|
|
setRecordingEnabled(false); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void PaulstretchpluginAudioProcessor::finishRecording(int lenrecording) |
|
|
|
{ |
|
|
|
m_is_recording = false; |
|
|
|