Analyze> ACX Check (using Nyquist file ACX-Check.ny) started running erratically this week, approx. 9/1/21 after running OK since the new Nyquist file was installed at Audacity forum contributors’ suggestion in January 2021. it works OK on some tracks in some projects but yields only errors on others, including projects and tracks where it worked OK until this week. An example of error results is shown below.
Even when ACX Check yields plausible numerical results on a track, clicking OK in the ACX Check results box now brings up a Debug Output box, with no content. The Debug Output box never appeared before.
What do you make of this problem and how do you suggest fixing it?
Sample ACX Check Error Diagnostics:
ACX Check results box showed only: “Nyquist returned the value 1”.
Then clicking OK brought up a Debug Output box with the following:
[Then clicking OK yields the following]
error: invalid dotted pair
1> error: unbound variable - UDITION
if continued: try evaluating symbol again
2> " 'NAME)\n(putprop '*TRACK* "
2> error: unbound variable - WAVE
if continued: try evaluating symbol again
3> " 'TYPE)\n(putprop '*TRACK* "
3> error: unbound variable - WAVEFORM
if continued: try evaluating symbol again
4> " 'VIEW)\n(putprop '*TRACK* 1 'CHANNELS)\n(putprop '*TRACK* T 'SPECTRAL-EDIT-ENABLED)\n(putprop '*TRACK* (float 0.0) 'START-TIME)\n(putprop '*TRACK* (float 51.318435) 'END-TIME)\n(putprop '*TRACK* (float 1.0) 'GAIN)\n(putprop '*TRACK* (float 0.0) 'PAN)\n(putprop '*TRACK* (float 44100.0) 'RATE)\n(putprop '*TRACK* 24 'FORMAT)\n(putprop '*TRACK* (list (list (float 0.0) (float 51.318435)) ) 'CLIPS)\n(putprop '*SELECTION* (float 0.691831) 'PEAK)\n(putprop '*SELECTION* (float 0.691831) 'PEAK-LEVEL)\n(putprop '*SELECTION* (float 0.073661) 'RMS)\n(setf *tracenable* T)\n\n\n\n\n\n\n\n\n\n\n\n(defun getfloor ()\n ;; Calculate RMS where rate=10 Hz, window-size=0.4 seconds.\n ;; Return the lowest 0.4 to 0.5 s in the selection.\n (let ((floor 999)\n (window-size (round (* 0.4 *sound-srate*)))\n samples)\n (setf *track* (s-rms *track* 10 window-size))\n ;; Calculate new length in samples without retaining samples in RAM.\n (setf samples (truncate (* len (/ (snd-srate *track*) *sound-srate*))))\n (do ((val (snd-fetch *track*) (snd-fetch *track*))\n (count samples (1- count)))\n ((< count 4) floor) ;stop at last full window.\n (setf floor (min floor val)))))\n\n\n(defun s-rms (sig &optional (rate 100.0) window-size)\n ;;; Like RMS function but also supports stereo sounds\n ;;; Stereo RMS is the root mean of all (samples ^ 2) [both channels]\n (when (soundp sig)\n (if window-size\n (return-from s-rms (rms sig rate window-size))\n (return-from s-rms (rms sig rate))))\n (let (left-ms right-ms rslt step-size)\n (setf step-size (round (/ (snd-srate (aref sig 0)) rate)))\n (unless window-size\n (setf window-size step-size))\n (setf (aref sig 0) (mult (aref sig 0)(aref sig 0)))\n (setf (aref sig 1) (mult (aref sig 1)(aref sig 1)))\n (setf left-ms (snd-avg (aref sig 0) window-size step-size OP-AVERAGE))\n (setf right-ms (snd-avg (aref sig 1) window-size step-size OP-AVERAGE))\n (s-sqrt (mult 0.5 (sum left-ms right-ms)))))\n\n\n(defun track-rms ()\n ;;; Teturn the RMS of *track*.\n ;;; Stereo RMS is the root mean of all (samples ^ 2) [both channels]\n (let ((rms (get '*selection* 'rms)))\n (if (arrayp rms)\n (let ((left-mean-sq (* (aref rms 0)(aref rms 0)))\n (right-mean-sq (* (aref rms 1)(aref rms 1))))\n (sqrt (/ (+ left-mean-sq right-mean-sq) 2.0)))\n rms)))\n\n\n(defun check-peak (peak)\n ;;; Return Pass, fail or warning.\n ;;; Peak too low is unlikely, but indicate the problem.\n (if (> peak -2.99)\n "
4> error: unbound variable - FAIL
if continued: try evaluating symbol again
5> error: unbound function - TOO
if continued: try evaluating symbol again
6> "\n (if (< peak -6)\n "
6> error: unbound variable - WARNING
if continued: try evaluating symbol again
7> error: unbound function - TOO
if continued: try evaluating symbol again
8> "\n "
8> error: unbound variable - PASS
if continued: try evaluating symbol again
9> ")))\n\n\n(defun check-rms (rms)\n ;;; Return Pass or Fail.\n (if (> rms -17.99)\n "
9> error: unbound variable - FAIL
if continued: try evaluating symbol again
10> error: unbound function - TOO
if continued: try evaluating symbol again
11> "\n (if (< rms -23)\n "
11> error: unbound variable - FAIL
if continued: try evaluating symbol again
12> error: unbound function - TOO
if continued: try evaluating symbol again
13> "\n "
13> error: unbound variable - PASS
if continued: try evaluating symbol again
14> ")))\n\n\n(defun check-floor (floor)\n ;;; Return Pass, Fail or warning.\n ;;; Room tone is expected - warn if extremely low.\n (if (> floor -59.99)\n "
14> error: unbound variable - FAIL
if continued: try evaluating symbol again
15> error: unbound function - TOO
if continued: try evaluating symbol again
16> "\n (if (< floor -90)\n "
16> error: unbound variable - WARNING
if continued: try evaluating symbol again
17> error: unbound function - TOO
if continued: try evaluating symbol again
18> "\n "
18> error: unbound variable - PASS
if continued: try evaluating symbol again
19> ")))\n\n\n(defun check-rate ()\n ;; Return warning or empty string.\n ;;; ACX require 44100 sample rate.\n (if (/= (round *sound-srate*) 44100)\n "
19> error: unbound variable - |nnWARNING:|
if continued: try evaluating symbol again
20> error: unbound variable - ACX
if continued: try evaluating symbol again
21> error: unbound variable - REQUIRE
if continued: try evaluating symbol again
22> 44100
22> error: unbound variable - HZ
if continued: try evaluating symbol again
23> error: unbound variable - SAMPLE
if continued: try evaluating symbol again
24> error: unbound variable - RATE.
if continued: try evaluating symbol again
25> "\n "
25> "))\n\n\n(defun check-length ()\n ;;; Return warning or empty string.\n ;;; ACX require running time no longer than 120 minutes.\n (let* ((start (get '*track* 'start-time))\n (end (get '*track* 'end-time))\n (dur (- end start)))\n (if (> dur (* 60 120))\n "
25> error: unbound variable - |nnWARNING:|
if continued: try evaluating symbol again
26> error: unbound variable - ACX
if continued: try evaluating symbol again
27> error: unbound variable - REQUIRE
if continued: try evaluating symbol again
28> error: unbound variable - RUNNING
if continued: try evaluating symbol again
29> error: unbound variable - TIME
if continued: try evaluating symbol again
30> error: unbound variable - NO
if continued: try evaluating symbol again
31> error: unbound variable - LONGER
if continued: try evaluating symbol again
32> error: unbound variable - THAN
if continued: try evaluating symbol again
33> 120
33> error: unbound variable - MINUTES
if continued: try evaluating symbol again
34> "\n "
34> ")))\n\n\n(defun selection-too-long ()\n ;; Return true if selection is more than "
34> NIL
34> error: misplaced right paren
35> error: unbound function - SELECTION-TOO-LONG
if continued: try evaluating symbol again
36> 35> 34> 33> 32> 31> 30> 29> 28> 27> 26> 25> 24> 23> 22> 21> 20> 19> 18> 17> 16> 15> 14> 13> 12> 11> 10> 9> 8> 7> 6> 5> 4> 3> 2> 1>