@@ -467,6 +467,7 @@ void StretchAudioSource::setProcessParameters(ProcessParameters * pars) | |||||
{ | { | ||||
if (*pars == m_ppar) | if (*pars == m_ppar) | ||||
return; | return; | ||||
//SpinLock::ScopedLockType | |||||
std::lock_guard <decltype(m_mutex)> locker(m_mutex); | std::lock_guard <decltype(m_mutex)> locker(m_mutex); | ||||
m_ppar = *pars; | m_ppar = *pars; | ||||
for (int i = 0; i < m_stretchers.size(); ++i) | for (int i = 0; i < m_stretchers.size(); ++i) | ||||
@@ -43,7 +43,7 @@ PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor (Pa | |||||
m_rec_enable.setButtonText("Capture"); | m_rec_enable.setButtonText("Capture"); | ||||
attachCallback(m_rec_enable, [this]() { processor.setRecordingEnabled(m_rec_enable.getToggleState()); }); | attachCallback(m_rec_enable, [this]() { processor.setRecordingEnabled(m_rec_enable.getToggleState()); }); | ||||
//addAndMakeVisible(&m_specvis); | //addAndMakeVisible(&m_specvis); | ||||
setSize (700, 30+pars.size()*25+200); | |||||
setSize (1000, 30+(pars.size()/2)*25+200); | |||||
m_wavecomponent.TimeSelectionChangedCallback = [this](Range<double> range, int which) | m_wavecomponent.TimeSelectionChangedCallback = [this](Range<double> range, int which) | ||||
{ | { | ||||
*processor.getFloatParameter(5) = range.getStart(); | *processor.getFloatParameter(5) = range.getStart(); | ||||
@@ -80,7 +80,9 @@ void PaulstretchpluginAudioProcessorEditor::resized() | |||||
for (int i = 0; i < m_parcomps.size(); ++i) | for (int i = 0; i < m_parcomps.size(); ++i) | ||||
{ | { | ||||
m_parcomps[i]->setBounds(1, 30 + i * 25, getWidth()-2, 24); | |||||
int gridx = i % 2; | |||||
int gridy = i / 2; | |||||
m_parcomps[i]->setBounds(1+gridx*(getWidth()/2), 30 + gridy * 25, getWidth()/2-2, 24); | |||||
} | } | ||||
int yoffs = m_parcomps.back()->getBottom() + 1; | int yoffs = m_parcomps.back()->getBottom() + 1; | ||||
m_wavecomponent.setBounds(1, yoffs, getWidth()-2, getHeight()-1-yoffs); | m_wavecomponent.setBounds(1, yoffs, getWidth()-2, getHeight()-1-yoffs); | ||||
@@ -98,7 +98,8 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() | |||||
addParameter(new AudioParameterFloat("compress0", "Compress", 0.0f, 1.0f, 0.0f)); // 9 | addParameter(new AudioParameterFloat("compress0", "Compress", 0.0f, 1.0f, 0.0f)); // 9 | ||||
addParameter(new AudioParameterFloat("loopxfadelen0", "Loop xfade length", 0.0f, 1.0f, 0.0f)); // 10 | addParameter(new AudioParameterFloat("loopxfadelen0", "Loop xfade length", 0.0f, 1.0f, 0.0f)); // 10 | ||||
addParameter(new AudioParameterFloat("numharmonics0", "Num harmonics", 0.0f, 100.0f, 0.0f)); // 11 | addParameter(new AudioParameterFloat("numharmonics0", "Num harmonics", 0.0f, 100.0f, 0.0f)); // 11 | ||||
addParameter(new AudioParameterFloat("harmonicsfreq0", "Harmonics base freq", 1.0f, 5000.0f, 100.0f)); // 12 | |||||
addParameter(new AudioParameterFloat("harmonicsfreq0", "Harmonics base freq", | |||||
NormalisableRange<float>(1.0f, 5000.0f, 1.00f, 0.5), 128.0f)); // 12 | |||||
addParameter(new AudioParameterFloat("harmonicsbw0", "Harmonics bandwidth", 0.1f, 200.0f, 25.0f)); // 13 | addParameter(new AudioParameterFloat("harmonicsbw0", "Harmonics bandwidth", 0.1f, 200.0f, 25.0f)); // 13 | ||||
addParameter(new AudioParameterBool("harmonicsgauss0", "Gaussian harmonics", false)); // 14 | addParameter(new AudioParameterBool("harmonicsgauss0", "Gaussian harmonics", false)); // 14 | ||||
addParameter(new AudioParameterFloat("octavemixm2_0", "2 octaves down level", 0.0f, 1.0f, 0.0f)); // 15 | addParameter(new AudioParameterFloat("octavemixm2_0", "2 octaves down level", 0.0f, 1.0f, 0.0f)); // 15 | ||||