Initial work to allow having some spectral module order presets
This commit is contained in:
		| @@ -26,6 +26,12 @@ www.gnu.org/licenses | |||||||
| #undef max | #undef max | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | std::vector<SpectrumProcessType> g_specorderpresets[3] = { | ||||||
|  | 	{SPT_Harmonics,SPT_PitchShift,SPT_FreqShift,SPT_Spread,SPT_TonalVsNoise,SPT_Filter,SPT_FreeFilter,SPT_RatioMix,SPT_Compressor}, | ||||||
|  | 	{SPT_PitchShift,SPT_Harmonics,SPT_FreqShift,SPT_Spread,SPT_TonalVsNoise,SPT_Filter,SPT_FreeFilter,SPT_RatioMix,SPT_Compressor}, | ||||||
|  | 	{SPT_RatioMix,SPT_PitchShift,SPT_Harmonics,SPT_FreqShift,SPT_Spread,SPT_TonalVsNoise,SPT_Filter,SPT_FreeFilter,SPT_Compressor} | ||||||
|  | }; | ||||||
|  |  | ||||||
| StretchAudioSource::StretchAudioSource(int initialnumoutchans,  | StretchAudioSource::StretchAudioSource(int initialnumoutchans,  | ||||||
| 	AudioFormatManager* afm, | 	AudioFormatManager* afm, | ||||||
| 	std::array<AudioParameterBool*,9>& enab_pars) : m_afm(afm) | 	std::array<AudioParameterBool*,9>& enab_pars) : m_afm(afm) | ||||||
| @@ -259,6 +265,18 @@ double StretchAudioSource::getDryPlayrate() const | |||||||
| 	return m_dryplayrate; | 	return m_dryplayrate; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void StretchAudioSource::setSpectralOrderPreset(int id) | ||||||
|  | { | ||||||
|  | 	if (id == m_current_spec_order_preset) | ||||||
|  | 		return; | ||||||
|  | 	if (m_cs.tryEnter()) | ||||||
|  | 	{ | ||||||
|  | 		m_current_spec_order_preset = id; | ||||||
|  | 		++m_param_change_count; | ||||||
|  | 		m_cs.exit(); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| void StretchAudioSource::getNextAudioBlock(const AudioSourceChannelInfo & bufferToFill) | void StretchAudioSource::getNextAudioBlock(const AudioSourceChannelInfo & bufferToFill) | ||||||
| { | { | ||||||
| 	ScopedLock locker(m_cs); | 	ScopedLock locker(m_cs); | ||||||
|   | |||||||
| @@ -113,6 +113,7 @@ public: | |||||||
| 	CriticalSection* getMutex() { return &m_cs; } | 	CriticalSection* getMutex() { return &m_cs; } | ||||||
| 	int64_t getLastSourcePosition() const { return m_last_filepos; } | 	int64_t getLastSourcePosition() const { return m_last_filepos; } | ||||||
| 	int m_prebuffersize = 0; | 	int m_prebuffersize = 0; | ||||||
|  | 	void setSpectralOrderPreset(int id); | ||||||
| private: | private: | ||||||
| 	CircularBuffer<float> m_stretchoutringbuf{ 1024 * 1024 }; | 	CircularBuffer<float> m_stretchoutringbuf{ 1024 * 1024 }; | ||||||
| 	AudioBuffer<float> m_file_inbuf; | 	AudioBuffer<float> m_file_inbuf; | ||||||
| @@ -173,4 +174,5 @@ private: | |||||||
| 	AudioBuffer<float> m_drypreviewbuf; | 	AudioBuffer<float> m_drypreviewbuf; | ||||||
| 	int64_t m_last_filepos = 0; | 	int64_t m_last_filepos = 0; | ||||||
| 	void playDrySound(const AudioSourceChannelInfo & bufferToFill); | 	void playDrySound(const AudioSourceChannelInfo & bufferToFill); | ||||||
|  | 	int m_current_spec_order_preset = -1; | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 xenakios
					xenakios