soundin

soundin — Lit des données audio mono depuis un périphérique externe ou un flot.

Description

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.

Syntaxe

ar1[, ar2[, ar3[, ... a24]]] soundin ifilcod [, iskptim] [, iformat] \
      [, iskipinit] [, ibufsize]

Initialisation

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.

Exécution

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.

[Attention] 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 :

  • soit le slash : c:/music/samples/loop001.wav

  • soit le caractère spécial d'anti-slash, « \\ » : c:\\music\\samples\\loop001.wav

Exemples

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>


Voir aussi

diskin, in, inh, ino, inq, ins

Crédits

Auteurs : Barry L. Vercoe, Matt Ingalls/Mike Berry
MIT, Mills College
1993-1997

Avertissement pour les utilisateurs de Windows ajouté par Kevin Conder, avril 2002