nsamp — Retourne le nombre d'échantillons chargés dans une table de fonction.
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.
Voici un exemple de l'opcode nsamp. Il utilise les fichiers nsamp.csd, drumsSlp.wav et fox.wav.
Exemple 664. 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 ; 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>
Comme le fichier audio stéréo « drumsSlp.wav » a 176400 échantillons,
et que le fichier mono « fox.wav » a 121569 échantillons, sa
sortie comprendra des lignes comme celles-ci :
actual numbers of samples = 176400 actual numbers of samples = 121569