its the same wonderful pd_grids, but if it detects Ableton Link enabled on any other device on the network, it switches to ‘link’ mode, and synchronises…
I did it, partly, because I wanted to experiment with Link (which I have ‘ideas for’) , and because pd_grids is probably my favourite organelle patch, so naturally i wanted it sync’d to ableton without the hassle of wires
anyway hope others enjoy, and thanks again to @spoitras for his great patch.
quick update (1.1) … just checked the external source code… and realised i could get a much tighter integration, by taking the steps from Link.
so rather than just being tempo matched, its now sync’d on steps… this makes a huge difference, when using something else (ableton or iOS) that is also doing rhythmic stuff, as things like kicks line up correctly.
… good demonstration of how Link is an enhancement over midi clock.
Way to go with the Link addition. Been looking forward to having Link working more generally! I’d like to add it into the master-metronome patch that a lot of the C&G patches use and it will detect and use Link if available. or there could be a system command to explicitly set the tempo source.
Do you notice a performance penalty? When I first experimented with the pd link object I thought it was using a bunch of CPU, but might not be remembering that correctly.
Also how do the steps work, you need to tell it how many steps (beats / bars) your process is using?
and while I’m at it, I read somewhere that the beat phase clock can actually run backwards during certain tempo changes, but I was confused by this, does this happen and would it cause issues? ok, there is everything I don’t know about Link!
ok, is this the same master-metronome patch used by pd_grids?
basically Ive updated that patch, so perhaps you can just take as is?
did a quick test… with pd_grid/pd_grid_link, same pattern/tempo etc
a) pd_grid was showing 11%
b) pd_grid_link, connected, but with 0 other clients - 14%
c) pd_grid_link, connected, with 1 other client 17%
now, in fairness b) is a bit unfair, as basically the code is then running 2 internal clocks/sequencing - the link one, and the one that previously existed … we could strip this back to just having the link one, I guess this will save us a few %. (1-3?)
(I left it in since, I wanted to test that the tempo timing was identical between the old code and the new code)
so yes a penalty, the cost to process the incoming UDP packets.
(hmm, what i didnt test, but really we should … is comparing this to midi clock … as obviously that also has some overheard too … also these cpu readings are very crude )
yeah this is confusing …and I’m not sure i can easily explain it
basically quantum = 4 , means 1/4 notes quantisation , resolution is how to sub divide this… (assuming 1 bar quantisation)
so 1 = 4 steps of 1/4 notes , 2 = 8 steps of 1/8 notes 8 = 32 steps of 1/32
whats important about this, for patch design, is that patches really want two things (to work well)
a) tempo , like metro
b) step number
the later is important to keep patterns in sync, e.g. they may want to sync at pattern starts.
of course, how they choose to do this, is largely up to them.
Im not sure, Id need to hear this with a steady beat… i didnt notice anything very obviously wrong… and I think because I used the step output, which basically just waits for phase to catch up.
(the idea though, is with phase, you can choose to do something different… I guess there are more complex/thorough ways to deal with this eventuality )
MIDI is great for connecting synths! It is universal and works so well in this respect, like the electric grid or water from the faucet. But it is a little lacking in the musical information it is able to communicate. Like MIDI clock for example, it is just a stream of ticks, and doesn’t say anything about where the beat is. Things like Link offer an improvement in this area, but are also not as widespread.