From 29cbdc0d94867fe7de3900d91fc1798d5ab2fc3a Mon Sep 17 00:00:00 2001 From: Vincent GAUCHE Date: Thu, 18 May 2023 13:37:23 +0200 Subject: [PATCH] Finalizing Delay FX adding the possibility to accept negative delay values enabling playing processed sound reversed --- src/fx_components.cpp | 2 +- src/fx_delay.cpp | 93 ++++++++---------------- src/fx_delay.h | 34 +++------ src/minidexed.cpp | 16 +--- src/minidexed.h | 2 - src/performanceconfig.cpp | 24 ------ src/performanceconfig.h | 6 -- src/uimenu.cpp | 8 +- wiki-update/fx-page.md | 32 ++++---- wiki-update/mixing-console-overview.png | Bin 778309 -> 780354 bytes 10 files changed, 62 insertions(+), 155 deletions(-) diff --git a/src/fx_components.cpp b/src/fx_components.cpp index 172c433..e61f04c 100644 --- a/src/fx_components.cpp +++ b/src/fx_components.cpp @@ -610,7 +610,7 @@ void JitterGenerator::reset() float32_t JitterGenerator::process() { - float32_t out = arm_sin_f32(this->phase_); + float32_t out = InterpolatedSineOscillator::Sin(this->phase_); this->phase_ += this->phase_increment_ * (1.0f + this->magnitude_ * this->rnd_distribution_(this->rnd_generator_)); if(this->phase_ > Constants::M2PI) diff --git a/src/fx_delay.cpp b/src/fx_delay.cpp index e307330..5f391f1 100644 --- a/src/fx_delay.cpp +++ b/src/fx_delay.cpp @@ -52,11 +52,10 @@ void Delay::LowHighPassFilter::processSample(float32_t inL, float32_t inR, float Delay::Delay(const float32_t sampling_rate, float32_t default_delay_time, float32_t default_flutter_level, float32_t default_feedback_level) : FXElement(sampling_rate, 2.2587f), - MaxSampleDelayTime((MAX_DELAY_TIME + MAX_FLUTTER_DELAY_TIME) * sampling_rate * MAX_DELAY_TIME), - read_pos_L_(0), - read_pos_R_(0), - filter_(sampling_rate), - jitter_generator_(sampling_rate) + MaxSampleDelayTime((MAX_DELAY_TIME + MAX_FLUTTER_DELAY_TIME) * sampling_rate), + write_pos_L_(0), + write_pos_R_(0), + filter_(sampling_rate) { this->buffer_L_ = new float32_t[this->MaxSampleDelayTime]; this->buffer_R_ = new float32_t[this->MaxSampleDelayTime]; @@ -64,8 +63,6 @@ Delay::Delay(const float32_t sampling_rate, float32_t default_delay_time, float3 this->setLeftDelayTime(default_delay_time); this->setRightDelayTime(default_delay_time); this->setFeedback(default_feedback_level); - this->setFlutterRate(0.2f); - this->setFlutterAmount(0.0f); this->reset(); } @@ -80,59 +77,49 @@ void Delay::reset() { memset(this->buffer_L_, 0, this->MaxSampleDelayTime * sizeof(float32_t)); memset(this->buffer_R_, 0, this->MaxSampleDelayTime * sizeof(float32_t)); - this->read_pos_L_ = 0; - this->read_pos_R_ = 0; + this->write_pos_L_ = 0; + this->write_pos_R_ = 0; this->filter_.reset(); - this->jitter_generator_.reset(); } void Delay::processSample(float32_t inL, float32_t inR, float32_t& outL, float32_t& outR) { - float32_t jitter_delay_time = 0.0f; - if(this->jitter_amount_ != 0.0f) - { - float32_t jitter_ratio = this->jitter_generator_.process(); - if(jitter_ratio != 0.0f) - { - jitter_ratio *= this->jitter_amount_ * MAX_FLUTTER_DELAY_AMOUNT; - jitter_delay_time = MAX_FLUTTER_DELAY_TIME * jitter_ratio; - this->filter_.setCutoffChangeRatio(jitter_ratio); - } - } - - // const float32_t max_delay_time = MAX_DELAY_TIME * this->getSamplingRate(); - float32_t delay_time_L = (MAX_DELAY_TIME * this->getLeftDelayTime() + jitter_delay_time) * this->getSamplingRate(); - float32_t delay_time_R = (MAX_DELAY_TIME * this->getRightDelayTime() + jitter_delay_time) * this->getSamplingRate(); + // Write input to delay buffers + this->buffer_L_[this->write_pos_L_] *= this->getFeedback();; + this->buffer_L_[this->write_pos_L_] += inL; + this->buffer_R_[this->write_pos_R_] *= this->getFeedback();; + this->buffer_R_[this->write_pos_R_] += inR; - // Calculate write positions - unsigned write_pos_L = static_cast(this->MaxSampleDelayTime + this->read_pos_L_ + delay_time_L) % this->MaxSampleDelayTime; - unsigned write_pos_R = static_cast(this->MaxSampleDelayTime + this->read_pos_R_ + delay_time_R) % this->MaxSampleDelayTime; + // Calculate read positions + float32_t delay_time_L = std::abs(MAX_DELAY_TIME * this->getLeftDelayTime() ) * this->getSamplingRate(); + float32_t delay_time_R = std::abs(MAX_DELAY_TIME * this->getRightDelayTime()) * this->getSamplingRate(); + float32_t signL = this->getLeftDelayTime() >= 0 ? 1.0f : -1.0f; + float32_t signR = this->getRightDelayTime() >= 0 ? 1.0f : -1.0f; + unsigned read_pos_L = static_cast(this->MaxSampleDelayTime + signL * this->write_pos_L_ - delay_time_L) % this->MaxSampleDelayTime; + unsigned read_pos_R = static_cast(this->MaxSampleDelayTime + signR * this->write_pos_R_ - delay_time_R) % this->MaxSampleDelayTime; - // Write input to delay buffers - this->buffer_L_[write_pos_L] = inL; - this->buffer_R_[write_pos_R] = inR; // Read from delay buffers and apply feedback this->filter_.processSample( - this->buffer_L_[this->read_pos_L_], - this->buffer_R_[this->read_pos_R_], + this->buffer_L_[read_pos_L], + this->buffer_R_[read_pos_R], outL, outR ); - this->buffer_L_[write_pos_L] += outL * this->getFeedback(); - this->buffer_R_[write_pos_R] += outR * this->getFeedback(); + this->buffer_L_[this->write_pos_L_] += outL * this->getFeedback(); + this->buffer_R_[this->write_pos_R_] += outR * this->getFeedback(); // Increment read positions - ++this->read_pos_L_; - if(this->read_pos_L_ >= this->MaxSampleDelayTime) + ++ this->write_pos_L_; + if(this->write_pos_L_ >= this->MaxSampleDelayTime) { - this->read_pos_L_ -= this->MaxSampleDelayTime; + this->write_pos_L_ -= this->MaxSampleDelayTime; } - ++this->read_pos_R_; - if(this->read_pos_R_ >= this->MaxSampleDelayTime) + ++ this->write_pos_R_; + if(this->write_pos_R_ >= this->MaxSampleDelayTime) { - this->read_pos_R_ -= this->MaxSampleDelayTime; + this->write_pos_R_ -= this->MaxSampleDelayTime; } outL *= this->OutputLevelCorrector; @@ -141,7 +128,7 @@ void Delay::processSample(float32_t inL, float32_t inR, float32_t& outL, float32 void Delay::setLeftDelayTime(float32_t delay_time) { - this->delay_time_L_ = constrain(delay_time, 0.0f, 1.0f); + this->delay_time_L_ = constrain(delay_time, -1.0f, 1.0f); } float32_t Delay::getLeftDelayTime() const @@ -151,7 +138,7 @@ float32_t Delay::getLeftDelayTime() const void Delay::setRightDelayTime(float32_t delay_time) { - this->delay_time_R_ = constrain(delay_time, 0.0f, 1.0f); + this->delay_time_R_ = constrain(delay_time, -1.0f, 1.0f); } float32_t Delay::getRightDelayTime() const @@ -168,23 +155,3 @@ float32_t Delay::getFeedback() const { return this->feedback_; } - -void Delay::setFlutterRate(float32_t rate) -{ - this->jitter_generator_.setRate(rate); -} - -float32_t Delay::getFlutterRate() const -{ - return this->jitter_generator_.getRate(); -} - -void Delay::setFlutterAmount(float32_t amount) -{ - this->jitter_amount_ = constrain(amount, 0.0f, 1.0f); -} - -float32_t Delay::getFlutterAmount() const -{ - return this->jitter_amount_; -} diff --git a/src/fx_delay.h b/src/fx_delay.h index 62b5ed2..0fbd544 100644 --- a/src/fx_delay.h +++ b/src/fx_delay.h @@ -105,25 +105,17 @@ public: void setFeedback(float32_t feedback); float32_t getFeedback() const; - void setFlutterRate(float32_t rate); - float32_t getFlutterRate() const; - - void setFlutterAmount(float32_t amount); - float32_t getFlutterAmount() const; - private: const size_t MaxSampleDelayTime; - unsigned read_pos_L_; - unsigned read_pos_R_; + unsigned write_pos_L_; + unsigned write_pos_R_; float32_t* buffer_L_; float32_t* buffer_R_; float32_t delay_time_L_; // Left delay time in seconds (0.0 - 2.0) float32_t delay_time_R_; // Right delay time in seconds (0.0 - 2.0) float32_t feedback_; // Feedback (0.0 - 1.0) - float32_t jitter_amount_; LowHighPassFilter filter_; - PerlinNoiseGenerator jitter_generator_; IMPLEMENT_DUMP( const size_t space = 18; @@ -134,12 +126,11 @@ private: out << "START " << tag << "(" << typeid(*this).name() << ") dump" << std::endl << std::endl; SS_RESET(ss, precision, std::left); - SS__TEXT(ss, ' ', space, std::left, '|', "read_pos_L_"); - SS__TEXT(ss, ' ', space, std::left, '|', "read_pos_R_"); + SS__TEXT(ss, ' ', space, std::left, '|', "write_pos_L_"); + SS__TEXT(ss, ' ', space, std::left, '|', "write_pos_R_"); SS__TEXT(ss, ' ', space, std::left, '|', "delay_time_L_"); SS__TEXT(ss, ' ', space, std::left, '|', "delay_time_R_"); SS__TEXT(ss, ' ', space, std::left, '|', "feedback_"); - SS__TEXT(ss, ' ', space, std::left, '|', "jitter_amount_"); out << "\t" << ss.str() << std::endl; SS_RESET(ss, precision, std::left); @@ -148,16 +139,14 @@ private: SS_SPACE(ss, '-', space, std::left, '+'); SS_SPACE(ss, '-', space, std::left, '+'); SS_SPACE(ss, '-', space, std::left, '+'); - SS_SPACE(ss, '-', space, std::left, '+'); out << "\t" << ss.str() << std::endl; SS_RESET(ss, precision, std::left); - SS__TEXT(ss, ' ', space - 1, std::right, " |", this->read_pos_L_); - SS__TEXT(ss, ' ', space - 1, std::right, " |", this->read_pos_R_); + SS__TEXT(ss, ' ', space - 1, std::right, " |", this->write_pos_L_); + SS__TEXT(ss, ' ', space - 1, std::right, " |", this->write_pos_R_); SS__TEXT(ss, ' ', space - 1, std::right, " |", this->delay_time_L_); SS__TEXT(ss, ' ', space - 1, std::right, " |", this->delay_time_R_); SS__TEXT(ss, ' ', space - 1, std::right, " |", this->feedback_); - SS__TEXT(ss, ' ', space - 1, std::right, " |", this->jitter_amount_); out << "\t" << ss.str() << std::endl; if(deepInspection) @@ -186,7 +175,6 @@ private: } this->filter_.dump(out, deepInspection, tag + ".filter_"); - this->jitter_generator_.dump(out, deepInspection, tag + ".jitter_generator_"); } out << "END " << tag << "(" << typeid(*this).name() << ") dump" << std::endl << std::endl; @@ -194,12 +182,11 @@ private: IMPLEMENT_INSPECT( size_t nb_errors = 0; - nb_errors += inspector(tag + ".read_pos_L_", static_cast(this->read_pos_L_), 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); - nb_errors += inspector(tag + ".read_pos_R_", static_cast(this->read_pos_R_), 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); - nb_errors += inspector(tag + ".delay_time_L_", this->delay_time_L_, 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); - nb_errors += inspector(tag + ".delay_time_R_", this->delay_time_R_, 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); + nb_errors += inspector(tag + ".write_pos_L_", static_cast(this->write_pos_L_), 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); + nb_errors += inspector(tag + ".write_pos_R_", static_cast(this->write_pos_R_), 0.0f, static_cast(this->MaxSampleDelayTime), deepInspection); + nb_errors += inspector(tag + ".delay_time_L_", this->delay_time_L_, -1.0f, 1.0f, deepInspection); + nb_errors += inspector(tag + ".delay_time_R_", this->delay_time_R_, -1.0f, 1.0f, deepInspection); nb_errors += inspector(tag + ".feedback_", this->feedback_, 0.0f, 1.0f, deepInspection); - nb_errors += inspector(tag + ".jitter_amount_", this->jitter_amount_, 0.0f, 1.0f, deepInspection); if(deepInspection) { @@ -210,7 +197,6 @@ private: } nb_errors += this->filter_.inspect(inspector, deepInspection, tag + ".filter_"); - nb_errors += this->jitter_generator_.inspect(inspector, deepInspection, tag + ".jitter_generator_"); } return nb_errors; diff --git a/src/minidexed.cpp b/src/minidexed.cpp index 1c71a06..8a0d22a 100644 --- a/src/minidexed.cpp +++ b/src/minidexed.cpp @@ -938,13 +938,13 @@ void CMiniDexed::SetParameter (TParameter Parameter, int nValue) this->m_FXSpinLock.Release(); break; case TParameter::ParameterFXDelayLeftDelayTime: - nValue = constrain((int)nValue, 0, 99); + nValue = constrain((int)nValue, -99, 99); this->m_FXSpinLock.Acquire(); this->mixing_console_->getDelay()->setLeftDelayTime(nValue / 99.0f); this->m_FXSpinLock.Release(); break; case TParameter::ParameterFXDelayRightDelayTime: - nValue = constrain((int)nValue, 0, 99); + nValue = constrain((int)nValue, -99, 99); this->m_FXSpinLock.Acquire(); this->mixing_console_->getDelay()->setRightDelayTime(nValue / 99.0f); this->m_FXSpinLock.Release(); @@ -955,18 +955,6 @@ void CMiniDexed::SetParameter (TParameter Parameter, int nValue) this->mixing_console_->getDelay()->setFeedback(nValue / 99.0f); this->m_FXSpinLock.Release(); break; - case TParameter::ParameterFXDelayFlutterRate: - nValue = constrain((int)nValue, 0, 99); - this->m_FXSpinLock.Acquire(); - this->mixing_console_->getDelay()->setFlutterRate(nValue / 99.0f); - this->m_FXSpinLock.Release(); - break; - case TParameter::ParameterFXDelayFlutterAmount: - nValue = constrain((int)nValue, 0, 99); - this->m_FXSpinLock.Acquire(); - this->mixing_console_->getDelay()->setFlutterAmount(nValue / 99.0f); - this->m_FXSpinLock.Release(); - break; // AudioEffectPlateReverb parameters case TParameter::ParameterReverbEnable: diff --git a/src/minidexed.h b/src/minidexed.h index 4523228..1c6ebc1 100644 --- a/src/minidexed.h +++ b/src/minidexed.h @@ -195,8 +195,6 @@ public: ParameterFXDelayLeftDelayTime, ParameterFXDelayRightDelayTime, ParameterFXDelayFeedback, - ParameterFXDelayFlutterRate, - ParameterFXDelayFlutterAmount, // Reverberator parameters ParameterFXReverberatorEnable, diff --git a/src/performanceconfig.cpp b/src/performanceconfig.cpp index f70ddc0..74cfca4 100644 --- a/src/performanceconfig.cpp +++ b/src/performanceconfig.cpp @@ -191,8 +191,6 @@ bool CPerformanceConfig::Load (void) this->m_nFXDelayLeftDelayTime = this->m_Properties.GetNumber("FXDelayLeftDelayTime", 15); this->m_nFXDelayRightDelayTime = this->m_Properties.GetNumber("FXDelayRightDelayTime", 22); this->m_nFXDelayFeedback = this->m_Properties.GetNumber("FXDelayFeedback", 35); - this->m_nFXDelayFlutterRate = this->m_Properties.GetNumber("FXDelayFlutterRate", 0); - this->m_nFXDelayFlutterAmount = this->m_Properties.GetNumber("FXDelayFlutterAmount", 0); this->m_bFXReverberatorEnable = this->m_Properties.GetNumber("FXReverberatorEnable", 1); this->m_nFXReverberatorInputGain = this->m_Properties.GetNumber("FXReverberatorInputGain", 30); @@ -387,8 +385,6 @@ bool CPerformanceConfig::Save (void) this->m_Properties.SetNumber("FXDelayLeftDelayTime", this->m_nFXDelayLeftDelayTime); this->m_Properties.SetNumber("FXDelayRightDelayTime", this->m_nFXDelayRightDelayTime); this->m_Properties.SetNumber("FXDelayFeedback", this->m_nFXDelayFeedback); - this->m_Properties.SetNumber("FXDelayFlutterRate", this->m_nFXDelayFlutterRate); - this->m_Properties.SetNumber("FXDelayFlutterAmount", this->m_nFXDelayFlutterAmount); this->m_Properties.SetNumber("FXReverberatorEnable", this->m_bFXReverberatorEnable ? 1 : 0); this->m_Properties.SetNumber("FXReverberatorInputGain", this->m_nFXReverberatorInputGain); @@ -1178,16 +1174,6 @@ unsigned CPerformanceConfig::GetFXDelayFeedback(void) const return this->m_nFXDelayFeedback; } -unsigned CPerformanceConfig::GetFXDelayFlutterRate(void) const -{ - return this->m_nFXDelayFlutterRate; -} - -unsigned CPerformanceConfig::GetFXDelayFlutterAmount(void) const -{ - return this->m_nFXDelayFlutterAmount; -} - bool CPerformanceConfig::GetFXReverberatorEnable(void) const { return this->m_bFXReverberatorEnable; @@ -1332,16 +1318,6 @@ void CPerformanceConfig::SetFXDelayFeedback(unsigned nValue) this->m_nFXDelayFeedback = nValue; } -void CPerformanceConfig::SetFXDelayFlutterRate(unsigned nValue) -{ - this->m_nFXDelayFlutterRate = nValue; -} - -void CPerformanceConfig::SetFXDelayFlutterAmount(unsigned nValue) -{ - this->m_nFXDelayFlutterAmount = nValue; -} - void CPerformanceConfig::SetFXReverberatorEnable(unsigned bValue) { this->m_bFXReverberatorEnable = bValue; diff --git a/src/performanceconfig.h b/src/performanceconfig.h index e698287..06731e9 100644 --- a/src/performanceconfig.h +++ b/src/performanceconfig.h @@ -149,8 +149,6 @@ public: unsigned GetFXDelayLeftDelayTime(void) const; unsigned GetFXDelayRightDelayTime(void) const; unsigned GetFXDelayFeedback(void) const; - unsigned GetFXDelayFlutterRate(void) const; - unsigned GetFXDelayFlutterAmount(void) const; bool GetFXReverberatorEnable(void) const; unsigned GetFXReverberatorInputGain(void) const; @@ -186,8 +184,6 @@ public: void SetFXDelayLeftDelayTime(unsigned nValue); void SetFXDelayRightDelayTime(unsigned nValue); void SetFXDelayFeedback(unsigned nValue); - void SetFXDelayFlutterRate(unsigned nValue); - void SetFXDelayFlutterAmount(unsigned nValue); void SetFXReverberatorEnable(unsigned nValue); void SetFXReverberatorInputGain(unsigned nValue); @@ -299,8 +295,6 @@ private: unsigned m_nFXDelayLeftDelayTime; unsigned m_nFXDelayRightDelayTime; unsigned m_nFXDelayFeedback; - unsigned m_nFXDelayFlutterRate; - unsigned m_nFXDelayFlutterAmount; bool m_bFXReverberatorEnable; unsigned m_nFXReverberatorInputGain; diff --git a/src/uimenu.cpp b/src/uimenu.cpp index 053547c..0e31b54 100644 --- a/src/uimenu.cpp +++ b/src/uimenu.cpp @@ -232,8 +232,6 @@ const CUIMenu::TMenuItem CUIMenu::s_FXDelay[] = {"L Delay", CUIMenu::EditGlobalParameter, 0, CMiniDexed::TParameter::ParameterFXDelayLeftDelayTime}, {"R Delay", CUIMenu::EditGlobalParameter, 0, CMiniDexed::TParameter::ParameterFXDelayRightDelayTime}, {"Feedbck", CUIMenu::EditGlobalParameter, 0, CMiniDexed::TParameter::ParameterFXDelayFeedback}, - {"Flt Rte", CUIMenu::EditGlobalParameter, 0, CMiniDexed::TParameter::ParameterFXDelayFlutterRate}, - {"Flt Amt", CUIMenu::EditGlobalParameter, 0, CMiniDexed::TParameter::ParameterFXDelayFlutterAmount}, {"Levels", CUIMenu::MenuHandler, CUIMenu::s_FXDelayLevels}, {"FX-Send", CUIMenu::MenuHandler, CUIMenu::s_FXDelaySend}, {0} @@ -671,11 +669,9 @@ const CUIMenu::TParameter CUIMenu::s_GlobalParameter[CMiniDexed::TParameter::Par // FX > Delay parameters {0, 1, 1, ToOnOff}, // ParameterFXDelayEnable - {0, 99, 1}, // ParameterFXDelayLeftDelayTime - {0, 99, 1}, // ParameterFXDelayRightDelayTime + {-99, 99, 1}, // ParameterFXDelayLeftDelayTime + {-99, 99, 1}, // ParameterFXDelayRightDelayTime {0, 99, 1}, // ParameterFXDelayFeedback - {0, 99, 1}, // ParameterFXDelayFlutterRate - {0, 99, 1}, // ParameterFXDelayFlutterAmount // FX > Reverberator parameters {0, 1, 1, ToOnOff}, // ParameterFXReverberatorEnable diff --git a/wiki-update/fx-page.md b/wiki-update/fx-page.md index 4603a6a..bb651d4 100644 --- a/wiki-update/fx-page.md +++ b/wiki-update/fx-page.md @@ -1,7 +1,5 @@ # Mixing Console & Audio Effect -Mixing Console - TG Channel Strip - On multi-core devices, MiniDexed can now be equiped with a complex and versatile mixing console that is composed of a multi-FX processor. After the volume and pan controls, it is possible to set the send level of each Tone Generator to the individual Audio Effect and Main output. Below is the TG channel strip: @@ -12,6 +10,8 @@ Each FX has the possibility to return to any other Audio FX unit as well as Main The diagram below shows the synopsis of this Mixing Console. +Mixing Console - TG Channel Strip + ## The Audio FX The following audio FX are available: @@ -20,6 +20,7 @@ The following audio FX are available: FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Overdrive [0 - 99]:*** the overdrive amount the more the overdrive the less linear is the amplification. Below is the amplifier response based on different value of the overdrive: ![Tube - Overdrive response](Tube--overdrive-response.png)
@@ -37,6 +38,7 @@ This implementation is a standard Chorus FX that is based on 4 LFO: FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Rate [0 - 99]:*** modulate the LFO rate between thei minimum frequency (Rate = 0) and their maximum frequency (Rate = 99). * ***Depth [0 - 99]:*** the level of modulation of the FX. The higher the value the more prononced the audio processing is. @@ -54,6 +56,7 @@ This implementation is based on 2 LFO: FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Rate [0 - 99]:*** modulate the LFO rate between thei minimum frequency (Rate = 0) and their maximum frequency (Rate = 99). * ***Depth [0 - 99]:*** the level of modulation of the FX. The higher the value the more prononced the audio processing is. * ***Feedback [0 - 99]:*** the amount of of processed signal that is re-injected at the audio effect input. @@ -76,6 +79,7 @@ This implementation is based on 4 LFO: FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Rate [0 - 99]:*** modulate the LFO rate between thei minimum frequency (Rate = 0) and their maximum frequency (Rate = 99). * ***Depth [0 - 99]:*** the level of modulation of the FX. The higher the value the more prononced the audio processing is. * ***Feedback [0 - 99]:*** the amount of of processed signal that is re-injected at the audio effect input. @@ -93,6 +97,7 @@ This implementation is based on 2 LFO: FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Rate [0 - 99]:*** modulate the LFO rate between thei minimum frequency (Rate = 0) and their maximum frequency (Rate = 99). * ***Depth [0 - 99]:*** the level of modulation of the FX. The higher the value the more prononced the audio processing is. * ***Feedback [0 - 99]:*** the amount of of processed signal that is re-injected at the audio effect input. @@ -102,19 +107,16 @@ This implementation is based on 2 LFO:
* **Delay:** the is an audio signal processing technique that creates a repeated, delayed version of an original sound. It does this by temporarily storing a copy of the original audio signal in a buffer, and then playing it back at a later time. -The delay time can be set to vary from a few milliseconds to 2 seconds, and the repeated sound can be manipulated in various ways to create a range of different effects. -Delay effects are used in a wide variety of musical genres to add texture, depth, and interest to a mix. They can be used on almost any sound source, including vocals, guitars, keyboards, and drums. In addition to their creative uses, delay effects can also be used as a practical tool for correcting timing issues in a recording or performance. -This implementation is inpired of a tape delay and integrates a kind of flutter effect. The flutter effect of a tape delay refers to the subtle, random variations in the pitch and timing of the delayed signal that result from imperfections in the tape transport mechanism of an analog tape delay unit. -As the tape passes through the transport mechanism, it can be subject to various irregularities, such as fluctuations in tension, speed, and alignment. These imperfections can cause slight variations in the pitch and timing of the delayed signal, which can add a subtle, organic character to the sound. -The flutter effect is often sought after by musicians and producers who want to add warmth and character to their recordings. It can be particularly effective on guitars, vocals, and other melodic instruments, and is often used in genres such as rock, pop, and reggae. +The delay time can be set to vary from a few milliseconds to 1 second, and the repeated sound can be manipulated in various ways to create a range of different effects. +Delay effects are used in a wide variety of musical genres to add texture, depth, and interest to a mix. They can be used on almost any sound source, including vocals, guitars, keyboards, drums and other melodic instruments. +The implemention of this delay accept negative values for both left and right delay. Negative values will echo sound reversed. FX Tube Channel Strip - * **Left Delay [0 - 99]:** the left delay from 0 to 2 seconds. - * **Right Delay [0 - 99]:** the left delay from 0 to 2 seconds. + * ***Enable [Off - On]:*** Enable / disable the FX unit. + * **Left Delay [-99 - 99]:** the left delay from 0 to 2 seconds. + * **Right Delay [-99 - 99]:** the left delay from 0 to 2 seconds. * ***Feedback [0 - 99]:*** the amount of of processed signal that is re-injected at the audio effect input. - * ***Flutter Rate [0 - 99]:*** the speed at which the flutter effect will impact the signal processing. - * ***Flutter Amount [0 - 99]:*** the depth of the flutter effect that will impact the signal processing.

@@ -125,6 +127,7 @@ Plate reverb effects are often used in music production to add space, depth, and FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * ***Size [0 - 99]:*** the size of the simulated metallic plate hence of the room. * ***High Damping [0 - 99]:*** the amount of high-frequency attenuation or absorption applied to the plate's vibrations. It is a key parameter that can have a significant impact on the overall sound of the plate reverb effect. * ***Low Damping [0 - 99]:*** the amount of low-frequency attenuation or absorption applied to the plate's vibrations. It is a key parameter that can have a significant impact on the overall sound of the plate reverb effect. @@ -147,6 +150,7 @@ This implementation pushes the reverberation to reach almost the shimmer effect. FX Tube Channel Strip + * ***Enable [Off - On]:*** Enable / disable the FX unit. * **Gain [0 - 99]:** the gain parameter of the reverberator refers to the overall level or amplitude of the reverberator effect. It determines how loud the reverberator signal is in relation to the dry or unprocessed signal. * **Time [0 - 99]:** the time determines the size of the simulated reverberating space. * **Diffusion [0 - 99]:** the diffusion parameter of a reverberator refers to the degree to which the reflections in the reverb decay are dispersed or spread out in time and space. It determines how "dense" or "sparse" the reverberator effect sounds and how the individual reflections blend together. @@ -348,11 +352,9 @@ This implementation pushes the reverberation to reach almost the shimmer effect. * **> Main** *[0 - 99]*: The amount of signal processed by the Phaser FX unit that will be sent to the Main output. * **Delay** * **Enable** *[on - off]*: Enable / disable the FX unit. - * **L Delay** *[0 - 99]*: The delay time for the Left channel. - * **R Delay** *[0 - 99]*: The delay time for the Right channel. + * **L Delay** *[-99 - 99]*: The delay time for the Left channel. Negtive values play the echoed part of the processed sound reversed. + * **R Delay** *[-99 - 99]*: The delay time for the Right channel. Negtive values play the echoed part of the processed sound reversed. * **Feedbck** *[0 - 99]*: The amount of processed signal that will be reinjected at the input. - * **Flt Rte** *[0 - 99]*: The flutter rate. - * **Flt Amt** *[0 - 99]*: The flutter depth. * **Levels** * **TG1 >** *[0 - 99]* - shortcut to [TG1] >> [FX-Send] >> [> Dly] * **TG2 >** *[0 - 99]* - shortcut to [TG2] >> [FX-Send] >> [> Dly] diff --git a/wiki-update/mixing-console-overview.png b/wiki-update/mixing-console-overview.png index 1728d8bbea2c6b0e41d11271d7242ddad563d106..8e229f32d7cf2265a662c393f090efb645c74333 100644 GIT binary patch delta 67944 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

Sq$9x(x>u1 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