cngoto
Prev | Orchestra Opcodes and Operators | Next

## cngoto

cngoto — Transfers control on every pass when a condition is not true.

## Description

Transfers control on every pass when the condition is not true.

## Syntax

    cngoto condition, label

where label is in the same instrument block and is not an expression, and where condition uses one of the Relational operators (<, =, <=, ==, !=) (and = for convenience, see also under Conditional Values).

## Examples

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

Example 148. Example of the cngoto opcode.

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

    <CsoundSynthesizer>
    <CsOptions>
    ; Audio out   Audio in
    -odac           -iadc    ;;;RT audio I/O
    ; -o cngoto.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    ; Instrument #1.
    instr 1
      ; Change kval linearly from 0 to 2 over
      ; the period set by the third p-field.
      kval line 0, p3, 2

      ; If kval *is not* greater than or equal to 1 then play
      ; the high note. Otherwise, play the low note.
      cngoto (kval >= 1), highnote
        kgoto lownote

    highnote:
      kfreq = 880
      goto playit

    lownote:
      kfreq = 440
      goto playit

    playit:
      ; Print the values of kval and kfreq.
      printks "kval = %f, kfreq = %f\\n", 1, kval, kfreq

      a1 oscil 10000, kfreq, 1
      out a1
    endin

    </CsInstruments>
    <CsScore>

    ; Table: a simple sine wave.
    f 1 0 32768 10 1

    ; Play Instrument #1 for two seconds.
    i 1 0 2
    e

    </CsScore>
    </CsoundSynthesizer>

Its output should include lines like:

    kval = 0.000000, kfreq = 880.000000
    kval = 0.999732, kfreq = 880.000000
    kval = 1.999639, kfreq = 440.000000

## See Also

cggoto, cigoto, ckgoto, goto, if, igoto, tigoto, timout

## Credits

Example written by Kevin Conder.

New in version 4.21

Prev | Up | Next
cmplxprod | Home | comb