Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSC 1.1, TCP, and SLIP Compatibility #58

Open
cbrews opened this issue Jan 9, 2021 · 10 comments
Open

OSC 1.1, TCP, and SLIP Compatibility #58

cbrews opened this issue Jan 9, 2021 · 10 comments

Comments

@cbrews
Copy link

cbrews commented Jan 9, 2021

Hey @hoijui and team!

I found this library as a potential solution for transmission of OSC messages from a Java client to an OSC compatible application and am working on a lightweight client for that application. However, upon reviewing that client's protocol, they use a OSC 1.1-compatible TCP connection that uses a SLIP wrapper for communication.

As per the OSC 1.1 specs:

Stream-oriented protocols such as TCP and serial byte streams need a framing mechanism to establish message boundaries. These streams are now required to employ SLIP (RFC1055) with a double END character encoding. This choice has been used extensively for years on the Make Controller board and in our micro-OSC work and we have established its efficiency and superiority over the OSC 1.0 size-count-preamble recommendation when recovering from damaged stream data.

My questions are:

  • Is this library intended to be compatible with OSC 1.1 specification?
  • Has anyone started development of the SLIP protocol or recommend an approach (note--my initial investigations seem to suggest that separate implementations of the parser and serializer interfaces loaded by OSCSerializerAndParserBuilder would be required, perhaps an OSCSerialParser and OSCSerialSerializer or something similar)?

I know that the TCP client was just recently implemented by @daveyarwood in #52, and understand that TCP compatibility is net-new in this library anyway, so I am definitely open to helping to develop this implementation.

Thanks again for your hard work on this project.

References:

@daveyarwood
Copy link
Collaborator

Hello!

@hoijui Speaking of my TCP support PR that you merged a couple months ago, it appears that there isn't yet a release that includes it. Could you please deploy a new release?

@cbrews Let me know if you have any questions about the TCP implementation. It's been a year, but I still remember the details fairly well and hopefully I could be of some help if anything comes up.

@daveyarwood
Copy link
Collaborator

@hoijui Could you please deploy a new release that includes my TCP support? 🙏

I've been deploying my fork of JavaOSC to JCenter as a workaround, but they just announced that they'll be shutting down JCenter: https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

If JavaOSC TCP support is released, I won't need to use JCenter anymore, which would get me out of this problematic situation. I'm not sure where else I can deploy my fork besides deploying it to Maven Central directly, which is a bit of a nightmare.

@daveyarwood
Copy link
Collaborator

@hoijui I'm begging you - please deploy a new release! 🙏

I spent 2 hours tonight attempting to publish my fork of JavaOSC to an alternative Maven repo, and got nowhere. This is so painful to deal with. Since you've been deploying JavaOSC to Maven Central already, I imagine you have it automated at this point to where you could easily deploy a release, right?

@hoijui
Copy link
Owner

hoijui commented Mar 5, 2021

@daveyarwood sorry!
I did deploy a new release now.
... I just used master for it. is that ok?

sorry... no time, no time!

The release procedure is in the README (I could never remember it):
https://github.com/hoijui/JavaOSC/blob/master/README.markdown#release-devs-only

@hoijui
Copy link
Owner

hoijui commented Mar 5, 2021

NOTE: might take up to 4h till 0.8 is available on maven central.
if it is not available tomorrow, give me a note.

@daveyarwood
Copy link
Collaborator

That's awesome, thanks a lot! I'll give it a test drive soon.

@daveyarwood
Copy link
Collaborator

I just tried JavaOSC 0.8 and it works like a charm. Thanks again!

@hoijui
Copy link
Owner

hoijui commented Mar 6, 2021

ahh good!
thanks for the feedback! :-)

@hoijui
Copy link
Owner

hoijui commented Apr 25, 2021

So TCP is done now, but we are still missing SLIP for reoslving this issue, right, @cbrews ?
I imagine you found an other way for you by now, but if not, and you feel like implementing it.. we'd (sometimes) be around to help with questions!
(I do not have the time to do it myself)

@cbrews
Copy link
Author

cbrews commented Apr 25, 2021

I did find another way for now and was able to fallback on UDP. I may circle back on this in the future, but I also don't have time to work on this now!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants