kgoto

kgoto --  Transfer control during the p-time passes.

Description

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

Syntax

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

Example 1. Example of the kgoto opcode.

/* kgoto.orc */
/* Written by Kevin Conder */
; 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.
  if (kval >= 1) kgoto 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
/* kgoto.orc */
        
/* kgoto.sco */
/* Written by Kevin Conder */
; Table #1: a simple sine wave.
f 1 0 32768 10 1

; Play Instrument #1 for two seconds.
i 1 0 2
e
/* kgoto.sco */
        
Its output should include lines like this:
kval = 0.000000, kfreq = 440.000000
kval = 0.999732, kfreq = 440.000000
kval = 1.999639, kfreq = 880.000000
      

See Also

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

Credits

Added a note by Jim Aikin.