Skip to content

filelen

Returns the length of a sound file.

Syntax

ir filelen ifilcod, [iallowraw]

Initialization

ifilcod -- sound file to be queried

iallowraw -- Allow raw sound files (default=1)

Performance

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).

Examples

Here is an example of the filelen opcode. It uses the file filelen.csd, Mathews.wav, and drumsSlp.wav.

Example of the filelen opcode.
<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

See also

Sound File Queries

Credits

Author: Matt Ingalls
July 1999

New in Csound version 3.57