igoto

igoto --  Transfer control during the i-time pass.

Description

During the i-time pass only, unconditionally transfer control to the statement labeled by label.

Syntax

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

Example 1. Example of the igoto opcode.

/* igoto.orc */
/* Written by Kevin Conder */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
  ; Get the value of the 4th p-field from the score.
  iparam = p4

  ; If iparam is 1 then play the high note.
  ; If not then play the low note.
  if (iparam == 1) igoto highnote
    igoto lownote

highnote:
  ifreq = 880
  goto playit

lownote:
  ifreq = 440
  goto playit

playit:
  ; Print the values of iparam and ifreq.
  print iparam
  print ifreq

  a1 oscil 10000, ifreq, 1
  out a1
endin
/* igoto.orc */
        
/* igoto.sco */
/* Written by Kevin Conder */
; Table #1: a simple sine wave.
f 1 0 32768 10 1

; p4: 1 = high note, anything else = low note
; Play Instrument #1 for one second, a low note.
i 1 0 1 0
; Play a Instrument #1 for one second, a high note.
i 1 1 1 1
e
/* igoto.sco */
        
Its output should include lines like this:
instr 1:  iparam = 0.000
instr 1:  ifreq = 440.000
instr 1:  iparam = 1.000
instr 1:  ifreq = 880.000
      

See Also

cggoto, cigoto, ckgoto, goto, if, kgoto, rigoto, tigoto, timout

Credits

Added a note by Jim Aikin.