The Alternative Csound Reference Manual
Previous |  | 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 files trigger.orc and trigger.sco.

Example 1. Example of the trigger opcode.

    /* trigger.orc */
    ; 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
    /* trigger.orc */

    /* trigger.sco */
    ; Play Instrument #1 for one second.
    i 1 0 1
    e
    /* trigger.sco */

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

Previous | Home | Next
transeg | Up | trigseq