Initial work to allow having some spectral module order presets
This commit is contained in:
parent
605852d853
commit
93cebcdcd2
@ -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;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user