active
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## active

active — Retourne le nombre d'instances actives d'un instrument.

## Description

Retourne le nombre d'instances actives d'un instrument, avec une option pour ignorer les instances en phase de relâchement.

## Syntaxe

    ir active insnum [,iopt [,inorel]]

    ir active Sinsname [,iopt [,inorel]]

    kres active kinsnum [,iopt [,inorel]]

## Initialisation

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.

## Exécution

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.

## Exemples

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

Exemple 39. 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 40. 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 41. 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>

## Crédits

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

Précédent | Niveau supérieur | Suivant
abs | Sommaire | adsr