ACX Check fails in 2.4.1
Forum rules
This forum is for Audacity on macOS 10.4 and later.
Please state which version of macOS you are using,
and the exact three-section version number of Audacity from "Audacity menu > About Audacity".
Audacity 1.2.x and 1.3.x are obsolete and no longer supported. If you still have those versions, please upgrade at https://www.audacityteam.org/download/.
The old forums for those versions are now closed, but you can still read the archives of the 1.2.x and 1.3.x forums.
Please state which version of macOS you are using,
and the exact three-section version number of Audacity from "Audacity menu > About Audacity".
Audacity 1.2.x and 1.3.x are obsolete and no longer supported. If you still have those versions, please upgrade at https://www.audacityteam.org/download/.
The old forums for those versions are now closed, but you can still read the archives of the 1.2.x and 1.3.x forums.
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
This is a result of analyzing a noise segment only. No actual performance.
I'm assuming this is a sampling oddity. Still, that should be impossible.
Koz
I'm assuming this is a sampling oddity. Still, that should be impossible.
Koz
Re: ACX Check fails in 2.4.1
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
Is there new test code?I'll fix that.
I'm waking up a Win7 machine out of hibernation to do testing. No Win10. Sorry.
Koz
Re: ACX Check fails in 2.4.1
Here's the new test code:
Code: Select all
;version 4
;type analyze
;debugflags trace
(defun getfloor (sig &aux (chunk 30))
;; Return guestimate of noise floor.
;; 'sig' is theRMS level and has around 10 Hz sample rate,
;; We look for the lowest 0.1 s block as the local 'floor'
;; Return a label for each calculated 'floor'
(let ((floor 999)
(floor-labels ())
(chunkcount 0)
label
(start 0)
(srate (snd-srate sig)))
(setf chunk (1- (* chunk srate))) ;chunk size in samples
(do ((val (snd-fetch sig) (snd-fetch sig)))
((not val))
(cond
((<= chunkcount chunk)
(incf chunkcount)
(when (< val floor)
(setf floor val)))
(t (setf label (list (/ start srate)
(/ (+ start chunkcount) srate)
(format nil "~a" (round (linear-to-db floor)))))
(setf start (+ start chunkcount))
(setf chunkcount 1)
(push label floor-labels)
(setf floor val))))
(setf label (list (/ start srate)
(/ (+ start chunkcount) srate)
(format nil "~a" (round (linear-to-db floor)))))
(push label floor-labels)))
(defun to-mono (sig)
;;; coerce sig to mono.
(if (arrayp sig)
(s-max (s-abs (aref sig 0))
(s-abs (aref sig 1)))
sig))
(defun stereo-rms(ar)
;;; Stereo RMS is the root mean of all (samples ^ 2) [both channels]
(let ((left-mean-sq (* (aref ar 0)(aref ar 0)))
(right-mean-sq (* (aref ar 1)(aref ar 1))))
(sqrt (/ (+ left-mean-sq right-mean-sq) 2.0))))
;; This test is only required when running in the Nyquist Prompt
(if (< len 1)
"No audio selected."
(progn
(setf rms
(let ((rms (get '*selection* 'rms)))
(if (arrayp rms)
(linear-to-db (stereo-rms rms))
(linear-to-db rms))))
(setf peak (linear-to-db (get '*selection* 'peak-level)))
(format t "Peak level: ~a dB.~%~
RMS level: ~a dB.~%"
peak
rms)
(let ((sig (rms (to-mono *track*) 10))) ;Approx 10 Hz sample rate
(setf *track* nil) ;free *track* from memory
(getfloor sig))))
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
Version 4 of Nyquist, or this is release 4 of the code?;version 4
Koz
Re: ACX Check fails in 2.4.1
Yes.
As soon as we have a plug-in version I'll add a plug-in version number.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
This is an 84 minute simple voice performance. I measured it in 20 minute chunks and it passes with noise hovering in the -61dB to -62dB range.
This is the new code.
Koz
This is the new code.
Koz
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
How about you wrote "Noise Sleuth." If the performer fails Legacy ACX Check, run Noise Sleuth to help sort what happened and where.
Koz
Koz
Re: ACX Check fails in 2.4.1
I like that idea.kozikowski wrote: ↑Sun Jun 07, 2020 2:03 amHow about you wrote "Noise Sleuth." If the performer fails Legacy ACX Check, run Noise Sleuth to help sort what happened and where.
I also think that it could be built into one plug-in.
Three possible alternatives:
1.
The plug-in would have a simple GUI with a choice control: "Simple" / "Noise Sleuth".
The "Simple" option just gives you a single result for Noise Floor.
The "Noise Sleuth" option produces the labels.
2.
The plug-in runs without a GUI (as with the old effect).
It gives a simple single result for each of: Peak / RMS / Floor
AND the labels.
3.
The plug-in runs without a GUI.
It gives a simple single result for each of: Peak / RMS / Floor
It also labels any regions greater than "x" seconds that have a noise floor that is out of range (> -59 dB or < -90 dB).
I'm not sure what the best value for "x" should be, but I'd guess around 30 seconds.
One important question: Precisely what should the one result "legacy test" measure? The lowest 0.5 second RMS in the first 5 seconds?
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)
-
kozikowski
- Forum Staff
- Posts: 69374
- Joined: Thu Aug 02, 2007 5:57 pm
- Operating System: macOS 10.13 High Sierra
Re: ACX Check fails in 2.4.1
Working on it.
I think what concerns me is the software binning a 90 min performance because of one perceived violation. A violation that we have every expectation that nobody else will ever find. By that measure, no home reader will ever pass noise.
But they do. Using Mastering and Legacy ACX Check, people get published all the time.
Maybe the readers will have to settle for a vacation villa on the Scottish coast. Côte de Gris.
Koz
I think what concerns me is the software binning a 90 min performance because of one perceived violation. A violation that we have every expectation that nobody else will ever find. By that measure, no home reader will ever pass noise.
But they do. Using Mastering and Legacy ACX Check, people get published all the time.
Maybe the readers will have to settle for a vacation villa on the Scottish coast. Côte de Gris.
Koz