During the p-time passes only, unconditionally transfer control to the statement labeled by label.
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).
Here is an example of the ckgoto opcode. It uses the files ckgoto.orc and ckgoto.sco.
Example 63. 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