diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/audio_core/time_stretch.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/audio_core/time_stretch.cpp b/src/audio_core/time_stretch.cpp index cee8b12dd..2fe0b3aef 100644 --- a/src/audio_core/time_stretch.cpp +++ b/src/audio_core/time_stretch.cpp | |||
| @@ -32,10 +32,10 @@ std::size_t TimeStretcher::Process(const s16* in, std::size_t num_in, s16* out, | |||
| 32 | // We were given actual_samples number of samples, and num_samples were requested from us. | 32 | // We were given actual_samples number of samples, and num_samples were requested from us. |
| 33 | double current_ratio = static_cast<double>(num_in) / static_cast<double>(num_out); | 33 | double current_ratio = static_cast<double>(num_in) / static_cast<double>(num_out); |
| 34 | 34 | ||
| 35 | const double max_latency = 1.0; // seconds | 35 | const double max_latency = 0.25; // seconds |
| 36 | const double max_backlog = m_sample_rate * max_latency; | 36 | const double max_backlog = m_sample_rate * max_latency; |
| 37 | const double backlog_fullness = m_sound_touch.numSamples() / max_backlog; | 37 | const double backlog_fullness = m_sound_touch.numSamples() / max_backlog; |
| 38 | if (backlog_fullness > 5.0) { | 38 | if (backlog_fullness > 4.0) { |
| 39 | // Too many samples in backlog: Don't push anymore on | 39 | // Too many samples in backlog: Don't push anymore on |
| 40 | num_in = 0; | 40 | num_in = 0; |
| 41 | } | 41 | } |
| @@ -49,7 +49,7 @@ std::size_t TimeStretcher::Process(const s16* in, std::size_t num_in, s16* out, | |||
| 49 | 49 | ||
| 50 | // This low-pass filter smoothes out variance in the calculated stretch ratio. | 50 | // This low-pass filter smoothes out variance in the calculated stretch ratio. |
| 51 | // The time-scale determines how responsive this filter is. | 51 | // The time-scale determines how responsive this filter is. |
| 52 | constexpr double lpf_time_scale = 2.0; // seconds | 52 | constexpr double lpf_time_scale = 0.712; // seconds |
| 53 | const double lpf_gain = 1.0 - std::exp(-time_delta / lpf_time_scale); | 53 | const double lpf_gain = 1.0 - std::exp(-time_delta / lpf_time_scale); |
| 54 | m_stretch_ratio += lpf_gain * (current_ratio - m_stretch_ratio); | 54 | m_stretch_ratio += lpf_gain * (current_ratio - m_stretch_ratio); |
| 55 | 55 | ||