fout
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## fout

fout — Envoie des signaux de taux-a vers un nombre arbitraire de canaux dans un fichier externe.

## Description

fout envoie N signaux de taux-a vers un fichier spécifié à N canaux.

## Syntaxe

    fout ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]

    fout ifilename, iformat, array[]

## Initialisation

ifilename -- le nom du fichier de sortie (entre guillements)

iformat -- un indicateur pour choisir le format du fichier de sortie (note : il se peut que les versions de Csound antérieures à la 5.0 ne supportent que les formats 0, 1 et 2) :

- -1 - formatage identique à celui des options globales de sortie de Csound (-A, -W, --format=..., etc).

- 0 - échantillons en flottants sur 32 bit sans en-tête (fichier PCM binaire multicanaux)

- 1 - entiers sur 16 bit sans en-tête (fichier PCM binaire multicanaux)

- 2 - entiers sur 16 bit avec en-tête. Le type de l'en-tête dépend du format de restitution (-o). Par exemple, si l'utilisateur choisit le format AIFF (en utilisant l'option -A), le format de l'en-tête sera de type AIFF.

- 3 - échantillons u-law avec un en-tête (voir iformat=2).

- 4 - entiers sur 16 bit avec un en-tête (voir iformat=2).

- 5 - entiers sur 32 bit avec un en-tête (voir iformat=2).

- 6 - flottants sur 32 bit avec un en-tête (voir iformat=2).

- 7 - entiers non signés sur 8 bit avec un en-tête (voir iformat=2).

- 8 - entiers sur 24 bit avec un en-tête (voir iformat=2).

- 9 - flottants sur 64 bit avec un en-tête (voir iformat=2).

- 50 - format ogg-vorbis.

De plus, les versions de Csound à partir de la 5.0 permettent de choisir explicitement un type d'en-tête particulier en spécifiant le format comme 10 * typeFichier + formatEchantillon, où typeFichier peut valoir 1 pour WAV, 2 pour AIFF, 3 pour fichiers brut (sans en-tête) et 4 pour IRCAM ; formatEchantillon est l'une des valeurs ci-dessus comprise entre 0 et 9, sauf que le format d'échantillon 0 est déduit de la ligne de commande (-o), le format 1 représente des entiers signés sur 8 bit et le format 2 est a-law. Ainsi, par exemple, iformat = 25 signifie des entiers sur 32 bit avec un en-tête AIFF.

## Exécution

aout1,... aoutN -- signaux à écrire dans le fichier. Dans le cas de fichiers bruts, l'étendue de l'amplitude des signaux audio est déterminée par le format d'échantillon choisi ; pour les fichiers son avec un en-tête comme WAV et AIFF, les signaux audio doivent être dans l'intervalle compris entre -0dbfs et 0dbfs.

fout (file output) écrit des échantillons de signaux audio dans un fichier avec n'importe quel nombre de canaux. Le nombre de canaux dépend du nombre de variables aoutN (par exemple un signal mono avec un seul argument de taux-a, un signal stéréo avec deux arguments de taux-a, etc.) Le nombre maximum de canaux est fixé à 64. Plusieurs opcodes fout peuvent se trouver dans le même instrument, se référant à différents fichiers.

Noter que, contrairement à out, outs et outq, fout ne remet pas à zéro la variable audio, c'est pourquoi l'on doit la remettre à zéro après l'appel. Si l'on travaille en polyphonie, on peut utiliser les opcodes vincr et clear pour cela.

Noter que fout et foutk utilisent une chaîne de caractères contenant un nom de chemin de fichier. Alors qu'avec fouti et foutir, le fichier cible ne peut être spécifié que par un identificateur numérique.

| Note
Si l'on utilise fout pour générer un fichier audio depuis la sortie globale de Csound, il peut être désirable d'utiliser l'opcode monitor qui peut capter le tampon de sortie, ce qui évite le routage.

## Exemples

Voici un exemple de l'opcode fout. Il utilise le fichier fout.csd.

Exemple 366. Exemple de l'opcode fout.

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 fout.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    giSine ftgen 0, 0, 2^10, 10, 1

    instr 1

    asig poscil3 .5, 880, giSine
    ;write a raw file: 32 bits with header
         fout "fout_880.wav", 15, asig
         outs asig, asig

    endin

    instr 2

    klfo lfo 1, 2, 0
    asig poscil3 .5*klfo, 220, giSine
    ;write an aiff file: 32 bits with header
         fout "fout_aif.aiff", 25, asig
    ;        fout "fout_all3.wav", 14, asig
         outs asig, asig

    endin

    instr 99 ;read the stereo csound output buffer

    allL, allR monitor
    ;write the output of csound to an audio file
    ;to a wav file: 16 bits with header
               fout "fout_all.wav", 14, allL, allR

    endin
    </CsInstruments>
    <CsScore>

    i 1 0 2
    i 2 0 3
    i 99 0 3
    e
    </CsScore>
    </CsoundSynthesizer>

Voici un autre exemple de fout, qui l'utilise pour sauvegarder le contenu d'une table dans un fichier audio. Il utilise les fichiers fout_ftable.csd et beats.wav.

Exemple 367. Exemple de l'opcode fout pour sauvegarder le contenu d'une ftable.

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

      gilen		=		131072
      gicps		=		sr/gilen
      gitab		ftgen		1, 0, gilen, 10, 1

                    instr 1

      /******** write file to table ********/

      ain		diskin2		"beats.wav", 1, 0, 1
      aphs		phasor		gicps
      andx		=		aphs * gilen
    		tablew		ain, andx, gitab

      /******** write table to file ********/

      aosc		table		aphs, gitab, 1
    		out		aosc
    		fout		"beats_copy.wav", 6, aosc

                    endin

    </CsInstruments>
    <CsScore>
    i1 0 2
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

fiopen, fouti, foutir, foutk, monitor

## Crédits

Auteur : Gabriel Maldonado
Italie
1999
Author: John ffitch
NUIM, 2013

Nouveau dans la version 3.56 de Csound

Octobre 2002. Note ajoutée par Richard Dobson.

Variante pour tableau ajoutée dans la version 6.01

Précédent | Niveau supérieur | Suivant
foscili | Sommaire | fouti