OSCBundle / MixedBundle: Can specify reference beat?

I’m working on something that will need to prepare bundles involving preparation messages (to be sent immediately), and timestamped messages.

Initially this looked like it might be a job for OSCBundle or MixedBundle. However, the preparation-message logic appears not to give me any control over the logical time at the moment of sending the timestamped messages.

Preparation messages are synced (which makes sense) – but then, the logical time when sending the time stamped bundle is after sync, not now. What I’m hoping to achieve is to send the preparation messages without timestamp at logical time x, and then send the timestamped part of the bundle relative to logical time x, so that the result will be heard reliably at logical time x + latency. Any time after x + latency would not be acceptable.

OSCBundle’s schedSend method seems like it might almost do it, but the use of nextTimeOnGrid means that it couldn’t be used in a sequencing context. If the logical time is now 12.0, and preparation messages push the timestamped part to 12.083, then nextTimeOnGrid would be after 12, which wouldn’t be OK for my use case. (I can understand why you would want to be sure the timestamped bit would have no chance of firing before the preparation is finished – but I don’t quite see a way around the s.sync restriction.)

Can OSCBundle do this at all, or do I need to duplicate functionality and write my own?

hjh