nsamp

nsamp — Retourne le nombre d'échantillons chargés dans une table de fonction.

Description

Retourne le nombre d'échantillons chargés dans une table de fonction.

Syntaxe

nsamp(x) (arg de taux-i seulement)

Exécution

Retourne le nombre d'échantillons chargés dans la table de fonction numéro x par GEN01. Utile lorsqu'un échantillon est plus court que la puissance de deux, taille de la table de fonction qui le contient. Nouveau dans la version 3.49 de Csound.

A partir de la version 5.02 de Csound, nsamp travaille avec les tables de fonction à longueur différée (voir GEN01).

nsamp diffère de ftlen en ce sens que nsamp donne le nombre de trames d'échantillon chargées, tandis que ftlen donne le nombre total d'échantillons. Par exemple, avec un fichier son stéréo de 10000 échantillons, ftlen() retournera 19999 (c'est-à-dire un total de 20000 échantillons mono, en excluant le point de garde), mais nsamp() retournera 10000.

Exemples

Voici un exemple de l'opcode nsamp. Il utilise les fichiers nsamp.csd kickroll.wav, et fox.wav.

Exemple 532. Exemple de l'opcode nsamp.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<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

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

instr 1

ifn   =  p4	; table number
ilen  =  nsamp(ifn)
prints "actual numbers of samples = %d\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 "kickroll.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>


Comme le fichier audio stéréo « kickroll.wav » a 37792 échantillons, et que le fichier mono « fox.wav » a 121569 échantillons, sa sortie comprendra des lignes comme celles-ci :

actual numbers of samples = 37792
actual numbers of samples = 121569

Voir aussi

ftchnls, ftlen, ftlptim, ftsr

Crédits

Auteur : Gabriel Maldonado
Italie
Octobre 1998

Exemple écrit par Kevin Conder.