Bug in Vocal reduction and isolation

Greetings! I experience an error in this effect when executing the functions that do FFT operations. The only functions that work correctly are those that return mono audio, and the analysis function. I have tried a plug-in from a previous version and it also gives me an error. The conclusion I came to is that there is a problem in Nyquist’s internal functions. Below I attach the debugging report.
Debug VocalRediso.txt (151 KB)

For convenience I’m displaying the first part of the error as text:

error: array index out of bounds - 28
Function: #<Subr-AREF: #07E34018>
Arguments:
  #()
  28
Function: #<FSubr-SETF: #07E30028>
Arguments:
  (: OUT I)
  (: WEIGHT (/ (1+ I) 2))
Function: #<FSubr-DO: #07E35028>
Arguments:
  ((I LOW-TRANSITION (+ I 2)))
  ((>= I HIGH-TRANSITION))
  (SETF (: OUT I) (: WEIGHT (/ (1+ I) 2)))
  (SETF (: OUT (1+ I)) (: WEIGHT (/ (1+ I) 2)))
Function: #<FSubr-LET*: #07E32F08>
Arguments:
  ((POWER-SUM (POWER-SPECTRUM MID FS 2)) (POWER-DIF (POWER-SPECTRUM SIDE FS 2)) (WT-EXP (S-EXP (SCALE STRENGTH (DIFF POWER-DIF POWER-SUM)))) (WEIGHT (SHAPE WT-EXP *MAP* 0)) (WEIGHT (SND-SAMPLES WEIGHT NY:ALL)))
  (DO ((I LOW-TRANSITION (+ I 2))) ((>= I HIGH-TRANSITION)) (SETF (: OUT I) (: WEIGHT (/ (1+ I) 2))) (SETF (: OUT (1+ I)) (: WEIGHT (/ (1+ I) 2))))
  (SND-SAMPLES (MULT (SND-FROM-ARRAY 0 1 MID) (SND-FROM-ARRAY 0 1 OUT)) FS)
Function: #<FSubr-COND: #07E33588>



Please give exact steps for how to reproduce this error.

When opening the effect, select any option. Eliminate vowels, isolate vocals etc, except for the analyze option and those that return mono audio. When applying, you will see that the effect does not process the track. To make sure there is an error, press the debug button.

If you try to run the function analyze, remove vocals to mono, or remove center to mono, the plug-in works fine.

I tested with this file:

and applied “Vocal reduction and isolation” with these settings:

settings.png
and this was the result:

Seems to be working fine.

See this Forum thread: https://forum.audacityteam.org/t/3-0-0-get-error-when-using-vocal-remove-isolation/60825/6

and this P1 regression bug that was logged as a result
https://bugzilla.audacityteam.org/show_bug.cgi?id=2706
Vocal Reduction and Isolation most options fail

Peter.

Yes. Vocal Removal fails on Windows 10:

error: array index out of bounds - 23
Function: #<Subr-AREF: #0B1D6FF0>
Arguments:
  #()
  23
Function: #<FSubr-SETF: #0B1D3000>
Arguments:
  (: OUT I)
  (: WEIGHT (/ (1+ I) 2))
Function: #<FSubr-DO: #0B1D8000>
Arguments:
  ((I LOW-TRANSITION (+ I 2)))
  ((>= I HIGH-TRANSITION))
  (SETF (: OUT I) (: WEIGHT (/ (1+ I) 2)))
  (SETF (: OUT (1+ I)) (: WEIGHT (/ (1+ I) 2)))
Function: #<FSubr-LET*: #0B1D5EE0>
Arguments:
  ((POWER-SUM (POWER-SPECTRUM MID FS 2)) (POWER-DIF (POWER-SPECTRUM SIDE FS 2)) (WT-EXP (S-EXP (SCALE STRENGTH (DIFF POWER-DIF POWER-SUM)))) (WEIGHT (SHAPE WT-EXP *MAP* 0)) (WEIGHT (SND-SAMPLES WEIGHT NY:ALL)))
  (DO ((I LOW-TRANSITION (+ I 2))) ((>= I HIGH-TRANSITION)) (SETF (: OUT I) (: WEIGHT (/ (1+ I) 2))) (SETF (: OUT (1+ I)) (: WEIGHT (/ (1+ I) 2))))
  (SND-SAMPLES (MULT (SND-FROM-ARRAY 0 1 MID) (SND-FROM-ARRAY 0 1 OUT)) FS)
