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

## turnoff2

turnoff2 — Arrête une ou des instances d'autres instruments pendant la phase d'exécution.

## Description

Arrête une ou des instances d'autres instruments pendant la phase d'exécution.

## Syntaxe

    turnoff2 kinsno, kmode, krelease

## Exécution

kinsno -- instrument à arrêter (peut-être fractionnaire). S'il vaut zéro ou est négatif, aucun instrument n'est arrêté.

kmode -- somme des valeurs suivantes :

- 0, 1, ou 2 : arrête toutes les instances (0), seulement les plus anciennes (1), ou seulement les plus récentes (2)

- 4 : n'arrête que les notes dont la partie fractionnaire du numéro d'instrument correspond à kinsno, plutôt que d'ignorer la partie fractionnaire.

- 8 : n'arrête que les notes dont la durée est indéfinie (p3 < 0 ou MIDI).

krelease -- s'il est non nul, les instances arrêtées peuvent avoir une période d'extinction (release), sinon elles sont désactivées immédiatement (avec possible émission de clics).

Il faut respecter le principe d'arrêter des instruments ayant un numéro plus élevé que celui de l'instrument duquel turnoff2 est appelé, sinon il peut y avoir des problèmes d'initialisation.

## Exemples

L'exemple suivant, écrit par Lou Cohen, utilise l'opcode turnoff2.

Exemple 984. Exemple de l'opcode turnoff2.

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
    -odac     ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o sin.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr        =          48000    ;samples per second for sound
    kr        =        4800
    nchnls    =        1
    0dbfs    =        32767

    gisine    ftgen    1, 0, 131073, 9, 1, 1, 0                ;single sine tone

    ;-----------------------------------------
    instr 2 ;start
        ktrigger        init        0
        if (ktrigger = 0) then
            kMultiple    =    1.1
            kHz            =    440
            kAmp            =    (0dbfs/10)
    ;startup four instances of instrument 200
            event    "i", 200, 0, 3000, kAmp, kHz
            kAmp    =    kAmp * 0.75
            kHz    =    kHz * kMultiple

            event    "i", 200, 0, 3000, kAmp, kHz
            kAmp    =    kAmp * 0.75
            kHz    =    kHz * kMultiple

            event    "i", 200, 0, 3000, kAmp, kHz
            kAmp    =    kAmp * 0.75
            kHz    =    kHz * kMultiple

            event    "i", 200, 0, 3000, kAmp, kHz
            kAmp    =    kAmp * 0.75
            kHz    =    kHz * kMultiple
            ktrigger        =    1
        endif
    endin
    ;---------------------------------------------
    instr 3 ;after 10 seconds, turn off the instruments
        ktrigger init 1
       if (ktrigger==1) then
            turnoff2 200, 1, 1    ;turn off must recently started instrument instance
            kactive active 200    ;find out how many are still active
            printk2 kactive       ;print mainly to show progress

            turnoff2    200, 0, 1    ;turn off all the rest of the instruments
            kactive    active 200    ;find out how many are still active
            printk2    kactive, 10    ;print to show progress
    endif
    endin
    ;----------------------------------------------------
    instr 200 ;play the tone
    kEnv    linen    1, 0.1, p3, 0.1
    ar      oscil    kEnv*p4, p5, 1
            out      ar
            print    p4, p5

    endin
    </CsInstruments>
    <CsScore>

    i2 0 0.1
    i3 10 0.1
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

turnoff

## Crédits

Auteur : Istvan Varga
2005

Nouveau dans Csound 5.00

Précédent | Niveau supérieur | Suivant
turnoff | Sommaire | turnon