Merge branch 'master' of https://bitbucket.org/xenakios/paulstretchplugin
argh
This commit is contained in:
commit
7095396322
@ -28,11 +28,14 @@ FFT::FFT(int nsamples_, bool no_inverse)
|
||||
printf("WARNING: Odd sample size on FFT::FFT() (%d)",nsamples);
|
||||
};
|
||||
smp.resize(nsamples);
|
||||
for (int i = 0; i < nsamples; i++) smp[i] = 0.0;
|
||||
for (int i = 0; i < nsamples; i++)
|
||||
smp[i] = 0.0;
|
||||
freq.resize(nsamples/2+1);
|
||||
for (int i=0;i<nsamples/2+1;i++) freq[i]=0.0;
|
||||
for (int i=0;i<nsamples/2+1;i++)
|
||||
freq[i]=0.0;
|
||||
window.data.resize(nsamples);
|
||||
for (int i=0;i<nsamples;i++) window.data[i]=0.707f;
|
||||
for (int i=0;i<nsamples;i++)
|
||||
window.data[i]=0.707f;
|
||||
window.type=W_RECTANGULAR;
|
||||
|
||||
|
||||
|
@ -529,7 +529,7 @@ void StretchAudioSource::setFFTSize(int size)
|
||||
{
|
||||
m_xfadetask.state = 1;
|
||||
m_xfadetask.counter = 0;
|
||||
m_xfadetask.xfade_len = 44100;
|
||||
m_xfadetask.xfade_len = 16384;
|
||||
m_xfadetask.requested_fft_size = size;
|
||||
}
|
||||
else
|
||||
|
@ -240,4 +240,14 @@ inline String secondsToString(double seconds)
|
||||
timestring = String(durintdays) + " days " + String(durinthours % 24) + " hours " +
|
||||
String(durintminutes % 60) + " mins ";
|
||||
return timestring;
|
||||
}
|
||||
}
|
||||
|
||||
inline void toggleBool(bool& b)
|
||||
{
|
||||
b = !b;
|
||||
}
|
||||
|
||||
inline void toggleBool(AudioParameterBool* b)
|
||||
{
|
||||
*b = !(*b);
|
||||
}
|
||||
|
@ -139,6 +139,9 @@ void PaulstretchpluginAudioProcessorEditor::resized()
|
||||
int xoffs = 1;
|
||||
int yoffs = 30;
|
||||
int div = w / 4;
|
||||
//std::vector<std::vector<int>> layout;
|
||||
//layout.emplace_back(cpi_capture_enabled, cpi_passthrough, cpi_pause_enabled, cpi_freeze);
|
||||
//layout.emplace_back(cpi_main_volume, cpi_num_inchans, cpi_num_outchans);
|
||||
m_parcomps[cpi_capture_enabled]->setBounds(xoffs, yoffs, div-1, 24);
|
||||
//xoffs += div;
|
||||
//m_parcomps[cpi_max_capture_len]->setBounds(xoffs, yoffs, div - 1, 24);
|
||||
@ -235,7 +238,13 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id)
|
||||
m_wavecomponent.setRecordingPosition(processor.getRecordingPositionPercent());
|
||||
} else
|
||||
m_wavecomponent.setRecordingPosition(-1.0);
|
||||
String infotext = String(processor.getStretchSource()->m_param_change_count)+" param changes "+m_last_err+" FFT size "+
|
||||
String infotext;
|
||||
if (processor.m_show_technical_info)
|
||||
{
|
||||
infotext += String(processor.getStretchSource()->m_param_change_count);
|
||||
infotext += " param changes ";
|
||||
}
|
||||
infotext += m_last_err + " FFT size " +
|
||||
String(processor.getStretchSource()->getFFTSize());
|
||||
if (processor.m_abnormal_output_samples > 0)
|
||||
infotext += " " + String(processor.m_abnormal_output_samples) + " invalid sample values";
|
||||
@ -243,7 +252,8 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id)
|
||||
infotext += " (offline rendering)";
|
||||
if (processor.m_playposinfo.isPlaying)
|
||||
infotext += " "+String(processor.m_playposinfo.timeInSeconds,1);
|
||||
infotext += " " + String(m_wavecomponent.m_image_init_count) + " " + String(m_wavecomponent.m_image_update_count);
|
||||
if (processor.m_show_technical_info)
|
||||
infotext += " " + String(m_wavecomponent.m_image_init_count) + " " + String(m_wavecomponent.m_image_update_count);
|
||||
m_info_label.setText(infotext, dontSendNotification);
|
||||
m_perfmeter.repaint();
|
||||
}
|
||||
@ -326,6 +336,7 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
||||
#ifdef JUCE_DEBUG
|
||||
menu.addItem(6, "Dump preset to clipboard", true, false);
|
||||
#endif
|
||||
menu.addItem(7, "Show technical info", true, processor.m_show_technical_info);
|
||||
int r = menu.show();
|
||||
if (r >= 200 && r < 210)
|
||||
{
|
||||
@ -334,11 +345,11 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
||||
}
|
||||
if (r == 1)
|
||||
{
|
||||
processor.m_play_when_host_plays = !processor.m_play_when_host_plays;
|
||||
toggleBool(processor.m_play_when_host_plays);
|
||||
}
|
||||
if (r == 2)
|
||||
{
|
||||
processor.m_capture_when_host_plays = !processor.m_capture_when_host_plays;
|
||||
toggleBool(processor.m_capture_when_host_plays);
|
||||
}
|
||||
if (r == 4)
|
||||
{
|
||||
@ -346,7 +357,7 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
||||
}
|
||||
if (r == 5)
|
||||
{
|
||||
processor.m_load_file_with_state = !processor.m_load_file_with_state;
|
||||
toggleBool(processor.m_load_file_with_state);
|
||||
}
|
||||
if (r == 3)
|
||||
{
|
||||
@ -374,6 +385,11 @@ String juceversiontxt = String("JUCE ") + String(JUCE_MAJOR_VERSION) + "." + Str
|
||||
String txt = Base64::toBase64(destData.getData(), destData.getSize());
|
||||
SystemClipboard::copyTextToClipboard(txt);
|
||||
}
|
||||
if (r == 7)
|
||||
{
|
||||
toggleBool(processor.m_show_technical_info);
|
||||
processor.m_propsfile->m_props_file->setValue("showtechnicalinfo", processor.m_show_technical_info);
|
||||
}
|
||||
}
|
||||
|
||||
WaveformComponent::WaveformComponent(AudioFormatManager* afm, AudioThumbnail* thumb)
|
||||
@ -442,7 +458,6 @@ void WaveformComponent::paint(Graphics & g)
|
||||
if (m_image_dirty == true || m_waveimage.getWidth() != getWidth()
|
||||
|| m_waveimage.getHeight() != getHeight() - m_topmargin)
|
||||
{
|
||||
//Logger::writeToLog("updating cached waveform image");
|
||||
if (m_waveimage.getWidth() != getWidth()
|
||||
|| m_waveimage.getHeight() != getHeight() - m_topmargin)
|
||||
{
|
||||
@ -456,15 +471,11 @@ void WaveformComponent::paint(Graphics & g)
|
||||
}
|
||||
else
|
||||
{
|
||||
//g.fillAll(Colours::black);
|
||||
g.setColour(Colours::darkgrey);
|
||||
m_thumbnail->drawChannels(g, { 0,m_topmargin,getWidth(),getHeight() - m_topmargin },
|
||||
thumblen*m_view_range.getStart(), thumblen*m_view_range.getEnd(), 1.0f);
|
||||
}
|
||||
|
||||
//g.setColour(Colours::darkgrey);
|
||||
//m_thumb->drawChannels(g, { 0,m_topmargin,getWidth(),getHeight()-m_topmargin },
|
||||
// 0.0, thumblen, 1.0f);
|
||||
g.setColour(Colours::white.withAlpha(0.5f));
|
||||
double sel_len = m_time_sel_end - m_time_sel_start;
|
||||
//if (sel_len > 0.0 && sel_len < 1.0)
|
||||
@ -514,7 +525,6 @@ void WaveformComponent::timerCallback()
|
||||
void WaveformComponent::setFileCachedRange(std::pair<Range<double>, Range<double>> rng)
|
||||
{
|
||||
m_file_cached = rng;
|
||||
//repaint();
|
||||
}
|
||||
|
||||
void WaveformComponent::setTimerEnabled(bool b)
|
||||
@ -898,7 +908,10 @@ void ParameterComponent::resized()
|
||||
{
|
||||
if (m_slider)
|
||||
{
|
||||
m_label.setBounds(0, 0, 200, 24);
|
||||
int labw = 200;
|
||||
if (getWidth() < 400)
|
||||
labw = 100;
|
||||
m_label.setBounds(0, 0, labw, 24);
|
||||
m_slider->setBounds(m_label.getRight() + 1, 0, getWidth() - 2 - m_label.getWidth(), 24);
|
||||
}
|
||||
if (m_togglebut)
|
||||
|
@ -134,19 +134,20 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
|
||||
filt_convertFrom0To1Func,filt_convertTo0To1Func), 20000.0f));; // 24
|
||||
addParameter(make_floatpar("onsetdetect_0", "Onset detection", 0.0f, 1.0f, 0.0f, 0.01, 1.0)); // 25
|
||||
addParameter(new AudioParameterBool("capture_enabled0", "Capture", false)); // 26
|
||||
m_outchansparam = new AudioParameterInt("numoutchans0", "Num output channels", 2, 8, 2); // 27
|
||||
m_outchansparam = new AudioParameterInt("numoutchans0", "Num outs", 2, 8, 2); // 27
|
||||
addParameter(m_outchansparam); // 27
|
||||
addParameter(new AudioParameterBool("pause_enabled0", "Pause", false)); // 28
|
||||
addParameter(new AudioParameterFloat("maxcapturelen_0", "Max capture length", 1.0f, 120.0f, 10.0f)); // 29
|
||||
addParameter(new AudioParameterBool("passthrough0", "Pass input through", false)); // 30
|
||||
addParameter(new AudioParameterBool("markdirty0", "Internal (don't use)", false)); // 31
|
||||
m_inchansparam = new AudioParameterInt("numinchans0", "Num input channels", 2, 8, 2); // 32
|
||||
m_inchansparam = new AudioParameterInt("numinchans0", "Num ins", 2, 8, 2); // 32
|
||||
addParameter(m_inchansparam); // 32
|
||||
auto& pars = getParameters();
|
||||
for (const auto& p : pars)
|
||||
m_reset_pars.push_back(p->getValue());
|
||||
setPreBufferAmount(2);
|
||||
startTimer(1, 50);
|
||||
m_show_technical_info = m_propsfile->m_props_file->getBoolValue("showtechnicalinfo", false);
|
||||
}
|
||||
|
||||
PaulstretchpluginAudioProcessor::~PaulstretchpluginAudioProcessor()
|
||||
@ -614,7 +615,7 @@ void PaulstretchpluginAudioProcessor::setStateInformation (const void* data, int
|
||||
|
||||
void PaulstretchpluginAudioProcessor::setDirty()
|
||||
{
|
||||
*getBoolParameter(cpi_markdirty) = !(*getBoolParameter(cpi_markdirty));
|
||||
toggleBool(getBoolParameter(cpi_markdirty));
|
||||
}
|
||||
|
||||
void PaulstretchpluginAudioProcessor::setRecordingEnabled(bool b)
|
||||
@ -625,7 +626,8 @@ void PaulstretchpluginAudioProcessor::setRecordingEnabled(bool b)
|
||||
{
|
||||
m_using_memory_buffer = true;
|
||||
m_current_file = File();
|
||||
m_recbuffer.setSize(getMainBusNumInputChannels(), m_max_reclen*getSampleRateChecked()+4096,false,false,true);
|
||||
int numchans = *m_inchansparam;
|
||||
m_recbuffer.setSize(numchans, m_max_reclen*getSampleRateChecked()+4096,false,false,true);
|
||||
m_recbuffer.clear();
|
||||
m_rec_pos = 0;
|
||||
m_thumb->reset(m_recbuffer.getNumChannels(), getSampleRateChecked(), lenbufframes);
|
||||
|
@ -162,6 +162,7 @@ public:
|
||||
void setStateFromTree(ValueTree tree);
|
||||
bool m_state_dirty = false;
|
||||
std::unique_ptr<AudioThumbnail> m_thumb;
|
||||
bool m_show_technical_info = false;
|
||||
private:
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@ Released under GNU General Public License v.2 license.
|
||||
|
||||
History :
|
||||
|
||||
02-12-2018 1.0.1
|
||||
02-13-2018 1.0.1
|
||||
-Increased maximum number of input channels to 8
|
||||
-GUI performance improvement/bug fix during capture mode
|
||||
02-09-2018 1.0.0
|
||||
|
Loading…
Reference in New Issue
Block a user