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
Automatic alignment of cycles in Link sessions #936
Comments
Is this what the link concept of the 'quantum' is for? Perhaps we could just assume a quantum of 4, but have this configurable - would that solve it? |
It would not solve it. If two Tidal instances have a quantum of 4, Link will ensure that As an example, let's assume instance 1 has been running for a while and that |
Hey @Zalastax I still think there is something about quantum we're missing here.
I think this is a misunderstanding. If you continue from that quote the next section is on phase alignment, which is for aligning cycles with quantum. There's a problem here that tidal doesn't deal with beats, but cycles (measures).. So where beat-driven software has bpm of 60 and quantum of 4, to match the cycles we want cps of 0.25 (i.e. cpm of 15). There is no quantum in tidal there is no concept of a fixed beat. To convert to beatworld, we do need the quantum though. This is down to human judgement, because it depends on the time signature, and neither the link protocol or tidal care about that. Probably we want to set the quantum to be the same as whatever is in the other system, in the above case 4. Then we can convert to link's bpm by multiplying cps by the quantum * 60. Probably a default of 4 is best, but it would be nice to have this configurable and ideally patternable.. |
Or maybe I'm just not understanding the problem you see here.. You're thinking about aligning tracks that have a beginning and end, where it's important that the cycle values are the same? As opposed to having repetitive cycles where you just have to get them in phase, and don't care about the exact cycle numbers being the same. |
Your last comment captures it fully @yaxu! Before Link introduction, two synchronized sessions could expect the same result when evaluating a function like https://tidalcycles.org/docs/reference/conditions/#when. I don't have this use case but I wanted to mention it as a newly introduced limitation so we can take a proper decision on if it needs to be addressed. |
Before #898, Tidal instances would share tempo over the network. This included cycles per second, but also the current cycle. After #898, cycles per second is shared, but the current cycle is not. This happens because Ableton Link does not align beat/cycle values between session participants. Quoting Link documentation "For example, beat 1 on one participant’s timeline might correspond to beat 3 or beat 4 on another’s, but it cannot correspond to beat 3.5".
A workaround exists: it is possible to align cycles manually by using
resetcycles
in each Tidal instance simultaneously.It would be neat if cycles could again be automatically aligned across Tidal instances. Two ideas for achieving it:
requestBeatAtTime
to move their beat accordingly.resetcycles
that resets the cycles of all Tidal instances in the local network.The text was updated successfully, but these errors were encountered: