instr

instr — Commence un bloc d'instrument.

Description

Commence un bloc d'instrument.

Syntaxe

instr i, j, ...

Initialisation

Commence un bloc d'instrument, définissant les instruments i, j, ...

i, j, ... doivent être des nombres, pas des expressions. Tout entier positif convient, dans n'importe quel ordre, mais on préfère éviter les nombres excessivement grands.

[Note] Note

Il peut y avoir n'importe quel nombre de blocs d'instrument dans un orchestre.

On peut définir les instruments dans n'importe quel ordre (mais ils seront toujours initialisés et exécutés par ordre de numéro d'instrument ascendant, à l'exception des notes provoquées par des évènements en temps réel, qui sont initialisées dans l'ordre où elles sont reçues mais toujours exécutées par ordre de numéro d'instrument ascendant). Les blocs d'instruments ne peuvent pas être imbriqués (un bloc ne peut pas en contenir un autre).

Exécution

Appeler un Instrument depuis un Instrument

[Avertissement] Avertissement

Ce comportement n'est pas complètement disponible dans Csound 5. Dans Csound 5, il faut utiliser l'opcode subinstr.

On peut appeler un instrument depuis un instrument comme si c'était un opcode soit au moyen de l'opcode subinstr soit en spécifiant un instrument avec un nom textuel :

instr MonOscil
...
endin

Par défaut, tous les paramètres de sortie correspondent aux sorties de l'instrument exprimées par des opcodes de sortie de signal. Tous les paramètres d'entrée sont affectés aux p-champs de l'instrument appelé en commençant par le quatrième, p4. Les valeurs des deuxième et troisième p-champs de l'instrument appelé, p2 et p3, sont automatiquement fixés à la même valeur que ceux de l'instrument appelant.

Un instrument nommé doit être défini avant les instrument qui l'appellent.

[Note] Conseils

Si vous utiliser l'opcode outc, vous pouvez créer un instrument qui pourra être compilé et fontionner dans des orchestres avec n'importe quel nombre de canaux plus grand au égal ou nombre de canaux de sortie de cet instrument.

Il est intéressant d'utiliser la fonctionnalité #include avec les instruments nommés. Vous pouvez définir vos instruments nommés dans des fichiers séparés, et utiliser #include lorsque vous en avez besoin.

Exemples

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

Exemple 387. Exemple de l'opcode instr.

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 instr.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
  iamp = 10000
  icps = 440
  iphs = 0

  a1 oscils iamp, icps, iphs
  out a1
endin


</CsInstruments>
<CsScore>

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


</CsScore>
</CsoundSynthesizer>


Voir aussi

endin, in, out, opcode, endop, setksmps, xin, xout, subinstr, subinstrinit

Crédits

Exemple écrit par Kevin Conder.