OSC Bundle Time-tag behaviour

Hi people, I would like some clarification on renoise’s behaviour regarding OSC bundles with time-tags.

  1. Do time tags have any effect or are bundles messages processed as soon as they arrive?
  2. Does renoise use the system clock as the base for any time comparison?
  3. Is it possible to assign a time-tag to a bundle so that it will be processed at a precise time (some short time in the future)?
  1. Yes, Renoise only lets you process messages as they arrive. At least, that’s how it currently works. Which means, messages contained within a bundle are not automatically scheduled.

  2. You have two types of clocks - os.time(), which gives you an epoch time expressed as whole seconds and os.clock() which is a higher-precision version (seconds + fraction) which expresses time as “passed since script first asked”. Neither is really a system clock, as these differ from system to system - which would make it hard to code tools that were truly cross-platform.

  3. You mean, when sending messages? The way I understand the OSC specs, this is actually the job of the receiver. Better to have two machines which are synced up tighly, and not rely on the network to be as precise. So you could build a bundled message and fire it off - hopefully the target will then understand this and act according. However, with most OSC implementations that I’ve seen (including Renoise) this is unfortunately something you have to deal with yourself.

Cheers danoise, that succinctlyanswers my question,

For some context I’m driving renoise OSC events from an external application that generates programmatic rhythms, the sync is pretty good but I needed to know if I could go a level deeper and explicitly define when events should happen.
The answer is no for the moment, i do understand that scheduling bundles is probably a non trivial task.