Sample Accurate Scheduling?

I’m currently working on some CAC tools for myself and noticed a couple weird/unexpected things:

  1. Calling multiple .send_floats()/int/etc. from Python at once eats all but the last sent message. I looked at the Poly implementation and saw that I should expect this, but it might be helpful to have it explicitly stated that in order to send multiple messages at once to the “same” address you need to use PolyPal or write your own implementation. I’m happy to edit the documentation to reflect this if y’all would like!
  2. In the same vein, for high block sizes (I’ve found that WSL works best at block sizes >512) there are some weird outcomes when trying to schedule rhythms, which I’m assuming is due to messages being “received” at the start of each block.

Is there some way to have sample-accurate scheduling yet? If not, are there plans to include this in the future?

Also, while doing all this, I found Poly’s use of callbacks to be much more intuitive than using the Messenger.notify_update() method for lists. I added notify_callback() and update_callback() methods to the Messenger struct on my branch and have found them pretty useful. Using a callback also removes the need to have a list as a struct property just to hold the data received by the message. I’d be happy to make a pull request for this if there would be interest!