nested reinit statements

Hello

I am trying to get the following running:

If an ifreq is within a certain tolerance then I want to play the note.

If it is not, then I dont want to do anything.

When I do the following it seems both label and null get invoked and two notes are played all at once.

I am not able to selectively branch to blocks of code, it is as if each line of code is being executed sequentially independent of the conditioning.

I believe the problem is that there are nested reinit statements and one rireturn statement but I dont know any other combinations of opcodes to implement this logic.

Your advice sought. Instrument code follows.

vai:

ifreq = i(kfr)
if ((ifreq < ilower) || (ifreq > iupper)) igoto label
igoto null

label:
;print ifreq
itimout 0, 0.5, chiama
idelta = ifreq * 0.02
ilower = ifreq - idelta
iupper = ifreq + idelta
reinit vai

chiama:

inote = 69 + 12 * log(ifreq/440) / log(2)
vstnote gihandle1, 0, inote, 76, 10

rireturn

null:
reinit vai

endin

Canadian pharmacy viagra staxyn viagra online ed pills ed drugs z pak cheap generic viagra generic cialis kamagra uk z pack Canadian pharmacy cialis uk generic viagra avanafil zpak cialis online buy viagra uk pharmacy uk viagra uk zpack z-pak buy zithromax z-pack