Skip to content

nsamp

Returns the number of samples loaded into a stored function table number.

Syntax

nsamp(x) (init-rate args only)

Performance

Returns the number of samples loaded into stored function table number x by GEN01. This is useful when a sample is shorter than the power-of-two function table that holds it. New in Csound version 3.49.

As of Csound version 5.02, nsamp works with deferred-length function tables (see GEN01).

nsamp differs from ftlen in that nsamp gives the number of sample frames loaded, while ftlen gives the total number of samples. For example, with a stereo sound file of 10000 samples, ftlen() would return 19999 (i.e. a total of 20000 mono samples, not including a guard point), but nsamp() returns 10000.

Examples

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

Example of the nsamp opcode.
<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o nsamp.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; slightly adapted example from Jonathan Murphy Dec 2006
; by Menno Knevel 2022

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

ifn   =  p4     ; table number
ilen  =  nsamp(ifn)
prints "\nactual numbers of samples = %d\n\n", ilen
itrns =  1      ; no transposition
ilps  =  0      ; loop starts at index 0
ilpe  =  ilen   ; ends at value returned by nsamp above
imode =  1      ; loops forward
istrt =  0      ; commence playback at index 0 samples
; lphasor provides index into f1 
alphs lphasor itrns, ilps, ilpe, imode, istrt
atab  tablei  alphs, ifn
      outs atab, atab

endin
</CsInstruments>
<CsScore>
f 1 0 262144 1 "drumsSlp.wav" 0 4 1     ;stereo file in table, with lots of zeroes
f 2 0 262144 1 "fox.wav" 0 4 1          ;mono file in table, with lots of zeroes

i1 0 10 1
i1 + 10 2
e
</CsScore>
</CsoundSynthesizer>

Since the stereo audio file “drumsSlp.wav” has 176400 samples and the mono file “fox.wav” has 121569 samples, its output should include lines like these:

actual numbers of samples = 176400
actual numbers of samples = 121569

See also

Table Control:Table Queries

Credits

Author: Gabriel Maldonado
Italy
October 1998