trigger
Prev | Orchestra Opcodes and Operators | Next

## trigger

trigger — Informs when a krate signal crosses a threshold.

## Description

Informs when a krate signal crosses a threshold.

## Syntax

    kout trigger ksig, kthreshold, kmode

## Performance

ksig -- input signal

kthreshold -- trigger threshold

kmode -- can be 0 , 1 or 2

Normally trigger outputs zeroes: only each time ksig crosses kthreshold trigger outputs a 1. There are three modes of using ktrig:

- kmode = 0 - (down-up) ktrig outputs a 1 when current value of ksig is higher than kthreshold, while old value of ksig was equal to or lower than kthreshold.

- kmode = 1 - (up-down) ktrig outputs a 1 when current value of ksig is lower than kthreshold while old value of ksig was equal or higher than kthreshold.

- kmode = 2 - (both) ktrig outputs a 1 in both the two previous cases.

## Examples

Here is an example of the trigger opcode. It uses the file trigger.csd.

Example 516. Example of the trigger opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

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

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

    ; Instrument #1.
    instr 1
      ; Use a square-wave low frequency oscillator as the trigger.
      klf lfo 1, 10, 3
      ktr trigger klf, 1, 2

      ; When the value of the trigger isn't equal to 0, print it out.
      if (ktr == 0) kgoto contin
        ; Print the value of the trigger and the time it occurred.
        ktm times
        printks "time = %f seconds, trigger = %f\\n", 0, ktm, ktr

    contin:
      ; Continue with processing.
    endin

    </CsInstruments>
    <CsScore>

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

    </CsScore>
    </CsoundSynthesizer>

Its output should include lines like this:

    time = 0.050340 seconds, trigger = 1.000000
    time = 0.150340 seconds, trigger = 1.000000
    time = 0.250340 seconds, trigger = 1.000000
    time = 0.350340 seconds, trigger = 1.000000
    time = 0.450340 seconds, trigger = 1.000000
    time = 0.550340 seconds, trigger = 1.000000
    time = 0.650340 seconds, trigger = 1.000000
    time = 0.750340 seconds, trigger = 1.000000
    time = 0.850340 seconds, trigger = 1.000000
    time = 0.950340 seconds, trigger = 1.000000

## Credits

Author: Gabriel Maldonado
Italy

Example written by Kevin Conder.

New in Csound version 3.49

Prev | Up | Next
trhighest | Home | trigseq