link icon indicating copy to clipboard operation
link copied to clipboard

[question] Web midi support

Open darkdoon opened this issue 7 years ago • 6 comments

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.

darkdoon avatar Mar 27 '18 22:03 darkdoon

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

fgo-ableton avatar Mar 28 '18 09:03 fgo-ableton

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).

hlolli avatar May 21 '18 12:05 hlolli

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.

brunchboy avatar May 21 '18 14:05 brunchboy

@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.

hlolli avatar May 21 '18 14:05 hlolli

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 avatar May 21 '18 14:05 brunchboy

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!

brunchboy avatar May 23 '18 04:05 brunchboy