The Alternative Csound Reference Manual
Previous |  | Next

# ckgoto

ckgoto -- Conditionally transfer control during the p-time passes.

## Description

During the p-time passes only, unconditionally transfer control to the statement labeled by label.

## Syntax

ckgoto 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 ckgoto opcode. It uses the files ckgoto.orc and ckgoto.sco.

Example 1. Example of the ckgoto opcode.

    /* ckgoto.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 greater than or equal to 1 then play the high note.
      ; If not then play the low note.
      ckgoto (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
    /* ckgoto.orc */

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

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

Its output should include lines like:

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

## See Also

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

## Credits

Added a note by Jim Aikin.

Example written by Kevin Conder.

Previous | Home | Next
cigoto | Up | clear