nstance

nstance — Programme une nouvelle instance d'instrument et stocke le descripteur de l'instance dans une variable.

Description

Programme une nouvelle instance d'instrument et retourne un descripteur utilisable ultérieurement pour faire référence directement à l'instance courante. Cet opcode est semblable à schedule avec cependant la possibilité supplémentaire de retrouver le descripteur de l'instance.

Syntaxe

iHandle nstance insnum, iwhen, idur [, ip4] [, ip5] [...]
iHandle nstance "insname", iwhen, idur [, ip4] [, ip5] [...]

Initialisation

iHandle -- cette variable reçoit un descripteur de l'instance de l'évènement. On peut l'utiliser, par exemple, pour arrêter l'instance de l'instrument donné via l'opcode turnoff. Noter que le descripteur de l'instance n'est valide qu'une fois l'instrument initialisé.

insnum -- numéro de l'instrument. Equivalent à p1 dans une instruction i de partition. insnum doit être un nombre supérieur au numéro de l'instrument appelant.

« insname » -- Une chaîne de caractères (entre guillemets) représentant un instrument nommé.

iwhen -- date de début du nouvel évènement. Equivalent à p2 dans une instruction i de partition. iwhen ne doit pas être négatif. Si iwhen vaut zéro, insum doit être supérieur ou égal au p1 de l'instrument courant.

idur -- durée de l'évènement. Equivalent à p3 dans une instruction ide partition.

ip4, ip5, ... -- Equivalent à p4, p5, etc., dans une instruction ide partition.

Exécution

nstance ajoute un nouvel évènement de partition. Les arguments, options incluses, sont les mêmes que dans une partition. Le temps iwhen (p2) est mesuré à partir de l'instant de cet évènement.

Si la durée est nulle ou négative, le nouvel évènement est de type MIDI, et il hérite le sous-évènement de relachement (release) de l'instruction de programmation.

[Note] Note

Noter que l'opcode instance ne peut pas accepter de p-champs chaîne de caractères. Si vous devez passer des chaînes de caractères à l'instanciation d'un instrument, utilisez l'opcode scoreline ou scoreline_i.

Exemples

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

Exemple 606. Exemple de l'opcode nstance.

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

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

; Instrument #1 - oscillator with a high note.
instr 1
  ; Play Instrument #2 at the same time.
  iHandle nstance 2, 0, p3

  ; Play a high note.
  a1 oscils 10000, 880, 1
  out a1
endin

; Instrument #2 - oscillator with a low note.
instr 2
  ; Play a low note.
  a1 oscils 10000, 220, 1
  out a1
endin


</CsInstruments>
<CsScore>

; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for half a second.
i 1 0 0.5
; Play Instrument #1 for half a second.
i 1 1 0.5
e


</CsScore>
</CsoundSynthesizer>


See Also

schedwhen

Voir aussi

event, event_i, schedwhen, schedkwhen, schedkwhennamed, scoreline, scoreline_i

Pour plus d'information sur cet opcode : http://www.csoundjournal.com/issue15/phrase_loops.html, écrit par Jim Aikin.

Crédits

Auteur : Victor Lazzarini
Novembre 2013