John Mulholland:
I have a large amount of aiff samples that have a predecing second or
two of ambient silence. To trim this out of each file is going to take a
very long time. Is there a program that can do this for me?
Probably a lot of programs...
Heres a solution for SND. Its probably not the most
elegant way, but anyway:
(define (for-each-file path func)
(let* ((dir (opendir path))
(entry (readdir dir)))
(while (not (eof-object? entry))
(if (and (not (string=? "." entry))
(not (string=? ".." entry)))
(func entry))
(set! entry (readdir dir)))
(closedir dir)))
(define (remove-preceding-silence infile outfile how-much)
(open-sound infile))
(set! (selection-position) 0)
(set! (selection-frames) (* (srate) how-much))
(delete-selection)
(save-sound-as outfile))
(define (delete-preceding-silence-in-dir indir outdir how-much)
(for-each-file indir
(lambda (name)
(remove-preceding-silence (string-append indir "/" name)
(string-append outdir "/" name)
how-much))))
;;(delete-preceding-silence-in-dir "/home/kjetil/testdir"
"/home/kjetil/testdirout" 2)
Oops, one ")" too much. Replace remove-preceding-silence with this one:
(define (remove-preceding-silence infile outfile how-much)
(open-sound infile)
(set! (selection-position) 0)
(set! (selection-frames) (* (srate) how-much))
(delete-selection)
(save-sound-as outfile))