-
-
Notifications
You must be signed in to change notification settings - Fork 230
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
feat(ableton-link): add ableton link support to orca #247
base: main
Are you sure you want to change the base?
Conversation
I forgot, to enable/disable Link you can send the command link 😅 |
I will not merge this in master, but I think it's a good feature, would you be game to maintain a fork up to date for this instead? |
I have no problem in maintaining a fork with this feature. |
I'd love to add the link to the fork in the readme for others to try if they use ableton. I keep the master branch free of libraries, and specific code to keep the codebase simple, generic and hackable even for people who are not too familiar with javascript. It's a bit of a playground, between choosing to have fast code and readable code, I'll always go for readable code for master, as to keep the bar pretty low for anyone who need to customize it. The only PRs that can go in master is small changes to help with readability and stability and bug fixes to the spec. |
I understand :) I'll keep the fork up to date and would love if you add a link to it in your readme. |
614f5fe
to
4af0b12
Compare
One unfortunate problem with disparate forks is not having a single place to discuss PRs. @mcartagenah very nice! If this existed earlier I probably would not have bothered with MIDI clock :) |
I think your work was needed too, for example, syncing Orca to external analog gear :) |
4c123de
to
33d17e4
Compare
… to clarify which source controls orca
I fixed some bugs and took in consideration all your feedback. Hope it's working ok! |
@mcartagenah thanks for taking a swing at it! Finally took it for a test drive, good news is Link links and reacts to start/stop/tempo, bad news is it's not very usable yet, at least on my end:
The trick, I think, is getting Orca to sync to a beat initially and then keeping it in sync (Orca's own clock is pretty much guaranteed to drift over time). Seeing that the library you picked does not offer callbacks, you will likely have to repeatedly calculate where Orca's beats should land and adjust internal scheduling.
|
Sad to hear it doesn't work for you, I'll keep tweaking it to find how to maintain a good sync. |
Right, upon a closer look that package provides less functionality than Then the right thing to do is to periodically (on every frame?) get beat/phase/quantum information from Link and adjust Orca's clock scheduler accordingly. |
I made an implementation of the clock scheduler and think it's working, also added quantized launch (it's kinda working). |
I think Orca should have Ableton Link support, so I used this package https://github.com/Onni97/abletonlink-node-addon to achieve this, I think it's working ok, but needs more testing.
So far you can play/pause and change the tempo, I haven't noticed any drifts in tempo, maybe a little when you change it very quickly.
I'm open to suggestions on how to implement this, or if there's another functionality of ableton link needed.
Hope everyone likes it :D