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

[question] Web midi support #49

Open
darkdoon opened this issue Mar 27, 2018 · 6 comments
Open

[question] Web midi support #49

darkdoon opened this issue Mar 27, 2018 · 6 comments

Comments

@darkdoon
Copy link

Hi,

Have you ever thought about making this accessible into the web ? It would be nice if we could use that combined with webassembly and web midi api.

Thanks for replies :)

Regards.

@fgo-ableton
Copy link
Collaborator

I have not really looked into a web port myself.
Maybe https://github.com/2bbb/node-abletonlink can do what you need.

@hlolli
Copy link

hlolli commented May 21, 2018

Would really like to see ableton-link in webassembly. I wonder if it's technically possible, due to the multithreading in the code, and the native c++ network code. I can't see what would hinder a javascript library from implementing, in of course less accurate way, the ableton-link protocol, via sockets, sending and receiving data from port 20808. If shared array buffers arrive to all browsers anytime soon, that may not be so wild idea to do (even without them, webworkers provide some non-blocking asyncing).

@brunchboy
Copy link

I am still waiting for a Java port myself. As it is, I need to tell people to use my Carabiner bridge running on the same machine to relay Link coordination to processes in the Java Virtual Machine environment. You could talk to Carabiner from Javascript just as easily.

@hlolli
Copy link

hlolli commented May 21, 2018

@brunchboy if you're willing to add clojure.jar as a dependency, you could use my Clojure port of ableton-link

https://github.com/overtone/ableton-link

But nice, Carabiner porves this concept then, I may either borrow some ideas or make a js library this summer.

@brunchboy
Copy link

Whoa, @hlolli I can’t wait to take a look at your implementation! Clojure is my main language these days, and Beat Link Trigger, the show synchronization platform that I wrote Carabiner to support, is written in Clojure. I wrote the underlying Beat Link library in pure Java to make it easier for people to adopt in non-Clojure JVM projects. But this all started after I discovered Overtone and decided to create a live coding environment for controlling light shows in Clojure, called afterglow. This is a small world indeed! 😁

@brunchboy
Copy link

Oh, I got a bit over-excited, @hlolli… I thought you had made a pure Clojure implementation of Link. Instead, you have embedded native libraries, much as I did with Wayang for controlling the Push 2 display. But still… as this is embeddable via Clojars, it could make life a lot easier for my Beat Link Trigger users who want to also talk to Ableton Link. I see some race conditions in the state management code, so I think I will fork it and submit some PRs to address those, and start exploring adopting your solution instead of Carabiner. Thanks again for calling this to my attention!

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

No branches or pull requests

4 participants