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 665. 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         ;;;RT audio out
; For Non-realtime ouput leave only the line below:
; -o nstance.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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


instr 1 ; Instrument #1 - oscillator with a high note.
  
  iHandle nstance 2, .3, p3     ; Play Instrument #2 0.3 seconds later
  a1 oscils .5, 880, 1          ; a high note
  outs a1 * .5, a1              ; ... a bit to the right
  print iHandle
endin


instr 2 ; Instrument #2 - oscillator with a low note.
  
  a1 oscils .5, 110, 1          ; a low note
  outs a1, a1 * .5              ; ... a bit to the left
endin


</CsInstruments>
<CsScore>
f 1 0 16384 10 1    ; a sine wave.

i 1 0 1
i 1 2 .5
e
</CsScore>
</CsoundSynthesizer>


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