GEN01 — Transfère des données d'un fichier son dans une table de fonction.
taille -- nombre de points dans la table. Ordinairement une puissance de 2 ou une puissance-de-2 plus 1 (voir l'instruction f) ; la taille de table maximale est de 16777216 (224) points. L'allocation de mémoire pour la table peut être différée en mettant ce paramètre à 0 ; la taille allouée est alors le nombre de points dans le fichier (probablement pas une puissance de 2), et la table n'est pas utilisable par les oscillateurs normaux, mais par l'unité loscil. Le fichier son peut aussi être mono ou stéréo.
codfic -- entier ou chaîne de caractères dénotant le nom du fichier son source. Un entier dénote le fichier soundin.codfic ; une chaîne de caractères (entre apostrophes doubles, espaces autorisés) donne le nom du fichier lui-même, optionnellement un nom de chemin complet. Si le chemin n'est pas complet, le fichier est d'abord cherché dans le répertoire courant, ensuite dans celui qui est donné par la variable d'environnement SSDIR (si elle est définie) enfin par SFDIR. Voir aussi soundin.
decal -- commence à lire à decal secondes dans le fichier.
canal -- numéro du canal à lire. 0 indique de lire tous les canaux.
format -- s'il est positif, il est ignoré, mais s'il est négatif, il spécifie le format audio d'un fichier brut :
-1 - 8-bit caractères signés
-2 - 8-bit octets A-law
-3 - 8-bit octets U-law
-4 - 16-bit entiers courts
-5 - 32-bit entiers longs
-6 - 32-bit flottants
-7 - 8-bit caractères non signés
-8 - 24-bit entiers
-9 - 64-bit doubles
Note | |
---|---|
Cette liste n'est pas la même que celle qui est dans diskin2. |
Si format = 0 le format des échantillons est lu dans l'en-tête du fichier son.
Note | |
---|---|
|
Voici un exemple de la routine GEN01. Il utilise le fichier gen01.csd et plusieurs fichiers son.
Exemple 1274. Un exemple de la routine GEN01.
<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 gen01.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;plays deferred and non-deferred sounds with loscil ifn = p4 ibas = 1 asig loscil 1, 1, ifn, ibas outs asig, asig endin instr 2 ;plays only non-deffered sound isnd = p4 aread line sr*p3, p3, 0 ;play this backward asig tablei aread, isnd ;use table 1 outs asig, asig endin </CsInstruments> <CsScore> f 1 0 131072 1 "beats.wav" 0 0 0 ;non-deferred sound f 2 0 0 1 "flute.aiff" 0 0 0 ;& deferred sounds in f 3 0 0 1 "beats.ogg" 0 0 0 ;different formats i 1 0 1 1 i 1 + 1 2 i 1 + 1 3 i 2 4 2 1 ;non-deffered sound for instr. 2 e </CsScore> </CsoundSynthesizer>
Voici les diagrammes des formes d'onde des routines GEN01 utilisées
dans l'exemple :