Experimented with adding a sound play range offset parameter but not going to be able to support it properly for now. Show debug build title in about screen.
This commit is contained in:
parent
178d68b0ec
commit
3171940a67
@ -257,3 +257,5 @@ inline bool is_in_range(T val, T start, T end)
|
|||||||
{
|
{
|
||||||
return val >= start && val <= end;
|
return val >= start && val <= end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#define SOUNDRANGE_OFFSET_ENABLED
|
||||||
|
@ -214,19 +214,27 @@ void PaulstretchpluginAudioProcessorEditor::resized()
|
|||||||
m_parcomps[cpi_tonalvsnoisepreserve]->setBounds(xoffs, yoffs, div - 1, 24);
|
m_parcomps[cpi_tonalvsnoisepreserve]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
xoffs = 1;
|
xoffs = 1;
|
||||||
yoffs += 25;
|
yoffs += 25;
|
||||||
m_parcomps[cpi_soundstart]->setBounds(xoffs, yoffs, div - 1, 24);
|
// filter here
|
||||||
xoffs += div;
|
|
||||||
m_parcomps[cpi_soundend]->setBounds(xoffs, yoffs, div - 1, 24);
|
|
||||||
xoffs = 1;
|
|
||||||
yoffs += 25;
|
|
||||||
m_parcomps[cpi_filter_low]->setBounds(xoffs, yoffs, div - 1, 24);
|
m_parcomps[cpi_filter_low]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
xoffs += div;
|
xoffs += div;
|
||||||
m_parcomps[cpi_filter_high]->setBounds(xoffs, yoffs, div - 1, 24);
|
m_parcomps[cpi_filter_high]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
|
|
||||||
xoffs = 1;
|
xoffs = 1;
|
||||||
yoffs += 25;
|
yoffs += 25;
|
||||||
|
|
||||||
m_parcomps[cpi_loopxfadelen]->setBounds(xoffs, yoffs, div - 1, 24);
|
m_parcomps[cpi_loopxfadelen]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
xoffs += div;
|
xoffs += div;
|
||||||
m_parcomps[cpi_onsetdetection]->setBounds(xoffs, yoffs, div - 1, 24);
|
m_parcomps[cpi_onsetdetection]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
|
xoffs = 1;
|
||||||
|
yoffs += 25;
|
||||||
|
m_parcomps[cpi_soundstart]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
|
xoffs += div;
|
||||||
|
m_parcomps[cpi_soundend]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||||
|
#ifdef SOUNDRANGE_OFFSET_ENABLED
|
||||||
|
yoffs += 25;
|
||||||
|
xoffs = 1;
|
||||||
|
m_parcomps[cpi_playrangeoffset]->setBounds(xoffs, yoffs, getWidth() - 2, 24);
|
||||||
|
#endif
|
||||||
yoffs += 25;
|
yoffs += 25;
|
||||||
int remain_h = getHeight() - 1 - yoffs -15;
|
int remain_h = getHeight() - 1 - yoffs -15;
|
||||||
m_spec_order_ed.setBounds(1, yoffs, getWidth() - 2, remain_h / 5 * 1);
|
m_spec_order_ed.setBounds(1, yoffs, getWidth() - 2, remain_h / 5 * 1);
|
||||||
@ -370,9 +378,13 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
|||||||
if (r == 3)
|
if (r == 3)
|
||||||
{
|
{
|
||||||
String fftlib = fftwf_version;
|
String fftlib = fftwf_version;
|
||||||
String juceversiontxt = String("JUCE ") + String(JUCE_MAJOR_VERSION) + "." + String(JUCE_MINOR_VERSION);
|
String juceversiontxt = String("JUCE ") + String(JUCE_MAJOR_VERSION) + "." + String(JUCE_MINOR_VERSION);
|
||||||
|
String title = g_plugintitle;
|
||||||
|
#ifdef JUCE_DEBUG
|
||||||
|
title += " (DEBUG)";
|
||||||
|
#endif
|
||||||
AlertWindow::showMessageBoxAsync(AlertWindow::InfoIcon,
|
AlertWindow::showMessageBoxAsync(AlertWindow::InfoIcon,
|
||||||
g_plugintitle,
|
title,
|
||||||
"Plugin for extreme time stretching and other sound processing\nBuilt on " + String(__DATE__) + " " + String(__TIME__) + "\n"
|
"Plugin for extreme time stretching and other sound processing\nBuilt on " + String(__DATE__) + " " + String(__TIME__) + "\n"
|
||||||
"Copyright (C) 2006-2011 Nasca Octavian Paul, Tg. Mures, Romania\n"
|
"Copyright (C) 2006-2011 Nasca Octavian Paul, Tg. Mures, Romania\n"
|
||||||
"(C) 2017-2018 Xenakios\n\n"
|
"(C) 2017-2018 Xenakios\n\n"
|
||||||
|
@ -142,6 +142,9 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
|
|||||||
addParameter(new AudioParameterBool("markdirty0", "Internal (don't use)", false)); // 31
|
addParameter(new AudioParameterBool("markdirty0", "Internal (don't use)", false)); // 31
|
||||||
m_inchansparam = new AudioParameterInt("numinchans0", "Num ins", 2, 8, 2); // 32
|
m_inchansparam = new AudioParameterInt("numinchans0", "Num ins", 2, 8, 2); // 32
|
||||||
addParameter(m_inchansparam); // 32
|
addParameter(m_inchansparam); // 32
|
||||||
|
#ifdef SOUNDRANGE_OFFSET_ENABLED
|
||||||
|
addParameter(new AudioParameterFloat("playrangeoffset_0", "Play offset", 0.0f, 1.0f, 0.0f)); // 33
|
||||||
|
#endif
|
||||||
auto& pars = getParameters();
|
auto& pars = getParameters();
|
||||||
for (const auto& p : pars)
|
for (const auto& p : pars)
|
||||||
m_reset_pars.push_back(p->getValue());
|
m_reset_pars.push_back(p->getValue());
|
||||||
@ -478,6 +481,14 @@ void copyAudioBufferWrappingPosition(const AudioBuffer<float>& src, AudioBuffer<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void sanitizeTimeRange(double& t0, double& t1)
|
||||||
|
{
|
||||||
|
if (t0 > t1)
|
||||||
|
std::swap(t0, t1);
|
||||||
|
if (t1 - t0 < 0.001)
|
||||||
|
t1 = t0 + 0.001;
|
||||||
|
}
|
||||||
|
|
||||||
void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
|
void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
|
||||||
{
|
{
|
||||||
ScopedLock locker(m_cs);
|
ScopedLock locker(m_cs);
|
||||||
@ -555,10 +566,20 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
|
|||||||
m_stretch_source->setLoopXFadeLength(*getFloatParameter(cpi_loopxfadelen));
|
m_stretch_source->setLoopXFadeLength(*getFloatParameter(cpi_loopxfadelen));
|
||||||
double t0 = *getFloatParameter(cpi_soundstart);
|
double t0 = *getFloatParameter(cpi_soundstart);
|
||||||
double t1 = *getFloatParameter(cpi_soundend);
|
double t1 = *getFloatParameter(cpi_soundend);
|
||||||
if (t0 > t1)
|
sanitizeTimeRange(t0, t1);
|
||||||
std::swap(t0, t1);
|
#ifdef SOUNDRANGE_OFFSET_ENABLED
|
||||||
if (t1 - t0 < 0.001)
|
if (m_cur_playrangeoffset != (*getFloatParameter(cpi_playrangeoffset)))
|
||||||
t1 = t0 + 0.001;
|
{
|
||||||
|
double prlen = t1 - t0;
|
||||||
|
m_cur_playrangeoffset = jlimit<float>(0.0f,1.0f-prlen,(float)*getFloatParameter(cpi_playrangeoffset));
|
||||||
|
t0 = m_cur_playrangeoffset;
|
||||||
|
t1 = t0 + prlen;
|
||||||
|
sanitizeTimeRange(t0, t1);
|
||||||
|
getFloatParameter(cpi_soundstart)->setValueNotifyingHost(t0);
|
||||||
|
getFloatParameter(cpi_soundend)->setValueNotifyingHost(t1);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
m_stretch_source->setPlayRange({ t0,t1 }, true);
|
m_stretch_source->setPlayRange({ t0,t1 }, true);
|
||||||
m_stretch_source->setFreezing(getParameter(cpi_freeze));
|
m_stretch_source->setFreezing(getParameter(cpi_freeze));
|
||||||
m_stretch_source->setPaused(getParameter(cpi_pause_enabled));
|
m_stretch_source->setPaused(getParameter(cpi_pause_enabled));
|
||||||
|
@ -58,6 +58,7 @@ const int cpi_max_capture_len = 29;
|
|||||||
const int cpi_passthrough = 30;
|
const int cpi_passthrough = 30;
|
||||||
const int cpi_markdirty = 31;
|
const int cpi_markdirty = 31;
|
||||||
const int cpi_num_inchans = 32;
|
const int cpi_num_inchans = 32;
|
||||||
|
const int cpi_playrangeoffset = 33;
|
||||||
|
|
||||||
class MyPropertiesFile
|
class MyPropertiesFile
|
||||||
{
|
{
|
||||||
@ -203,7 +204,7 @@ private:
|
|||||||
std::vector<float> m_reset_pars;
|
std::vector<float> m_reset_pars;
|
||||||
int m_cur_program = 0;
|
int m_cur_program = 0;
|
||||||
void setParameters(const std::vector<double>& pars);
|
void setParameters(const std::vector<double>& pars);
|
||||||
|
float m_cur_playrangeoffset = 0.0;
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
||||||
};
|
};
|
||||||
|
@ -8,7 +8,7 @@ Released under GNU General Public License v.2 license.
|
|||||||
|
|
||||||
History :
|
History :
|
||||||
|
|
||||||
02-14-2018 1.0.1
|
02-15-2018 1.0.1
|
||||||
-Increased maximum number of input channels to 8
|
-Increased maximum number of input channels to 8
|
||||||
-Added zoom/scroll bar for waveform
|
-Added zoom/scroll bar for waveform
|
||||||
-GUI performance improvement/bug fix during capture mode
|
-GUI performance improvement/bug fix during capture mode
|
||||||
|
Loading…
x
Reference in New Issue
Block a user