subinstr

subinstr — Crée et lance une instance d'un instrument numéroté.

Description

Crée une instance d'un autre instrument qui est utilisé comme s'il était un opcode.

Syntaxe

a1, [...] [, a8] subinstr instrnum [, p4] [, p5] [...]
a1, [...] [, a8] subinstr "insname" [, p4] [, p5] [...]

Initialisation

instrnum -- Numéro de l'instrument à appeler.

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

Exécution

a1, ..., a8 -- La sortie audio de l'instrument appelé. Elle est générée au moyen des opcodes de Sortie de Signal.

p4, p5, ... -- Valeurs d'entrée supplémentaires qui sont affectées aux p-champs de l'instrument appelé, en commençant par p4.

Les valeurs p2 et p3 de l'instrument appelé seront indentiques aux valeurs de l'instrument hôte. Alors que l'instrument hôte peut contrôler sa propre duréee, toute tentative similaire à l'intérieur de l'instrument appelé n'aura très probablement aucun effet.

Voir aussi

event, schedule, subinstrinit

Exemples

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

Exemple 1049. Exemple de l'opcode subinstr.

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

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

; Instrument #1 - Creates a basic tone.
instr 1
  ; Print the value of p4, should be equal to
  ; Instrument #2's iamp field.
  print p4

  ; Print the value of p5, should be equal to
  ; Instrument #2's ipitch field.
  print p5

  ; Create a tone.
  asig oscils p4, p5, 0

  out asig
endin


; Instrument #2 - Demonstrates the subinstr opcode.
instr 2
  iamp = 20000
  ipitch = 440

  ; Use Instrument #1 to create a basic sine-wave tone.
  ; Its p4 parameter will be set using the iamp variable.
  ; Its p5 parameter will be set using the ipitch variable.
  abasic subinstr 1, iamp, ipitch

  ; Output the basic tone that we have created.
  out abasic
endin


</CsInstruments>
<CsScore>

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

; Play Instrument #2 for one second.
i 2 0 1
e


</CsScore>
</CsoundSynthesizer>


Voici un exemple de l'opcode subinstr utilisant un instrument nommé. Il utilise le fichier subinstr_named.csd.

Exemple 1050. Exemple de l'opcode subinstr utilisant un instrument nommé.

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

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

; Instrument "basic_tone" - Creates a basic tone.
instr basic_tone
  ; Print the value of p4, should be equal to
  ; Instrument #2's iamp field.
  print p4

  ; Print the value of p5, should be equal to
  ; Instrument #2's ipitch field.
  print p5

  ; Create a tone.
  asig oscils p4, p5, 0

  out asig
endin


; Instrument #1 - Demonstrates the subinstr opcode.
instr 1
  iamp = 20000
  ipitch = 440

  ; Use the "basic_tone" named instrument to create a 
  ; basic sine-wave tone.
  ; Its p4 parameter will be set using the iamp variable.
  ; Its p5 parameter will be set using the ipitch variable.
  abasic subinstr "basic_tone", iamp, ipitch

  ; Output the basic tone that we have created.
  out abasic
endin


</CsInstruments>
<CsScore>

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

; Play Instrument #1 for one second.
i 1 0 1
e


</CsScore>
</CsoundSynthesizer>


Crédits

Nouveau dans la version 4.21