soundin — Lit des données audio mono depuis un périphérique externe ou un flot.
Lit des données audio mono depuis un périphérique externe ou un flot. On pouvait lire jusqu'à 24 canaux avant la version 5.14 de Csound, limite étendue à 40 canaux depuis lors.
ar1[, ar2[, ar3[, ... a24]]] soundin ifilcod [, iskptim] [, iformat] \
[, iskipinit] [, ibufsize]
ifilcod -- entier ou chaîne de caractères donnant le nom du fichier son source. Un entier indique le fichier soundin.filcod ; une chaîne de caractères (entre guillemets, espaces autorisés) donne le nom de fichier lui-même, éventuellement un nom de chemin complet. Si ce n'est pas un nom de chemin complet, le fichier nommé est d'abord cherché dans le répertoire courant, puis dans celui qui est donné par la variable d'environnement SSDIR (si elle est définie) puis par SFDIR. Voir aussi GEN01.
iskptim (facultatif, 0 par défaut) -- portion du son en entrée à ignorer, exprimée en secondes. La valeur par défaut est 0. A partir de Csound 5.00, cette valeur peut être négative ce qui ajoute un délai au lieu d'une portion à ignorer.
iformat (facultatif, 0 par défaut) -- spécifie le format des données audio du fichier :
1 = caractères signés sur 8 bit (les 8 bit de poids fort d'un entier sur 16 bit)
2 = octets sur 8 bit A-law
3 = octets sur 8 bit U-law
4 = entiers courts sur 16 bit
5 = entiers longs sur 32 bit
6 = flottants sur 32 bit
7 = entiers non signés sur 8 bit (non disponible dans les versions de Csound antérieures à la 5.00)
8 = entiers sur 24 bit (non disponible dans les versions de Csound antérieures à la 5.00)
9 = doubles sur 64 bit (non disponible dans les versions de Csound antérieures à la 5.00)
iskipinit -- supprime toute initialisation s'il est non nul (vaut 0 par défaut). Fut introduit dans la version 4_23f13 et dans csound5.
ibufsize -- taille du tampon en échantillons mono (pas en trames d'échantillons). N'est pas disponible dans les versions de Csound antérieures à la 5.00. La taille de tampon par défaut est 2048.
Si iformat = 0, il est déduit de l'en-tête du fichier, et s'il n'y a pas d'en-tête, de l'option de ligne de commande -o de Csound. La valeur par défaut est 0.
soundin est fonctionnellement un générateur audio dont le signal est dérivé d'un fichier pré-existant. Le nombre de canaux lus est contrôlé par le nombre de variables résultat, a1, a2, etc., qui doivent concorder avec ceux du fichier d'entrée. Un opcode soundin ouvre le fichier chaque fois que l'instrument le contenant est initialisé, puis il le ferme chaque fois que l'instrument est arrêté.
Il peut y avoir n'importe quel nombre d'opcodes soundin dans un instrument de l'orchestre. Plusieurs d'entre eux peuvent lire simultanément depuis le même fichier.
Note pour les utilisateurs de Windows | |
---|---|
Les utilisateurs de Windows utilisent normalement des anti-slash, « \ », pour spécifier les chemins de leurs fichiers. Par exemple un utilisateur de Windows pourra utiliser le chemin « c:\music\samples\loop001.wav ». Ceci pause problème car les anti-slash servent habituellement à spécifier des caractères spéciaux. Pour spécifier correctement ce chemin dans Csound on peut utiliser :
|
Voici un exemple de l'opcode soundin. Il utilise les fichiers soundin.csd fox.wav et drumsSlp.wav.
Exemple 987. Exemple de l'opcode soundin.
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 soundin.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 ichn filenchnls p4 ;check number of channels prints "\nnumber of channels = %d\n\n", ichn if ichn == 1 then asig soundin p4 ;mono signal outs asig, asig else ;stereo signal aL, aR soundin p4 outs aL, aR endif endin </CsInstruments> <CsScore> i 1 0 2 "drumsMlp.wav" ;mono signal i 1 3 2 "drumsSlp.wav" ;stereo signal e </CsScore> </CsoundSynthesizer>