#include

#include — Inclut un fichier externe pour traitement.

Description

Les macros sont des substitutions de texte qui sont faites dans l'orchestre lors de sa lecture. Le système de macro de l'orchestre de Csound est très simple, et il utilise les caractères # et $ pour définir et appeler les macros. Il permet d'économiser de la frappe et peut conduire à une structure cohérente dans un style consistant. Il est similaire, tout en étant indépendant, au système de macros du langage de partition.

Inclut un fichier externe pour traitement.

Syntaxe

#include « nomfichier »
#includestr « nomfichier »

Exécution

#includestr est semblable à #include sauf que le nom du fichier doit être délimité par une apostrophe double et que ce nom de fichier peut subir un développement de macro.

Il est parfois commode d'organiser un orchestre sur plusieurs fichiers, par exemple avec chaque instrument dans un fichier séparé. Ce style est supporté par la fonctionnalité #include qui fait partie du système de macros. Une ligne contenant le texte

#include "nomfichier"

où le caractère " peut être remplacé par n'importe quel caractère approprié dans #include (mais pas dans #includestr). Pour la plupart des utilisations le symbole de l'apostrophe double sera probablement le plus commode. Le nom de fichier peut inclure un chemin complet.

L'entrée est prise à partir du fichier nommé jusqu'à son terme, puis revient à la source précédente. Note : les versions de Csound antérieures à la 4.19 limitaient à 20 la profondeur des fichiers inclus et des macros.

Il est également suggéré d'utiliser #include pour définir un ensemble de macros qui font partie du style du compositeur.

A la limite, on pourrait définir chaque instrument comme une macro, avec un numéro d'instrument en paramètre. On pourrait alors construire un orchestre entier à partir d'un certain nombre d'instructions #include suivies par des appels de macro.

#include "clarinet"
#include "flute"
#include "bassoon"
$CLARINET(1)
$FLUTE(2)
$BASSOON(3)

Il faut insister sur le fait que ces changements ont lieu au niveau littéral et n'ont donc aucune incidence sémantique.

Si Csound a été construit avec la bibliothèque CURL le nom de fichier dans une instruction #include peut être une URL, reconnue en incluant la sous-chaîne "://" dans le nom. Cela incluera du texte via des protocoles comme http, https et ftp.

Exemples

Voici un exemple de l'opcode include. Il utilise les fichiers include.csd, et table1.inc.

Exemple 11. Exemple de l'opcode include.

/* table1.inc */
; Table #1, a sine wave.
f 1 0 16384 10 1
/* table1.inc */

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
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o include.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1 - a basic oscillator.
instr 1
  kamp = 10000
  kcps = 440
  ifn = 1

  a1 oscil kamp, kcps, ifn
  out a1
endin


</CsInstruments>
<CsScore>

; Include the file for Table #1.
#include "table1.inc"

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


</CsScore>
</CsoundSynthesizer>


Voir aussi

#define, $NAME, #ifdef, #ifndef, #undef

Crédits

Auteur : John ffitch
University of Bath/Codemist Ltd.
Bath, UK
Avril 1998

#includestr nouveau dans la version 6.12

Exemple écrit par Kevin Conder.

Nouveau dans la version 3.48 de Csound

Les URLs sont disponibles depuis Csound 6.02