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

Ableton Link Sync #73

Open
shayded-exe opened this issue Jan 21, 2022 · 11 comments
Open

Ableton Link Sync #73

shayded-exe opened this issue Jan 21, 2022 · 11 comments

Comments

@shayded-exe
Copy link

Is your feature request related to a problem? Please describe.
I use Ableton Link to keep my show in sync and don't use Pro DJ Link.

Describe the solution you'd like
The ability to use Ableton Link as a sync source

@brunchboy
Copy link
Member

That’s a neat idea. I’d welcome a pull request that does this. You could use my Carabiner, especially in the form of lib-carabiner to do almost all the work.

@brunchboy
Copy link
Member

Thinking about it a bit more, the best approach would probably be to switch Afterglow from relying on beat-link directly, as it does today, to using beat-carabiner instead, which incorporates both beat-link and carabiner, and moderates between them, which would allow Afterglow to participate simultaneously in a bridged Pro DJ Link and Ableton Link network. Then we would just need to add a bit of code to support working with Ableton Link on its own when there is no Pro DJ Link network to join, and there are likely good examples of how to write that within beat-carabiner.

@brunchboy
Copy link
Member

brunchboy commented Jan 22, 2022

@rshea0 I have started puttering around the sync stuff in Afterglow, and am sad about how out of date it has become compared to all the progress I have made in Beat Link Trigger! Anyway, I think I will go ahead and take a crack at implementing Ableton Link sync for you, if you will help me test and validate it (I don’t really have any opportunity to work with afterglow myself these days, sadly). Then after that I may want to modernize other elements throughout Afterglow, for example replacing its own Metronome class with the newer one in Electro so it benefits from the latest fixes, and I have only one shared codebase to maintain. (It is already going to have the Electro version via the Beat Link library, so it’s silly to have two almost-identical Metronome classes.) But I won’t want to undertake this surgery unless I can work with someone who is actively testing the results.

brunchboy added a commit that referenced this issue Jan 24, 2022
Unfortunately, the build infrastructure on Netlify that creates the
Afterglow developer guide can't handle libraries compiled for Java 9
or later yet! And lib-carabiner is a Java 9 library. So this is
temporarily dead in the water.
@brunchboy
Copy link
Member

Sadly, I just discovered that Netlify, the platform on which I build and host the Afterglow user guide, can’t cope with Java 9 libraries yet, and lib-carabiner is one. So all the progress I have made so far needs to be backed out and put on hold until they get that sorted out.

brunchboy added a commit that referenced this issue Jan 24, 2022
It looks like lib-carabiner can be built for Java 8 compatibility,
which might enable me to proceed with this project in Afterglow.
@brunchboy
Copy link
Member

I was able to adjust the build process of lib-carabiner so that it produces Java 8 compatible classes (evidently I was not depending on anything newer), so I can continue working on this. It’s definitely complex enough that it makes sense for me to figure out all the pieces and where they need to live in Afterglow, but I’m still going to be relying on people to test it for me.

@shayded-exe
Copy link
Author

I'm happy to help test! Thank you for looking into this.

Tangentially related question, what is the current wisdom regarding controlling LED matrices with Afterglow?

I'm currently using LightJams for this and Afterglow looks like it might be a good option for me to do some of the things I want to that are difficult in LightJams. My main use case right now is a grid of LEDs which I'm controlling via ArtNet. I'm using a Denon PRIME 4 to DJ which outputs Ableton Link hence my original request.

Is Afterglow well suited for LED grid effects? I'm curious your thoughts on this as I saw in a YouTube demonstration you uploaded a few years ago you were controlling an LED bar, but I haven't seen anything in the docs that mentions LED grid type effects.

@brunchboy
Copy link
Member

I’ve played with a few smaller LED grids made by Blizzard, and it worked fine. The way Afterglow can map fields of color and intensity over the 3D space of the lighting rig makes hooking up grids fairly natural. However, the radical way that each element can be the result of an arbitrary, user-specified bit of code means that if you start having tons of LEDs (probably somewhere in the range of tens of thousands to millions), it is probably going to become too computationally intensive to keep up with your show frame rate. You’d have to try it and see.

If someone with skills in spreading out computations over GPU elements gets interested in this project we could potentially scale up significantly further, but if you want to map videos onto LED walls and the like, you would be better served by a focused application like Resolume or ArKaos (the latter have incorporated my research so they can integrate with DJ Link networks).

@shayded-exe
Copy link
Author

shayded-exe commented Jan 25, 2022

In my case I'm only working with about 450 LEDs so performance shouldn't be a problem.

I'm currently trying to get OLA installed Ubuntu 20. Once I get it working I can actually start testing things out.

@brunchboy
Copy link
Member

I’m still poking at this, although the home remodeling projects have kicked back into somewhat high gear as we approach the end. Soon I will have some undisturbed weekends to focus on this, though.

@brunchboy
Copy link
Member

It’ll probably be a while before I have enough focused time to see this through to the finish line… perhaps the weekend of February 26. If you get ambitious and want to study my related commits so far, and the TODO comments I have left in them, and see if you can make further progress, that would be cool too.

@shayded-exe
Copy link
Author

No worries! I just started a new job so I'm not spending much time on this right now.

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

No branches or pull requests

2 participants