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

Example 1. Example of the cngoto opcode.

    /* cngoto.orc */
    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    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
    /* cngoto.orc */

    /* cngoto.sco */
    ; Table: a simple sine wave.
    f 1 0 32768 10 1

    ; Play Instrument #1 for two seconds.
    i 1 0 2
    e
    /* cngoto.sco */

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

Previous | Home | Next
clockon | Up | comb