I often process youtube podcasts converted into audio format, upto 2 hours duration. I have sufficient RAM and minimum other programs open/running running to interfere with memory shortages.
Whereas in the present instance, the file is a mere 878.236906 = 14m38s236.906ms long audio file.
LevelSpeech2, with Leveling Amount 100%, Risetime default 0.02, falltime default 0.01, Limiter threshold 0.666 yields the following Debug data:
-24
1
The maximum number of sample blocks has been
reached, so audio computation must be terminated.
Probably, your program should not be retaining
so many samples in memory. You can get and set
the maximum using SND-SET-MAX-AUDIO-MEM.
error: audio memory exhausted
Function: #<Subr-SND-SREF: #0x5588c0413dc0>
Arguments:
#<Sound: #0x5588f30b7b48>
878.228
Function: #<Closure-SREF: #0x5588be30e210>
Arguments:
#<Sound: #0x5588f30b7b48>
878.228
Function: #<FSubr-PROGV: #0x5588c0416f88>
Arguments:
(QUOTE (WARP LOUD TRANSPOSE SUSTAIN START STOP CONTROL-SRATE SOUND-SRATE))
(LIST (QUOTE (0 1 NIL)) 0 0 1 MIN-START-TIME MAX-STOP-TIME DEFAULT-CONTROL-SRATE DEFAULT-SOUND-SRATE)
(SREF SIG (- DUR (/ SR)))
Function: #<FSubr-SETQ: #0x5588c0417978>
Arguments:
END-LEV
(ABS-ENV (SREF SIG (- DUR (/ SR))))
Function: #<FSubr-PROGN: #0x5588c04170a8>
Arguments:
(SETQ END-LEV (ABS-ENV (SREF SIG (- DUR (/ SR)))))
(SIM SIG (SND-CONST END-LEV DUR SR 0.6))
Function: #<FSubr-IF: #0x5588c0416250>
Arguments:
(< DUR 1000)
(PROGN (SETQ END-LEV (ABS-ENV (SREF SIG (- DUR (/ SR))))) (SIM SIG (SND-CONST END-LEV DUR SR 0.6)))
(SIM SIG (SND-CONST 1 DUR SR 0.6))
Function: #<FSubr-LET*: #0x5588c0413148>
Arguments:
((SR (SND-SRATE SIG)) (LOOKAHEAD (TRUNCATE (* RISETIME SR))) (SIG (IF (< DUR 1000) (PROGN (SETQ END-LEV (ABS-ENV (SREF SIG (- DUR (/ SR))))) (SIM SIG (SND-CONST END-LEV DUR SR 0.6))) (SIM SIG (SND-CONST 1 DUR SR 0.6)))) (ENV (SND-FOLLOW SIG THRESHOLD RISETIME FALLTIME LOOKAHEAD)) (ENV (EXTRACT-ABS (+ RISETIME (/ 20 SR)) (+ RISETIME (/ 20 SR) DUR) ENV)) (ENV (SUM (- 1 RATIO) (MULT RATIO ENV))) (ENV (SND-EXP (DIFF 0 (SND-LOG ENV)))))
ENV
Function: #<Closure-GET-ENV: #0x5588c040d110>
Arguments:
#<Sound: #0x5588f30b7b48>
Function: #<FSubr-LET: #0x5588c040efd0>
Arguments:
((S (MULTICHAN-EXPAND (FUNCTION LIMIT) S)))
(MULT S (GET-ENV (MAX-SIG S)))
Function: #<FSubr-COND: #0x5588c0413af0>
Arguments:
((< DUR 2) “Error.\nSelection must be at least 2 seconds.”)
((= RATIO 0) (MULT (DB-TO-LINEAR -1) (MULTICHAN-EXPAND (FUNCTION LIMIT) S)))
(T (LET ((S (MULTICHAN-EXPAND (FUNCTION LIMIT) S))) (MULT S (GET-ENV (MAX-SIG S)))))
1>
This is beyond my domain. Mr. Steve, your advice is requested.