|
|
@@ -26,6 +26,12 @@ www.gnu.org/licenses |
|
|
|
#undef max |
|
|
|
#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, |
|
|
|
AudioFormatManager* afm, |
|
|
|
std::array<AudioParameterBool*,9>& enab_pars) : m_afm(afm) |
|
|
@@ -259,6 +265,18 @@ double StretchAudioSource::getDryPlayrate() const |
|
|
|
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) |
|
|
|
{ |
|
|
|
ScopedLock locker(m_cs); |
|
|
|