< Back to IRCAM Forum

Loops and Fast Forwarding

A pitfall in fast forwarding is the loop construct, as I discovered today. I wondered why I can still here a source which I explicitly put silent at the label to which I had jumped to. Because loops are also “fast forwarded” it may be that they interfer with actions which would otherwise begin after (possibly long after) the loop. I didn’t test whether the same is true for processes.

I’m not sure whether loops should be executed in fast forwarding. It may be necessary to establish the correct state at the label to start from. But it can produce a confusing situation.

The design of the fast-forward mode is to execute all actions but to inhibits the actual sending of the messages. This behavior ensures that the semantics of the score is preserved as much as possible. Obviously, there are some cases where the “virtual timing” of the fast-forward mode clashes with the passing of the real time outside antescofo. There no “good” solutions.

A possible workaround is to handle explicitly the two modes (normal execution and fast-forward execution) in your actions. You can use a setvar message to set (from Max) an antescofo variable telling that you will enter the fast-forward mode, just before sending the fastforward message. You can use this variable to guard the execution of the loops. At the score location you want to jump, you can use an antescofo assignment a to specify that you are in normal mode again.

Addendum: It’s a good idea to set an Antescofo variable from Max to indicate a fast-forwarding to a label. However, the variable must be set after the fast-forward, otherwise the variable value will be overwritten by the initialisation during fast-forward. In my case, the value from the umenu which contains the labels used as rehearsal marks and which triggers the gotolabel message now is also written to a variable in my Antescofo score using setvar. Because of the right-to-left flow in Max it’s crucial to put the prepend setvar startlabel box to left of the prepend gotolabel box. @JLG: Merci pour le tuyau.