shithub: aubio

Download patch

ref: 46243dd4e322f39f4431c36be98c1bc3869c4843
parent: ed9696f392ad808a43397ffee544ac476531d8cd
author: Paul Brossier <piem@piem.org>
date: Tue Sep 20 07:13:53 EDT 2016

src/effects/pitchshift.c: fix max_process_size, simplify warm-up

--- a/src/effects/pitchshift.c
+++ b/src/effects/pitchshift.c
@@ -95,15 +95,15 @@
   //p->rboptions |= RubberBandOptionFormantShifted;
   //p->rboptions |= RubberBandOptionPitchHighConsistency;
   p->rb = rubberband_new(samplerate, 1, p->rboptions, p->timeratio, p->pitchscale);
-  rubberband_set_max_process_size(p->rb, p->hopsize * 4);
+  rubberband_set_max_process_size(p->rb, p->hopsize);
   //rubberband_set_debug_level(p->rb, 10);
 
 #if 1
   // warm up rubber band
-  unsigned int latency = 0; int available = 0;
-  latency = MAX(rubberband_get_latency(p->rb), p->hopsize);
+  unsigned int latency = MAX(p->hopsize, rubberband_get_latency(p->rb));
+  int available = rubberband_available(p->rb);
   fvec_t *zeros = new_fvec(p->hopsize);
-  while (available <= (int)latency) {
+  while (available <= latency) {
     rubberband_process(p->rb, (const float* const*)&(zeros->data), p->hopsize, 0);
     available = rubberband_available(p->rb);
   }
--