igoto label tigoto label kgoto label goto label if ia R ib igoto label if ka R kb kgoto label if ia R ib goto label timout istrt, idur, label
These statements are used to control the order in which statements in an instrument block are to be executed. I-time and P-time passes can be controlled separately as follows:
igoto - During the I-time pass only, unconditionally transfer control to the statement labeled by label.
tigoto - similar to igoto, but effective only during an I-time pass at which a new note is being 'tied' onto a previously held note ( see I Statement); no-op when a tie has not taken place. Allows an instrument to skip initialization of units according to whether a proposed tie was in fact successful (see also tival, delay).
kgoto - During the P-time passes only, unconditionally transfer control to the statement labeled by label.
goto - (combination of igoto and kgoto) Transfer control to label on every pass.
if...igoto - conditional branch at I-time, depending on the truth value of the logical expression ia R ib. The branch is taken only if the result is true.
if...kgoto - conditional branch during P-time, depending on the truth value of the logical expression ka R kb. The branch is taken only if the result is true.
if...goto - combination of the above. Condition tested on every pass.
timout - conditional branch during P-time, depending on elapsed note time. istrt and idur specify time in seconds. The branch to label will become effective at time istrt, and will remain so for just idur seconds. Note that timout can be reinitialized for multiple activation within a single note ( see example under reinit).
if k3 > p5 + 10 kgoto next