Function: #<FSubr-COND: #0B1D6560>
Arguments:
  ((AND MID SIDE) (LET* ((POWER-SUM (POWER-SPECTRUM MID FS 2)) (POWER-DIF (POWER-SPECTRUM SIDE FS 2)) (WT-EXP (S-EXP (SCALE STRENGTH (DIFF POWER-DIF POWER-SUM)))) (WEIGHT (SHAPE WT-EXP *MAP* 0)) (WEIGHT (SND-SAMPLES WEIGHT NY:ALL))) (DO ((I LOW-TRANSITION (+ I 2))) ((>= I HIGH-TRANSITION)) (SETF (: OUT I) (: WEIGHT (/ (1+ I) 2))) (SETF (: OUT (1+ I)) (: WEIGHT (/ (1+ I) 2)))) (SND-SAMPLES (MULT (SND-FROM-ARRAY 0 1 MID) (SND-FROM-ARRAY 0 1 OUT)) FS)))
  (T NIL)
Function: #<Closure-STEER: #0AE75A70>
Arguments:
  #(3.89424 3.57582 1.46559 2.75328 2.74745 1.51856 3.56544 0.0150764 3.87915 -1.44129 3.61418 -2.71268 2.76197 -3.58549 1.54268 -3.87379 0.0588427 -3.62878 -1.44959 -2.806 -2.69551 -1.53953 -3.58989 -0.0847347 -3.91664 1.44382 -3.63051 2.73572 -2.84392 3.5957 -1.56319 3.96983 -0.0587764 3.68196 1.43973 2.8503 2.79174 1.60402 3.66819 0.0329819 4.01182 -1.49803 3.77702 -2.83763 2.88771 -3.79688 1.60779 -4.10908 0.0423806 -3.86218 -1.59733 -2.99722 -2.93639 -1.60603 -3.9202 -0.0288085 -4.3008 1.66348 -3.97205 3.11953 -3.11949 4.0686 -1.68261 4.51809 0.032914.....etc......-0.00348186 0.00144386 -0.00375652 1.74344e-06 -0.00348186 -0.00144422 -0.00266194 -0.0026536 -0.0014354 -0.00348067 -9.42871e-06 -0.00376272 0.00144267 -0.00346947 0.00265908 -0.00266695 0.00346994 -0.00143504 0.00376797 -9.16421e-07 0.00346756 0.00143445 0.00265956 0.00266838 0.00144529 0.00346971 -9.07108e-06 0.00376034 -0.00143576 0.00347996 -0.00266027 0.00264931 -0.00348258 0.00144112 -0.00375605 -2.55182e-06 -0.00348115 -0.00144768 -0.0026598 -0.00265265 -0.00143194 -0.00348163 -5.07385e-06 -0.00376272 0.00144696 -0.0034709 0.00266242 -0.00266719 0.00347233 -0.0014329 0.00377274 1.55717e-06 0.00347376 0.00143671 0.0026598 0.00267005 0.00144386 0.00347233 -9.56468e-06 0.00376463 -0.00143695 0.0034852 -0.00266123 0.00265551 -0.00348425 0.00144434 -0.00375664)
  #<Object: #0B146BD0>
Function: #<FSubr-IF: #0B1D7F90>
Arguments:
  ARGUMENT2
  (FUNCALL FUNCTION (SND-FFT SOUND LENGTH SKIP WINDOW) ARGUMENT2)
  (FUNCALL FUNCTION (SND-FFT SOUND LENGTH SKIP WINDOW))
Function: #<Subr-SEND: #0B1D8B30>
Arguments:
  #<Object: #0B1464F0>
  #<Object: #0B1464F0>
1>