updated small size layout issues. fixed offline render to actually work correctly based on the passed in parameters.
This commit is contained in:
		@@ -213,9 +213,13 @@ m_bufferingthread("pspluginprebufferthread"), m_is_stand_alone_offline(is_stand_
 | 
			
		||||
	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);
 | 
			
		||||
 | 
			
		||||
    if (!m_is_stand_alone_offline) {
 | 
			
		||||
        setPreBufferAmount(2);
 | 
			
		||||
        startTimer(1, 50);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    m_show_technical_info = m_propsfile->m_props_file->getBoolValue("showtechnicalinfo", false);
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -355,7 +359,7 @@ void PaulstretchpluginAudioProcessor::setStateFromTree(ValueTree tree)
 | 
			
		||||
		if (prebufamt == -1)
 | 
			
		||||
			m_use_backgroundbuffering = false;
 | 
			
		||||
		else
 | 
			
		||||
			setPreBufferAmount(prebufamt);
 | 
			
		||||
			setPreBufferAmount(m_is_stand_alone_offline ? 0 : prebufamt);
 | 
			
		||||
		if (m_load_file_with_state == true)
 | 
			
		||||
		{
 | 
			
		||||
            String fn = tree.getProperty("importedfile");
 | 
			
		||||
@@ -464,14 +468,14 @@ void PaulstretchpluginAudioProcessor::parameterGestureChanged(int parameterIndex
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void PaulstretchpluginAudioProcessor::setFFTSize(double size)
 | 
			
		||||
void PaulstretchpluginAudioProcessor::setFFTSize(double size, bool force)
 | 
			
		||||
{
 | 
			
		||||
	if (m_prebuffer_amount == 5)
 | 
			
		||||
		m_fft_size_to_use = pow(2, 7.0 + size * 14.5);
 | 
			
		||||
	else m_fft_size_to_use = pow(2, 7.0 + size * 10.0); // chicken out from allowing huge FFT sizes if not enough prebuffering
 | 
			
		||||
	int optim = optimizebufsize(m_fft_size_to_use);
 | 
			
		||||
	m_fft_size_to_use = optim;
 | 
			
		||||
	m_stretch_source->setFFTSize(optim);
 | 
			
		||||
	m_stretch_source->setFFTSize(optim, force);
 | 
			
		||||
	//Logger::writeToLog(String(m_fft_size_to_use));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -622,19 +626,26 @@ String PaulstretchpluginAudioProcessor::offlineRender(OfflineRenderParams render
 | 
			
		||||
	double t0 = *processor->getFloatParameter(cpi_soundstart);
 | 
			
		||||
	double t1 = *processor->getFloatParameter(cpi_soundend);
 | 
			
		||||
	sanitizeTimeRange(t0, t1);
 | 
			
		||||
	sc->setPlayRange({ t0,t1 });
 | 
			
		||||
	sc->setPlayRange({ t0,t1 }, true);
 | 
			
		||||
 | 
			
		||||
    DBG("play range: " << t0 << " " << t1);
 | 
			
		||||
    DBG("SC play range s: " << sc->getPlayRange().getStart() << "  e: " << sc->getPlayRange().getEnd());
 | 
			
		||||
 | 
			
		||||
    *(processor->getBoolParameter(cpi_pause_enabled)) = false;
 | 
			
		||||
 | 
			
		||||
	sc->setMainVolume(*processor->getFloatParameter(cpi_main_volume));
 | 
			
		||||
	sc->setRate(*processor->getFloatParameter(cpi_stretchamount));
 | 
			
		||||
	sc->setDryPlayrate(*processor->getFloatParameter(cpi_dryplayrate));
 | 
			
		||||
	processor->setFFTSize(*processor->getFloatParameter(cpi_fftsize));
 | 
			
		||||
	processor->setFFTSize(*processor->getFloatParameter(cpi_fftsize), true);
 | 
			
		||||
	processor->updateStretchParametersFromPluginParameters(processor->m_ppar);
 | 
			
		||||
	processor->setPlayConfigDetails(2, numoutchans, outsr, blocksize);
 | 
			
		||||
	processor->prepareToPlay(outsr, blocksize);
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
    //sc->setProcessParameters(&processor->m_ppar);
 | 
			
		||||
    //sc->setFFTWindowingType(1);
 | 
			
		||||
 | 
			
		||||
    DBG("SC post play range s: " << sc->getPlayRange().getStart() << "  e: " << sc->getPlayRange().getEnd() << "  fft: " << sc->getFFTSize() << " ourdur: " << sc->getOutputDurationSecondsForRange(sc->getPlayRange(),sc->getFFTSize()));
 | 
			
		||||
 | 
			
		||||
	auto rendertask = [sc,processor,outputfiletouse, renderpars,blocksize,numoutchans, outsr,this]()
 | 
			
		||||
	{
 | 
			
		||||
		WavAudioFormat wavformat;
 | 
			
		||||
@@ -671,11 +682,19 @@ String PaulstretchpluginAudioProcessor::offlineRender(OfflineRenderParams render
 | 
			
		||||
            AudioBuffer<float> renderbuffer{ numoutchans, blocksize };
 | 
			
		||||
            MidiBuffer dummymidi;
 | 
			
		||||
            double outlensecs = sc->getOutputDurationSecondsForRange(sc->getPlayRange(),sc->getFFTSize());
 | 
			
		||||
 | 
			
		||||
            if (*processor->getBoolParameter(cpi_looping_enabled)) {
 | 
			
		||||
                outlensecs *= jmax(1, renderpars.numloops);
 | 
			
		||||
            }
 | 
			
		||||
            outlensecs = jmin(outlensecs, renderpars.maxoutdur);
 | 
			
		||||
 | 
			
		||||
            int64_t outlenframes = outlensecs * outsr;
 | 
			
		||||
            int64_t outcounter{ 0 };
 | 
			
		||||
            m_offline_render_state = 0;
 | 
			
		||||
            m_offline_render_cancel_requested = false;
 | 
			
		||||
 | 
			
		||||
            DBG("Starting rendering of " << outlenframes << " frames, " << outlensecs << " secs" << ", loops: " << renderpars.numloops << " play range s: " << sc->getPlayRange().getStart() << "  e: " << sc->getPlayRange().getEnd());
 | 
			
		||||
 | 
			
		||||
            while (outcounter < outlenframes)
 | 
			
		||||
            {
 | 
			
		||||
                if (m_offline_render_cancel_requested == true)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user