Remove the spectral module selection and move parameters. Initial attempt to implement the module enabled parameters. Might need to redesign this a bit...
This commit is contained in:
		| @@ -159,6 +159,35 @@ void StretchAudioSource::setMainVolume(double decibels) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void StretchAudioSource::setSpectralModulesEnabled(const std::array<AudioParameterBool*, 9>& params) | ||||
| { | ||||
| 	jassert(params.size() == m_specproc_order.size()); | ||||
| 	bool changed = false; | ||||
| 	for (int i = 0; i < m_specproc_order.size(); ++i) | ||||
| 	{ | ||||
| 		if (*params[i] != m_specproc_order[i].m_enabled) | ||||
| 		{ | ||||
| 			changed = true; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	if (changed == false) | ||||
| 		return; | ||||
| 	if (m_cs.tryEnter()) | ||||
| 	{ | ||||
| 		for (int i = 0; i < m_specproc_order.size(); ++i) | ||||
| 		{ | ||||
| 			m_specproc_order[i].m_enabled = *params[i]; | ||||
| 		} | ||||
| 		for (int i = 0; i < m_stretchers.size(); ++i) | ||||
| 		{ | ||||
| 			m_stretchers[i]->m_spectrum_processes = m_specproc_order; | ||||
| 		} | ||||
| 		++m_param_change_count; | ||||
| 		m_cs.exit(); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void StretchAudioSource::setLoopXFadeLength(double lenseconds) | ||||
| { | ||||
| 	if (lenseconds == m_loopxfadelen) | ||||
|   | ||||
| @@ -24,6 +24,7 @@ Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA | ||||
| #include "Input/AInputS.h" | ||||
| #include "ProcessedStretch.h" | ||||
| #include <mutex> | ||||
| #include <array> | ||||
| #include "../WDL/resample.h" | ||||
|  | ||||
| class StretchAudioSource final : public PositionableAudioSource | ||||
| @@ -98,6 +99,7 @@ public: | ||||
| 	void setAudioBufferAsInputSource(AudioBuffer<float>* buf, int sr, int len); | ||||
| 	void setMainVolume(double decibels); | ||||
| 	double getMainVolume() const { return m_main_volume; } | ||||
| 	void setSpectralModulesEnabled(const std::array<AudioParameterBool*, 9>& params); | ||||
| 	void setLoopXFadeLength(double lenseconds); | ||||
| 	double getLoopXFadeLengtj() const { return m_loopxfadelen; } | ||||
| 	void setPreviewDry(bool b); | ||||
|   | ||||
| @@ -354,9 +354,6 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id) | ||||
| 	} | ||||
| 	if (id == 3) | ||||
| 	{ | ||||
| 		m_spec_order_ed.setModuleSelected(*processor.getIntParameter(cpi_select_spec_module)); | ||||
| 		m_spec_order_ed.moveModule(*processor.getIntParameter(cpi_select_spec_module), * | ||||
| 			processor.getIntParameter(cpi_move_spec_module)); | ||||
| 		processor.m_free_filter_envelope->updateMinMaxValues(); | ||||
| 		m_free_filter_component.repaint(); | ||||
| 	} | ||||
|   | ||||
| @@ -157,8 +157,11 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() | ||||
| 	addParameter(new AudioParameterInt("freefilter_randomybands0", "Random bands", 2, 128, 16)); // 38 | ||||
| 	addParameter(new AudioParameterInt("freefilter_randomyrate0", "Random rate", 1, 32, 2)); // 39 | ||||
| 	addParameter(new AudioParameterFloat("freefilter_randomyamount0", "Random amount", 0.0, 1.0, 0.0)); // 40 | ||||
| 	addParameter(new AudioParameterInt("select_specmodule0", "Select module", 0, 8, 1)); // 41 | ||||
| 	addParameter(new AudioParameterInt("move_specmodule0", "Move module", 0, 8, 1)); // 42 | ||||
| 	for (int i = 0; i < 9; ++i) // 41-49 | ||||
| 	{ | ||||
| 		m_sm_enab_pars[i] = new AudioParameterBool("enab_specmodule"+String(i), "Enable spectral module "+String(i+1), false); | ||||
| 		addParameter(m_sm_enab_pars[i]); | ||||
| 	} | ||||
| 	auto& pars = getParameters(); | ||||
| 	for (const auto& p : pars) | ||||
| 		m_reset_pars.push_back(p->getValue()); | ||||
| @@ -647,6 +650,8 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M | ||||
| 	m_free_filter_envelope->m_transform_y_random_rate = *getIntParameter(cpi_freefilter_randomy_rate); | ||||
| 	m_free_filter_envelope->m_transform_y_random_amount = *getFloatParameter(cpi_freefilter_randomy_amount); | ||||
|  | ||||
| 	m_stretch_source->setSpectralModulesEnabled(m_sm_enab_pars); | ||||
|  | ||||
| 	m_stretch_source->setMainVolume(*getFloatParameter(cpi_main_volume)); | ||||
| 	m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount)); | ||||
| 	m_stretch_source->setPreviewDry(*getBoolParameter(cpi_bypass_stretch)); | ||||
|   | ||||
| @@ -23,6 +23,7 @@ Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA | ||||
| #include "../JuceLibraryCode/JuceHeader.h" | ||||
| #include "PS_Source/PaulStretchControl.h" | ||||
| #include "jcdp_envelope.h" | ||||
| #include <array> | ||||
|  | ||||
| class MyThumbCache; | ||||
|  | ||||
| @@ -67,8 +68,15 @@ const int cpi_freefilter_tilty = 37; | ||||
| const int cpi_freefilter_randomy_numbands = 38; | ||||
| const int cpi_freefilter_randomy_rate = 39; | ||||
| const int cpi_freefilter_randomy_amount = 40; | ||||
| const int cpi_select_spec_module = 41; | ||||
| const int cpi_move_spec_module = 42; | ||||
| const int cpi_enable_spec_module0 = 41; | ||||
| const int cpi_enable_spec_module1 = 42; | ||||
| const int cpi_enable_spec_module2 = 43; | ||||
| const int cpi_enable_spec_module3 = 44; | ||||
| const int cpi_enable_spec_module4 = 45; | ||||
| const int cpi_enable_spec_module5 = 46; | ||||
| const int cpi_enable_spec_module6 = 47; | ||||
| const int cpi_enable_spec_module7 = 48; | ||||
| const int cpi_enable_spec_module8 = 49; | ||||
|  | ||||
| class MyPropertiesFile | ||||
| { | ||||
| @@ -222,7 +230,7 @@ private: | ||||
| 	void setParameters(const std::vector<double>& pars); | ||||
| 	float m_cur_playrangeoffset = 0.0; | ||||
| 	void updateStretchParametersFromPluginParameters(ProcessParameters& pars); | ||||
| 	 | ||||
| 	std::array<AudioParameterBool*, 9> m_sm_enab_pars; | ||||
| 	//============================================================================== | ||||
|     JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor) | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xenakios
					xenakios