Ableton Link node feedback

https://www.ableton.com/en/link/

The Ableton Link node and/or mode - what features do you want?

What do you want it to look like?

This is your chance to weigh in on the features you want from Link in Audulus.

GO!

A UFO! :alien:

Seriously though it should just have the tempo, the meter, and start/stop outputs and whether or not link is enabled.

2 Likes

No clocks?

1 Like

I posted this on the old forum, but here it is again. I imagine that the ‘offset’ and ‘resync’ features could be useful. But, then, maybe you just make a node and any other options can be added by building them into future modules…

09%20PM

Clock division seems unnecessary – on a side note, has anyone built something to apply swing already?

I’d like to point out that dividing clocks in Audulus isn’t particularly easy. You can use a zero-crossing node to determine frequency, but it’s not very accurate. You can use a timer to get the period of a clock, then convert to frequency, divide and force the new clock into sync using the sync input, but in the end it’s much easier to divide clocks internally within the node. If you have a beat clock (50% duty cycle square wave) and nothing else, how are you going to determine how long for a quarter note or half note etc… Additionally, Link wants to sync on the “quantum” which would be a measure or a loop etc. If you have no inputs to the module you are assuming that Audulus will never initiate a session or request a stop or start. That seems unnecessarily limiting to me.

1 Like

That’s the method in the module library I use for multiplication. Multiplication is a tough one because the clock mult can’t see the future and know exactly how fast the clock is, so you use the zero cross node.

However, with dividing, I use a counter scheme where it lets the clock pulse through after x number of pulses. That does work perfectly in sync. Check out the inside of the clock divider module to see how it’s done! :slight_smile:

So in the end, it’s best to start with a master clock that is the fastest pulse you’ll use and divide it down from there.

My point exactly. When I said divide I meant divide the period (multiply the frequency). I was suggesting that we needed a clock at the highest frequency sent from the sync method. Also some sync methods only provide an absolute time so the app has to generate the beat

1 Like

Ah ok I see what you mean!

:nerd_face::fearful::sob: There should definitely be clocks. 24 pulses per quarter note is a good standard. It’s easy divide down to all your most popular divisions from that, but a built-in divide function could be nice.

I find it to be pretty accurate in the range of tempo clocks, which typically won’t exceed 1000 hz. For quarter note to sixteenth note pulses between 80 and 160 BPM you have less than 1% jitter.


zerocross stability test…audulus (4.0 KB)

I suppose functionality built into the node would ultimately be the most reliable.

I think this is how Pamela’s New Workout, and the Variegate sequencers multiply clock inputs as well. But One thing I noticed about the library clock multiplier is that it doesn’t stop with the rest of the clocks, so I devised a system where it shuts off after 1 extra cycle

clock multiply or divide.audulus (24.6 KB)

Admittedly this makes more sense when you are talking about a gate sequence and things are constantly switching. Perhaps with a little work it could be fine-tuned to be even more precise.

1 Like

You would not be able to calculate the higher frequency clock until you had at least one cycle of the beat clock. Bit of a problem if you want to produce notes immediately. You would also have a lag if the tempo changes.

1 Like

This solution I presented definitely exists in the realm of “good enough” for all my needs. But if we start with a 24 ppqn clock, that first cycle is pretty close to unnoticeable. Also, I will try and get some nice algorithm info from the companies that make digital clock multipliers/dividers for eurorack.

1 Like

I guess I’m not being very clear. I was arguing for the need for a 24ppqn clock or something similar rather than just a beat clock. Of course a beat clock and quantum clock would also be good for link since you can join a session after it’s started and you might need to know which 24ppqn pulse represents the beat or the sync quantum

2 Likes

Actually getting various clocks and counters in sync has been one of my bigger challenges in Audulus. Pulse timing can be a bit unpredictable since nothing actually happens simultaneously and the execution order is not well defined. Many times I’ve had something in a patch working, changed a different part of the patch, and it stops working because some timing “under the hood” has changed. Not that I’m complaining mind you, it’s all part of the fun.

2 Likes

Totally, I think there is a huge range in between ‘broken’ and ‘commercial quality’ that is equivalent to a badly made distortion pedal that still sounds good (hello gristlizer). So while my patches might have some unintended glitches, it they rarely sound unintentionally glitchy. Sometimes I even want to use a misbehaving module prototype because it’s messing up in an interesting way.

2 Likes

It’s the flaws in analog gear that makes it so appealing. I’m all for the occasional “happy accident”.

2 Likes

Yes please Ableton link node yes yes. I didn’t get to read all the posts on the thread so not sure if others already said this, but with a measure long ramp 0-1 and bpm value pretty much everything else could be derived by some simple expressions.

I haven’t fully looked at the SDK for Link yet so I am not sure what it provides by default, but based on all the implementations I have seen across many apps it always works great, so I think whatever data values it has built into the SDK should just be made into the node outputs.

Apps that support link appear to have a toggle in the main settings of the app to enable or disable it.

2 Likes

I :heart: phase accumulation!

1 Like