GEN01

GEN01 — Transfère des données d'un fichier son dans une table de fonction.

Description

Ce sous-programme transfère des données d'un fichier son dans une table de fonction.

Syntaxe

f#  date  taille  1  codfic  decal  format  canal

Exécution

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 -- spécifie le format des données audio :


1 - 8-bit caractères signés    4 - 16-bit entiers courts 
2 - 8-bit octets A-law         5 - 32-bit entiers longs
3 - 8-bit octets U-law         6 - 32-bit flottants
        

Si format = 0 le format des échantillons est lu dans l'en-tête du fichier son ou, par défaut depuis l'option -o de la ligne de commande de Csound.

[Note] Note

  • La lecture s'arrête à la fin du fichier ou lorsque la table est pleine. Les cellules de la table non remplies contiendront des zéros.

  • Si p4 est positif, la table sera post-normalisée (reproportionnée avec une valeur absolue maximale de 1 après génération). Une valeur de p4 négative empêche cette opération.

Exemples

Voici un exemple simple de la routine GEN01. Il utilise les fichiers gen01.csd, et beats.wav. Il utilise le fichier audio "beats.wav" dont voici le graphe :

Graphe de la forme d'onde générée par GEN01.

Graphe de la forme d'onde générée par GEN01.

Exemple 924. Un exemple simple de la routine GEN01.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o gen01.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
   kamp = 30000
   kcps = 1
   ifn = 1
   ibas = 1

   ; Play the audio sample stored in Table #1.
   a1 loscil kamp, kcps, ifn, ibas
   out a1
endin


</CsInstruments>
<CsScore>

; Table #1: read an audio file (using GEN01).
f 1 0 131072 1 "beats.wav" 0 4 0

; Play Instrument #1 for 2 seconds.
i 1 0 2
e


</CsScore>
</CsoundSynthesizer>


Voici un autre exemple de la routine GEN01. Csound calculera automatiquement la taille de la table parce que nous l'avons fixée à 0. Cet exemple utilise les fichiers gen01computed.csd et beats.wav.

Exemple 925. Un exemple de la routine GEN01 avec une taille de table calculée.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o gen01computed.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
   kamp = 30000
   kcps = 1
   ifn = 1
   ibas = 1

   ; Play the audio sample stored in Table #1.
   a1 loscil kamp, kcps, ifn, ibas
   out a1
endin


</CsInstruments>
<CsScore>

; Table #1: an audio file (using GEN01).
; Since our table size is 0, Csound will compute it.
f 1 0 0 1 "beats.wav" 0 0 0

; Play Instrument #1 for 2 seconds.
i 1 0 2
e


</CsScore>
</CsoundSynthesizer>


Crédits

Exemples écrits par Kevin Conder

Décembre 2002. Remerciements à Kanata Motohashi pour la correction des erreurs dans les exemples.

Septembre 2003. Remerciements au Dr. Richard Boulanger pour avoir signalé les références au format de fichier AIFF. GEN01 fonctionnne aussi avec des fichiers WAV.