| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -210,7 +210,7 @@ void PaulstretchpluginAudioProcessor::setFFTSize(double size) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				//Logger::writeToLog(String(m_fft_size_to_use)); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void PaulstretchpluginAudioProcessor::startplay(Range<double> playrange, int numoutchans, String& err) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void PaulstretchpluginAudioProcessor::startplay(Range<double> playrange, int numoutchans, int maxBlockSize, String& err) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_stretch_source->setPlayRange(playrange, true); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -231,12 +231,13 @@ void PaulstretchpluginAudioProcessor::startplay(Range<double> playrange, int num | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_stretch_source->setProcessParameters(&m_ppar); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_last_outpos_pos = 0.0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_last_in_pos = playrange.getStart()*m_stretch_source->getInfileLengthSeconds(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_buffering_source->prepareToPlay(1024, getSampleRate()); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_buffering_source->prepareToPlay(maxBlockSize, getSampleRate()); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			}; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void PaulstretchpluginAudioProcessor::prepareToPlay(double sampleRate, int samplesPerBlock) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				ScopedLock locker(m_cs); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				m_curmaxblocksize = samplesPerBlock; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				int numoutchans = *m_outchansparam; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				if (numoutchans != m_cur_num_out_chans) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					m_ready_to_play = false; | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -255,7 +256,7 @@ void PaulstretchpluginAudioProcessor::prepareToPlay(double sampleRate, int sampl | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String err; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					startplay({ *getFloatParameter(5),*getFloatParameter(6) }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					numoutchans, err); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					numoutchans, samplesPerBlock, err); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					m_cur_num_out_chans = numoutchans; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					m_ready_to_play = true; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -527,13 +528,14 @@ void PaulstretchpluginAudioProcessor::timerCallback(int id) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (m_cur_num_out_chans != *m_outchansparam) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						jassert(m_curmaxblocksize > 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						ScopedLock locker(m_cs); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						m_ready_to_play = false; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						m_cur_num_out_chans = *m_outchansparam; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						//Logger::writeToLog("Switching to use " + String(m_cur_num_out_chans) + " out channels"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						String err; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						startplay({ *getFloatParameter(cpi_soundstart),*getFloatParameter(cpi_soundend) }, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							m_cur_num_out_chans, err); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							m_cur_num_out_chans, m_curmaxblocksize, err); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						m_ready_to_play = true; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				} | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |