Browse Source

Initial work to allow having some spectral module order presets

master
xenakios 6 years ago
parent
commit
93cebcdcd2
2 changed files with 20 additions and 0 deletions
  1. +18
    -0
      Source/PS_Source/StretchSource.cpp
  2. +2
    -0
      Source/PS_Source/StretchSource.h

+ 18
- 0
Source/PS_Source/StretchSource.cpp View File

@@ -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);


+ 2
- 0
Source/PS_Source/StretchSource.h View File

@@ -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…
Cancel
Save