Preliminary work to allow more input channels
This commit is contained in:
		| @@ -52,8 +52,9 @@ PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor(Pau | |||||||
| 		AudioProcessorParameterWithID* parid = dynamic_cast<AudioProcessorParameterWithID*>(pars[i]); | 		AudioProcessorParameterWithID* parid = dynamic_cast<AudioProcessorParameterWithID*>(pars[i]); | ||||||
| 		jassert(parid); | 		jassert(parid); | ||||||
| 		bool notifyonlyonrelease = false; | 		bool notifyonlyonrelease = false; | ||||||
| 		if (parid->paramID.startsWith("fftsize") || parid->paramID.startsWith("numoutchans")) | 		if (parid->paramID.startsWith("fftsize") || parid->paramID.startsWith("numoutchans")  | ||||||
| 			notifyonlyonrelease = true; | 			|| parid->paramID.startsWith("numinchans")) | ||||||
|  | 				notifyonlyonrelease = true; | ||||||
| 		m_parcomps.push_back(std::make_shared<ParameterComponent>(pars[i],notifyonlyonrelease)); | 		m_parcomps.push_back(std::make_shared<ParameterComponent>(pars[i],notifyonlyonrelease)); | ||||||
| 		int group_id = -1; | 		int group_id = -1; | ||||||
| 		if (i == cpi_harmonicsbw || i == cpi_harmonicsfreq || i == cpi_harmonicsgauss || i == cpi_numharmonics) | 		if (i == cpi_harmonicsbw || i == cpi_harmonicsfreq || i == cpi_harmonicsgauss || i == cpi_numharmonics) | ||||||
| @@ -149,10 +150,13 @@ void PaulstretchpluginAudioProcessorEditor::resized() | |||||||
| 	m_parcomps[cpi_freeze]->setBounds(xoffs, yoffs, div - 1, 24); | 	m_parcomps[cpi_freeze]->setBounds(xoffs, yoffs, div - 1, 24); | ||||||
| 	xoffs = 1; | 	xoffs = 1; | ||||||
| 	yoffs += 25; | 	yoffs += 25; | ||||||
| 	div = w / 2; | 	div = w / 3; | ||||||
| 	m_parcomps[cpi_main_volume]->setBounds(xoffs, yoffs, div-1, 24); | 	m_parcomps[cpi_main_volume]->setBounds(xoffs, yoffs, div-1, 24); | ||||||
| 	xoffs += div; | 	xoffs += div; | ||||||
|  | 	m_parcomps[cpi_num_inchans]->setBounds(xoffs, yoffs, div - 1, 24); | ||||||
|  | 	xoffs += div; | ||||||
| 	m_parcomps[cpi_num_outchans]->setBounds(xoffs, yoffs, div-1, 24); | 	m_parcomps[cpi_num_outchans]->setBounds(xoffs, yoffs, div-1, 24); | ||||||
|  | 	div = w / 2; | ||||||
| 	xoffs = 1; | 	xoffs = 1; | ||||||
| 	yoffs += 25; | 	yoffs += 25; | ||||||
| 	m_parcomps[cpi_fftsize]->setBounds(xoffs, yoffs, div - 1, 24); | 	m_parcomps[cpi_fftsize]->setBounds(xoffs, yoffs, div - 1, 24); | ||||||
|   | |||||||
| @@ -140,6 +140,8 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() | |||||||
| 	addParameter(new AudioParameterFloat("maxcapturelen_0", "Max capture length", 1.0f, 120.0f, 10.0f)); // 29 | 	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("passthrough0", "Pass input through", false)); // 30 | ||||||
| 	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 input channels", 2, 8, 2); // 32 | ||||||
|  | 	addParameter(m_inchansparam); // 32 | ||||||
| 	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()); | ||||||
| @@ -394,7 +396,7 @@ void PaulstretchpluginAudioProcessor::prepareToPlay(double sampleRate, int sampl | |||||||
| 	ScopedLock locker(m_cs); | 	ScopedLock locker(m_cs); | ||||||
| 	m_cur_sr = sampleRate; | 	m_cur_sr = sampleRate; | ||||||
| 	m_curmaxblocksize = samplesPerBlock; | 	m_curmaxblocksize = samplesPerBlock; | ||||||
| 	m_input_buffer.setSize(2, samplesPerBlock); | 	m_input_buffer.setSize(getMainBusNumInputChannels(), samplesPerBlock); | ||||||
| 	int numoutchans = *m_outchansparam; | 	int numoutchans = *m_outchansparam; | ||||||
| 	if (numoutchans != m_cur_num_out_chans) | 	if (numoutchans != m_cur_num_out_chans) | ||||||
| 		m_prebuffering_inited = false; | 		m_prebuffering_inited = false; | ||||||
| @@ -623,7 +625,7 @@ void PaulstretchpluginAudioProcessor::setRecordingEnabled(bool b) | |||||||
| 	{ | 	{ | ||||||
| 		m_using_memory_buffer = true; | 		m_using_memory_buffer = true; | ||||||
| 		m_current_file = File(); | 		m_current_file = File(); | ||||||
| 		m_recbuffer.setSize(2, m_max_reclen*getSampleRateChecked()+4096,false,false,true); | 		m_recbuffer.setSize(getMainBusNumInputChannels(), m_max_reclen*getSampleRateChecked()+4096,false,false,true); | ||||||
| 		m_recbuffer.clear(); | 		m_recbuffer.clear(); | ||||||
| 		m_rec_pos = 0; | 		m_rec_pos = 0; | ||||||
| 		m_thumb->reset(m_recbuffer.getNumChannels(), getSampleRateChecked(), lenbufframes); | 		m_thumb->reset(m_recbuffer.getNumChannels(), getSampleRateChecked(), lenbufframes); | ||||||
|   | |||||||
| @@ -57,6 +57,7 @@ const int cpi_pause_enabled = 28; | |||||||
| const int cpi_max_capture_len = 29; | 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; | ||||||
|  |  | ||||||
| class MyPropertiesFile | class MyPropertiesFile | ||||||
| { | { | ||||||
| @@ -192,6 +193,7 @@ private: | |||||||
| 	void startplay(Range<double> playrange, int numoutchans, int maxBlockSize, String& err); | 	void startplay(Range<double> playrange, int numoutchans, int maxBlockSize, String& err); | ||||||
| 	SharedResourcePointer<MyThumbCache> m_thumbcache; | 	SharedResourcePointer<MyThumbCache> m_thumbcache; | ||||||
| 	AudioParameterInt* m_outchansparam = nullptr; | 	AudioParameterInt* m_outchansparam = nullptr; | ||||||
|  | 	AudioParameterInt* m_inchansparam = nullptr; | ||||||
| 	int m_curmaxblocksize = 0; | 	int m_curmaxblocksize = 0; | ||||||
| 	double m_cur_sr = 0.0; | 	double m_cur_sr = 0.0; | ||||||
| 	bool m_last_host_playing = false; | 	bool m_last_host_playing = false; | ||||||
|   | |||||||
| @@ -7,10 +7,11 @@ | |||||||
|               buildVST3="0" buildAU="1" buildAUv3="0" buildRTAS="0" buildAAX="0" |               buildVST3="0" buildAU="1" buildAUv3="0" buildRTAS="0" buildAAX="0" | ||||||
|               buildStandalone="1" enableIAA="0" pluginName="PaulXStretch" pluginDesc="PaulXStretch" |               buildStandalone="1" enableIAA="0" pluginName="PaulXStretch" pluginDesc="PaulXStretch" | ||||||
|               pluginManufacturer="Xenakios" pluginManufacturerCode="XenS" pluginCode="Fn1r" |               pluginManufacturer="Xenakios" pluginManufacturerCode="XenS" pluginCode="Fn1r" | ||||||
|               pluginChannelConfigs="{2,2},{2,4}, {2,8}" pluginIsSynth="0" pluginWantsMidiIn="0" |               pluginChannelConfigs="{2,2},{2,4}, {2,8}, {8,8}" pluginIsSynth="0" | ||||||
|               pluginProducesMidiOut="0" pluginIsMidiEffectPlugin="0" pluginEditorRequiresKeys="0" |               pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginIsMidiEffectPlugin="0" | ||||||
|               pluginAUExportPrefix="paulxstretchAU" pluginRTASCategory="" aaxIdentifier="com.yourcompany.paulstretchplugin" |               pluginEditorRequiresKeys="0" pluginAUExportPrefix="paulxstretchAU" | ||||||
|               pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="5.2.0" |               pluginRTASCategory="" aaxIdentifier="com.yourcompany.paulstretchplugin" | ||||||
|  |               pluginAAXCategory="AAX_ePlugInCategory_Dynamics" jucerVersion="5.2.1" | ||||||
|               headerPath="

"> |               headerPath="

"> | ||||||
|   <MAINGROUP id="nozXHl" name="PaulXStretch"> |   <MAINGROUP id="nozXHl" name="PaulXStretch"> | ||||||
|     <GROUP id="{03DA6B32-F666-FF60-F168-4385D0847058}" name="Source"> |     <GROUP id="{03DA6B32-F666-FF60-F168-4385D0847058}" name="Source"> | ||||||
|   | |||||||
| @@ -8,6 +8,8 @@ Released under GNU General Public License v.2 license. | |||||||
|  |  | ||||||
| History : | History : | ||||||
|  |  | ||||||
|  | 02-12-2018 1.0.1 | ||||||
|  | 	-Increased maximum number of input channels to 8 | ||||||
| 02-09-2018 1.0.0 | 02-09-2018 1.0.0 | ||||||
| 	-Control/Command click on waveform seeks (if click within active play range) | 	-Control/Command click on waveform seeks (if click within active play range) | ||||||
| 	-Moved prebuffering amount menu to prebuffering meter (click to show) | 	-Moved prebuffering amount menu to prebuffering meter (click to show) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 xenakios
					xenakios