Utiliser Csound
Précédent | Partie I. Vue d'ensemble | Suivant

## Utiliser Csound

On peut faire fonctionner Csound dans divers modes et configurations. La méthode originale pour lancer Csound était un programme de console (invite DOS pour Windows, Terminal pour Mac OS X). Bien sûr, ceci fonctionne toujours. Lancer csound sans argument retourne une liste d'options de commande en ligne, qui sont expliquées plus en détail dans la section options de ligne de commande (par catégorie). Normallement, l'utilisateur exécute quelque chose comme :

    csound monfichier.csd

ou si l'on utilise des fichiers d'orchestre (orc) et de partition (sco) séparés :

    csound monorchestre.orc mapartition.sco

On peut trouver plusieurs fichiers .csd dans le répertoire des exemples. La plupart des articles de ce manuel sur les opcodes incluent également des fichiers .csd simples montrant l'utilisation de l'opcode.

Il y a aussi plusieurs frontaux que l'on peut utiliser pour lancer csound. Un frontal est un programme graphique qui facilite la tâche de lancer csound, et qui fournit parfois des fonctionnalités d'édition et de composition.

Csound a aussi plusieurs moyens de produire une sortie. Il peut :

- Lire et écrire dans des fichiers son (restitution différée) - En utilisant les options -o et -i pour spécifier un fichier de sortie.
- Lire et écrire des données audio-numériques en utilisant une carte son (restitution en ) - En utilisant les options -odac et -iadc
- Lire et écrire dans des fichiers MIDI (temps différé) - En utilisant les options -F et --midioutfile.
- Lire et écrire des données MIDI en utilisant une interface et un contrôleur MIDI (contrôle en temps réel) - En utilisant les options -M et -Q.

## Sortie console de Csound

Pendant son exécution, Csound écrit une sortie texte sur la console, qui montre des données sur cette exécution. Une sortie console ressemble à ceci :

    time resolution is 0.455 ns
    PortMIDI real time MIDI greffon for Csound
    virtual_keyboard real time MIDI greffon for Csound
    PortAudio real-time audio module for Csound
    0dBFS level = 32768.0
    Csound version 5.10 beta (float samples) Apr 19 2009
    libsndfile-1.0.17
    Reading options from $HOME/.csoundrc
    UnifiedCSD:  oscil.csd
    STARTING FILE
    Creating options
    Creating orchestra
    Creating score
    orchname:  /tmp/csound-XYACV6.orc
    scorename: /tmp/csound-IYtLAJ.sco
    rtaudio: ALSA module enabled
    rtmidi: PortMIDI module enabled
    orch compiler:
    17 lines read
            instr   1
    Elapsed time at end of orchestra compile: real: 0.129s, CPU: 0.020s
    sorting score ...
            ... done
    Elapsed time at end of score sort: real: 0.130s, CPU: 0.020s
    Csound version 5.10 beta (float samples) Apr 19 2009
    displays suppressed
    0dBFS level = 32768.0
    orch now loaded
    audio buffered in 256 sample-frame blocks
    ALSA input: total buffer size: 1024, period size: 256
    reading 1024-byte blks of shorts from adc (RAW)
    ALSA output: total buffer size: 1024, period size: 256
    writing 1024-byte blks of shorts to dac
    SECTION 1:
    ftable 1:
    new alloc for instr 1:
    B  0.000 ..  2.000 T  2.000 TT  2.000 M:  10000.0  10000.0
    Score finished in csoundPerform().
    inactive allocs returned to freespace
    end of score.              overall amps:  10000.0  10000.0
               overall samples out of range:        0        0
    0 errors in performance
    Elapsed time at end of performance: real: 2.341s, CPU: 0.050s
    345 1024-byte soundblks of shorts written to dac
    Removing temporary file /tmp/csound-CoVcrm.srt ...
    Removing temporary file /tmp/csound-IYtLAJ.sco ...
    Removing temporary file /tmp/csound-XYACV6.orc ...

La sortie console de Csound est assez fournie, particulièrement avant le début de l'exécution proprement dite (version, greffons chargés, etc.). L'exécution commence lorqu'apparaît sur la console :

    SECTION 1:

Dans cette exécution particulière, les lignes :

    new alloc for instr 1:
    B  0.000 ..  2.000 T  2.000 TT  2.000 M:  10000.0  10000.0

montrent qu'une note pour l'instrument 1, durant 2 secondes et commençant à la date 0.000, a été produite avec une amplitude de 10000 sur les canaux 1 et 2. Une section importante de la sortie console est :

    end of score.              overall amps:  10000.0  10000.0
               overall samples out of range:        0        0

qui montre l'amplitude globale et le nombre d'échantillons qui ont été rognés parce qu'ils étaient hors limites.

La ligne :

    Elapsed time at end of performance: real: 2.341s, CPU: 0.050s

montre le temps d'horloge et le temps CPU utilisés par le processeur pour compléter le travail. Si le temps CPU est inférieur au temps d'horloge, cela veut dire que le csd peut être exécuté en temps réel (à moins qu'il ne contienne certaines sections très gourmandes en ressources CPU). La valeur "real time" est le temps total de traitement et il est supérieur car il comprend les accès disque, le chargement de modules, etc. (le temps CPU ne comptabilise que les calculs numériques). Si vous avez un son qui dure 100 secondes et que sa génération hors ligne ne dure que 5 secondes, cela veut dire que vous n'utilisez qu'environ 5% du CPU, et que son exécution ne nécessite que 0.05 du temps réel.

Précédent | Niveau supérieur | Suivant
Prétraitement indépendant avec Scsort | Sommaire | Comment Csound fonctionne