active — Retourne le nombre d'instances actives d'un instrument.
Retourne le nombre d'instances actives d'un instrument, avec une option pour ignorer les instances en phase de relâchement.
ir active insnum [,iopt [,inorel]]
ir active Sinsname [,iopt [,inorel]]
kres active kinsnum [,iopt [,inorel]]
insnum -- numéro ou nom de l'instrument concerné
Sinsname -- nom de l'instrument
iopt (facultatif, 0 par défaut) -- par défaut, l'opcode retourne le nombre d'instances couramment actives. Si ce paramètre est différent de zéro, l'opcode retourne le nombre d'instances activées depuis le début de l'exécution.
inorel -- s'il est différent de zéro, les instruments en phase de relâchement son ignorés (vaut zéro par défaut). N'est valide que si iopts vaut zéro.
kinsnum -- numéro ou nom de l'instrument concerné
active retourne le nombre d'instances actives de l'instrument numéro insnum/kinsnum (ou de l'instrument nommé Sinsname). A partir de Csound 4.17 la sortie est mise à jour au taux-k (si l'argument d'entrée est de taux-k), pour permettre un comptage dynamique des instances de l'instrument.
A partir de Csound 5.17 si le numéro de l'instrument passé vaut zéro, tous les instruments sont comptés.
Voici un exemple simple de l'opcode active. Il utilise le fichier active.csd.
Exemple 44. Exemple simple de l'opcode active.
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 active.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1 - a noisy waveform. instr 1 ; Generate a really noisy waveform. anoisy rand 44100 ; Turn down its amplitude. aoutput gain anoisy, 2500 ; Send it to the output. out aoutput endin ; Instrument #2 - counts active instruments. instr 2 ; Count the active instances of Instrument #1. icount active 1 ; Print the number of active instances. print icount endin </CsInstruments> <CsScore> ; Start the first instance of Instrument #1 at 0:00 seconds. i 1 0.0 3.0 ; Start the second instance of Instrument #1 at 0:015 seconds. i 1 1.5 1.5 ; Play Instrument #2 at 0:01 seconds, when we have only ; one active instance of Instrument #1. i 2 1.0 0.1 ; Play Instrument #2 at 0:02 seconds, when we have ; two active instances of Instrument #1. i 2 2.0 0.1 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme :
instr 2: icount = 1.000 instr 2: icount = 2.000
Voici un exemple plus avancé de l'opcode active. Il affiche le résultat de l'opcode active au taux-k. Il utilise le fichier active_k.csd.
Exemple 45. Exemple de l'opcode active au taux-k.
<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 active_k.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1 - a noisy waveform. instr 1 ; Generate a really noisy waveform. anoisy rand 44100 ; Turn down its amplitude. aoutput gain anoisy, 2500 ; Send it to the output. out aoutput endin ; Instrument #2 - counts active instruments at k-rate. instr 2 ; Count the active instances of Instrument #1. kcount active 1 ; Print the number of active instances. printk2 kcount endin </CsInstruments> <CsScore> ; Start the first instance of Instrument #1 at 0:00 seconds. i 1 0.0 3.0 ; Start the second instance of Instrument #1 at 0:015 seconds. i 1 1.5 1.5 ; Play Instrument #2 at 0:01 seconds, when we have only ; one active instance of Instrument #1. i 2 1.0 0.1 ; Play Instrument #2 at 0:02 seconds, when we have ; two active instances of Instrument #1. i 2 2.0 0.1 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme :
i2 1.00000 i2 2.00000
Voici un autre exemple de l'opcode active, qui utilise le nombre d'instances pour calculer le gain. Il utilise le fichier active_scale.csd.
Exemple 46. Exemple de l'opcode active au taux-k.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o atone.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr= 44100 ksmps = 64 nchnls = 1 0dbfs = 1 ;by Victor Lazzarini 2008 instr 1 kscal active 1 kamp port 1/kscal, 0.01 asig oscili kamp, p4, 1 kenv linseg 0, 0.1,1,p3-0.2,1,0.1, 0 out asig*kenv endin </CsInstruments> <CsScore> f1 0 16384 10 1 i1 0 10 440 i1 1 3 220 i1 2 5 350 i1 4 3 700 e </CsScore> </CsoundSynthesizer>
Auteur : John ffitch |
University of Bath/Codemist Ltd. |
Bath, UK |
Juillet 1999 |
Exemples écrits par Kevin Conder.
Nouveau dans la version 3.57 de Csound ; instruments nommés ajoutés dans la version 5.13
Nouvelle option pour toutes les instances activées dans la version 5.13
Le compte de tous les instruments est nouveau dans la version 5.17
Option no release ajoutée dans la version 5.19