If I want to do something CPU intensive, and don’t mind Renoise freezing up for a little while, is there some way to suppress the warning popup saying that the script may have stopped working?
The warning message was introduced because quite a few scripts are not giving updates on how far they are in progress or they might simply lock up completely (which in that case would mean:kill and restart Renoise!).
The scripter (or someone else who can script in Lua too) can insert a one-shot idle routine at the spot where the Lua script is doing this intensive processing, to give Renoise some breathingspace to treat all kinds of other messages in the queue and prevents that dialog from popping up.
If the scripter would be a cool guy, he would also use some kind of progress-meter by means of a slider (if possible) to show some current progress status.
How about something in the hidden prefernces.xml (is it xml? I forget) where you can set the length between each warning message?
What is an idle routine? I looked through the documentation and found renoise.tool().app_idle_observable. Should I add an observer to this and do the work when Renoise is idle?
You can try Taktiks OneShotIdle class:
You can also study the “nibbles” game from Conner which is using the app_idle_observable in practice so you can see how it is being used.
Basically the idle_notifier calls a function every once in 0.1 seconds.
You can use that routine to do the processing of one task each 0.1 seconds or to break for a moment from it every 0.1 seconds.
(The latter speeds up things a lot)
Suppressing this warning would bypass it’s purpose: Avoiding that a script is stuck in an endless loop and thus freezes the whole application.
See com.renoise.ExampleToolSlicedProcess.xrnx for an example which solves this problem in general. The XRNX is also included in the example scripts here: https://xrnx.googlecode.com/files/XrnxStarterPack270.zip