ideoforms / AbletonOSC

Control Ableton Live 11 via Open Sound Control (OSC)
MIT License
429 stars 70 forks source link

Issue #88 - Fix error: Message too long #89

Open StrongBearCeo opened 1 year ago

StrongBearCeo commented 1 year ago

Fix #88 , message too long will be split into smaller chunks

ideoforms commented 1 year ago

I've had a more detailed look at this, and have also added a unit test that can be used to test bidiretional long messages. It populates a clip with a large number of notes (~384), and then queries the notes to verify that they are all intact. It is easy to extend this to test a significantly larger number of notes by increasing the number of time shifts applied.

It has shed light on a couple of limitations with this PR that need addressing:

  1. The unit test currently passes with master but fails with the implementations of osc_server/client in this PR, so I think the packet reassembly is failing somewhere.
  2. The packet re-assembly works great on client.query(), but also needs adding to the await_message handler. Actually, both of these would benefit from a minor refactor to share the same receive code...
  3. It also needs implementing in AbletonOSCClient's send_message method and osc_handler', so that outbound client → server messages (e.g./live/clip/add/notes`)

Potentially (2) and (3) could become a separate Issue, but (1) should be fixed before this can be merged.

@StrongBearCeo I realise it has been a while since this original PR - so if you're not still working on this, no worries, at some point I (or somebody else) will be able to get this across the line.

StrongBearCeo commented 1 year ago

@ideoforms that's great. I'll look into it when I have time, too.

esaruoho commented 2 months ago

@StrongBearCeo have you had the time to look at it? :)

StrongBearCeo commented 2 months ago

@StrongBearCeo have you had the time to look at it? :)

@esaruoho I haven't. I've been using my own fork for this, actually