filelen — Returns the length of a sound file.
filelen returns the length of the sound file ifilcod in seconds. filelen can return the length of convolve and PVOC files if the "allow raw sound file" flag is not zero (it is non-zero by default).
Here is an example of the filelen opcode. It uses the file filelen.csd, fox.wav, and drumsSlp.wav.
Example 298. Example of the filelen opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ; For Non-realtime ouput leave only the line below: ;-o filelen.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; by Menno Knevel 2022 sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ; choose between mono or stereo file ilen filelen p4 ; calculate length of soundfile prints "\nlenght of sample = %2.3f seconds\n\n", ilen ichn filenchnls p4 ; check number of channels if (ichn == 1) then ; mono signal asig diskin2 p4, 1 outs asig, asig else aL, aR diskin2 p4, 1 ; stereo signal outs aL, aR endif endin </CsInstruments> <CsScore> i 1 0 8 "Mathews.wav" ; mono signal i 1 8 4 "drumsSlp.wav" ; stereo signal e </CsScore> </CsoundSynthesizer>
The mono audio file “Mathews.wav” is about 2.8 seconds long, and the stereo file “drumsSlp.wav” is 4.0 seconds. So filelen's output should include a line for the mono and the stereo file like this:
lenght of sample = 15.598 seconds lenght of sample = 4.000 seconds