<div dir="ltr">Hi,<div><br></div><div>I'm Perry, also I'm tatch on linuxmusicians if you've ever been there. I posted this message on LM a while ago but was encouraged by falktx to post this to LAD. so that is what I am doing now (<a href="https://linuxmusicians.com/viewtopic.php?t=14913">here</a> is the original topic).<div><br><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">not sure if you’ve read about ableton live 9.5 but one of their planned updates is this thing called <a href="http://createdigitalmusic.com/2015/11/link-could-change-how-you-play-music-even-without-ableton/">ableton link</a> that seems to be a convincing inter-device tempo sync.</p>
<p style="margin:0px 0px 1.2em!important">paul davis was present during the unveiling of ableton sync and has an interesting perspective:</p><p style="margin:0px 0px 1.2em!important"></p><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">…The JACK community developed technology back in 2005 or earlier that could do what Link does (and a whole lot more besides). But the developers failed to package it, failed to make it usable for anyone other than a small group of tech-oriented tinkerers, failed to give it an inviting face. In addition, the developers failed to understand how significant platform is when trying to create products for people. Designing the most awesome thing in the world is no help if it doesn’t run on the platforms that people want to use (for whatever reason). Ableton not only chose OS platforms with huge numbers of users, but has proceeded to develop its own product-centric platform that provides compelling reasons for users to want to remain within its walls. The open source community shouldn’t be trying to follow or copy what a company like Ableton does, but there is a strong lesson here: our technology is not as important as we like to think.</blockquote><p></p>
<p style="margin:0px 0px 1.2em!important">In any case, one thing that we’ve talked about to various degrees in the past is tempo ramping in JACK, and with the announcement of ableton link I’d like to revisit the topic.</p>
<p style="margin:0px 0px 1.2em!important"><a href="http://linuxmusicians.com/viewtopic.php?f=44&t=11681&p=46912">http://linuxmusicians.com/viewtopic.php?f=44&t=11681&p=46912</a><br><a href="http://linuxmusicians.com/viewtopic.php?f=19&t=2290&p=51449">http://linuxmusicians.com/viewtopic.php?f=19&t=2290&p=51449</a><br><a href="http://linuxmusicians.com/viewtopic.php?f=1&t=9835&p=30447">http://linuxmusicians.com/viewtopic.php?f=1&t=9835&p=30447</a></p>
<p style="margin:0px 0px 1.2em!important">JACK does indeed largely do what Link does (and more) but I’ve been having difficulty successfully tempo ramping. Incidentally, danboid recently <a href="https://linuxmusicians.com/viewtopic.php?f=1&t=14912">posted</a> about how he can successfully ramp in MuSE; but I don’t use MuSE nor do I plan to in the near future, and unfortunately my attempts to change tempo dynamically within the greater JACK/modular LAU paradigm have been rather unsuccessful.</p>
<p style="margin:0px 0px 1.2em!important">To clarify my own use-case, I’d like to map an encoder/knob to a tempo control and be able to speed up/slow down the tempo live, e.g. during a performance.</p>
<p style="margin:0px 0px 1.2em!important"><strong>changing tempo as timebase master</strong><br>For the most part it seems that changing tempo dynamically is possible but it is not well-defined.</p>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">seq24 forces itself to be transport master (I know there’s supposed to be a patch but it has still never worked for me ever) and disallows tempo changes while playing</li>
<li style="margin:0.5em 0px">hydrogen sort of allows tempo changes but it will sometimes politely refuse to change (which is bad)</li>
<li style="margin:0.5em 0px">klick can be configured to send out predefined tempo ramps but I haven’t been able to set it as timebase master and actually interact with it (I was trying klick -Ti and klick -To 8080 but it seems -i and -o somehow disregard the -T option)</li>
</ul>
<p style="margin:0px 0px 1.2em!important"><strong>changing tempo as a slave</strong></p>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">hydrogen is happy to oblige tempo changes but is equally happy to cut off the beginning/end of a bar</li>
<li style="margin:0.5em 0px">qmidiarp follows tempo changes but doesn’t stay in time and forgets to send note-offs</li>
</ul>
<p style="margin:0px 0px 1.2em!important">I’d appreciate if someone more familiar with the transport spec could chime in on this, I’d like to understand what is missing from a technical perspective (I’m actually not entirely clear on the timebase master/slave relationship either). </p>
<p style="margin:0px 0px 1.2em!important">Going a step further, it seems that ableton link may become the go-to replacement for midi clock in software-based production; it could be beneficial to discuss possible timebase master clock clients that can also communicate using the ableton link protocol. Of course this is contingent on the SDK being compatible with linux, which may be unlikely but they <i>are</i> encouraging interested developers to <a href="https://www.ableton.com/en/link/">get in touch</a>.</p>
<p style="margin:0px 0px 1.2em!important">By the same token it would be great to have this for midi clock as well — I know of <a href="https://github.com/x42/jack_midi_clock">jack_midi_clock</a> already but I don’t believe the reverse case exists, though falktx and I briefly discussed <a href="https://linuxmusicians.com/viewtopic.php?f=48&t=12755">something related</a> a while ago.</p>
<p style="margin:0px 0px 1.2em!important">To reiterate,</p>
<ol style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">lau apps have to implement tempo ramping in JACK properly</li>
<li style="margin:0.5em 0px">a JACK timebase master clock client must be made that can</li>
</ol>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">change tempo dynamically</li>
<li style="margin:0.5em 0px">communicate with ableton link to send/receive tempo information (pending a working SDK for linux (this could also be optional in the app for those who don’t want anything proprietary))</li>
<li style="margin:0.5em 0px">set tempo given a midi clock input</li>
</ul>
<p style="margin:0px 0px 1.2em!important">Thoughts? I think tempo syncing is one way we can get JACK to interact more proactively with other software/equipment, and that seems like it could be a great way to reconnect with the rest of the audio community.</p>
<div title="MDH:PGJyPm5vdCBzdXJlIGlmIHlvdSd2ZSByZWFkIGFib3V0IGFibGV0b24gbGl2ZSA5LjUgYnV0IG9u
ZSBvZiB0aGVpciBwbGFubmVkIHVwZGF0ZXMgaXMgdGhpcyB0aGluZyBjYWxsZWQgW2FibGV0b24g
bGlua10oaHR0cDovL2NyZWF0ZWRpZ2l0YWxtdXNpYy5jb20vMjAxNS8xMS9saW5rLWNvdWxkLWNo
YW5nZS1ob3cteW91LXBsYXktbXVzaWMtZXZlbi13aXRob3V0LWFibGV0b24vKSB0aGF0IHNlZW1z
IHRvIGJlIGEgY29udmluY2luZyBpbnRlci1kZXZpY2UgdGVtcG8gc3luYy48YnI+PGJyPnBhdWwg
ZGF2aXMgd2FzIHByZXNlbnQgZHVyaW5nIHRoZSB1bnZlaWxpbmcgb2YgYWJsZXRvbiBzeW5jIGFu
ZCBoYXMgYW4gaW50ZXJlc3RpbmcgcGVyc3BlY3RpdmU6PGJyPjxicj5bcXVvdGVdPGJyPi4uLlRo
ZSBKQUNLIGNvbW11bml0eSBkZXZlbG9wZWQgdGVjaG5vbG9neSBiYWNrIGluIDIwMDUgb3IgZWFy
bGllciB0aGF0IGNvdWxkIGRvIHdoYXQgTGluayBkb2VzIChhbmQgYSB3aG9sZSBsb3QgbW9yZSBi
ZXNpZGVzKS4gQnV0IHRoZSBkZXZlbG9wZXJzIGZhaWxlZCB0byBwYWNrYWdlIGl0LCBmYWlsZWQg
dG8gbWFrZSBpdCB1c2FibGUgZm9yIGFueW9uZSBvdGhlciB0aGFuIGEgc21hbGwgZ3JvdXAgb2Yg
dGVjaC1vcmllbnRlZCB0aW5rZXJlcnMsIGZhaWxlZCB0byBnaXZlIGl0IGFuIGludml0aW5nIGZh
Y2UuIEluIGFkZGl0aW9uLCB0aGUgZGV2ZWxvcGVycyBmYWlsZWQgdG8gdW5kZXJzdGFuZCBob3cg
c2lnbmlmaWNhbnQgcGxhdGZvcm0gaXMgd2hlbiB0cnlpbmcgdG8gY3JlYXRlIHByb2R1Y3RzIGZv
ciBwZW9wbGUuIERlc2lnbmluZyB0aGUgbW9zdCBhd2Vzb21lIHRoaW5nIGluIHRoZSB3b3JsZCBp
cyBubyBoZWxwIGlmIGl0IGRvZXNuJ3QgcnVuIG9uIHRoZSBwbGF0Zm9ybXMgdGhhdCBwZW9wbGUg
d2FudCB0byB1c2UgKGZvciB3aGF0ZXZlciByZWFzb24pLiBBYmxldG9uIG5vdCBvbmx5IGNob3Nl
IE9TIHBsYXRmb3JtcyB3aXRoIGh1Z2UgbnVtYmVycyBvZiB1c2VycywgYnV0IGhhcyBwcm9jZWVk
ZWQgdG8gZGV2ZWxvcCBpdHMgb3duIHByb2R1Y3QtY2VudHJpYyBwbGF0Zm9ybSB0aGF0IHByb3Zp
ZGVzIGNvbXBlbGxpbmcgcmVhc29ucyBmb3IgdXNlcnMgdG8gd2FudCB0byByZW1haW4gd2l0aGlu
IGl0cyB3YWxscy4gVGhlIG9wZW4gc291cmNlIGNvbW11bml0eSBzaG91bGRuJ3QgYmUgdHJ5aW5n
IHRvIGZvbGxvdyBvciBjb3B5IHdoYXQgYSBjb21wYW55IGxpa2UgQWJsZXRvbiBkb2VzLCBidXQg
dGhlcmUgaXMgYSBzdHJvbmcgbGVzc29uIGhlcmU6IG91ciB0ZWNobm9sb2d5IGlzIG5vdCBhcyBp
bXBvcnRhbnQgYXMgd2UgbGlrZSB0byB0aGluay48YnI+Wy9xdW90ZV08YnI+PGJyPkluIGFueSBj
YXNlLCBvbmUgdGhpbmcgdGhhdCB3ZSd2ZSB0YWxrZWQgYWJvdXQgdG8gdmFyaW91cyBkZWdyZWVz
IGluIHRoZSBwYXN0IGlzIHRlbXBvIHJhbXBpbmcgaW4gSkFDSywgYW5kIHdpdGggdGhlIGFubm91
bmNlbWVudCBvZiBhYmxldG9uIGxpbmsgSSdkIGxpa2UgdG8gcmV2aXNpdCB0aGUgdG9waWMuPGJy
Pjxicj5odHRwOi8vbGludXhtdXNpY2lhbnMuY29tL3ZpZXd0b3BpYy5waHA/Zj00NCZhbXA7dD0x
MTY4MSZhbXA7cD00NjkxMjxicj5odHRwOi8vbGludXhtdXNpY2lhbnMuY29tL3ZpZXd0b3BpYy5w
aHA/Zj0xOSZhbXA7dD0yMjkwJmFtcDtwPTUxNDQ5PGJyPmh0dHA6Ly9saW51eG11c2ljaWFucy5j
b20vdmlld3RvcGljLnBocD9mPTEmYW1wO3Q9OTgzNSZhbXA7cD0zMDQ0Nzxicj48YnI+SkFDSyBk
b2VzIGluZGVlZCBsYXJnZWx5IGRvIHdoYXQgTGluayBkb2VzIChhbmQgbW9yZSkgYnV0IEkndmUg
YmVlbiBoYXZpbmcgZGlmZmljdWx0eSBzdWNjZXNzZnVsbHkgdGVtcG8gcmFtcGluZy4gSW5jaWRl
bnRhbGx5LCBkYW5ib2lkIHJlY2VudGx5IFtwb3N0ZWRdKGh0dHBzOi8vbGludXhtdXNpY2lhbnMu
Y29tL3ZpZXd0b3BpYy5waHA/Zj0xJmFtcDt0PTE0OTEyKSBhYm91dCBob3cgaGUgY2FuIHN1Y2Nl
c3NmdWxseSByYW1wIGluIE11U0U7IGJ1dCBJIGRvbid0IHVzZSBNdVNFIG5vciBkbyBJIHBsYW4g
dG8gaW4gdGhlIG5lYXIgZnV0dXJlLCBhbmQgdW5mb3J0dW5hdGVseSBteSBhdHRlbXB0cyB0byBj
aGFuZ2UgdGVtcG8gZHluYW1pY2FsbHkgd2l0aGluIHRoZSBncmVhdGVyIEpBQ0svbW9kdWxhciBM
QVUgcGFyYWRpZ20gaGF2ZSBiZWVuIHJhdGhlciB1bnN1Y2Nlc3NmdWwuPGJyPjxicj5UbyBjbGFy
aWZ5IG15IG93biB1c2UtY2FzZSwgSSdkIGxpa2UgdG8gbWFwIGFuIGVuY29kZXIva25vYiB0byBh
IHRlbXBvIGNvbnRyb2wgYW5kIGJlIGFibGUgdG8gc3BlZWQgdXAvc2xvdyBkb3duIHRoZSB0ZW1w
byBsaXZlLCBlLmcuIGR1cmluZyBhIHBlcmZvcm1hbmNlLjxicj48YnI+KipjaGFuZ2luZyB0ZW1w
byBhcyB0aW1lYmFzZSBtYXN0ZXIqKjxicj5Gb3IgdGhlIG1vc3QgcGFydCBpdCBzZWVtcyB0aGF0
IGNoYW5naW5nIHRlbXBvIGR5bmFtaWNhbGx5IGlzIHBvc3NpYmxlIGJ1dCBpdCBpcyBub3Qgd2Vs
bC1kZWZpbmVkLjxicj4qIHNlcTI0IGZvcmNlcyBpdHNlbGYgdG8gYmUgdHJhbnNwb3J0IG1hc3Rl
ciAoSSBrbm93IHRoZXJlJ3Mgc3VwcG9zZWQgdG8gYmUgYSBwYXRjaCBidXQgaXQgaGFzIHN0aWxs
IG5ldmVyIHdvcmtlZCBmb3IgbWUgZXZlcikgYW5kIGRpc2FsbG93cyB0ZW1wbyBjaGFuZ2VzIHdo
aWxlIHBsYXlpbmc8YnI+KiBoeWRyb2dlbiBzb3J0IG9mIGFsbG93cyB0ZW1wbyBjaGFuZ2VzIGJ1
dCBpdCB3aWxsIHNvbWV0aW1lcyBwb2xpdGVseSByZWZ1c2UgdG8gY2hhbmdlICh3aGljaCBpcyBi
YWQpPGJyPioga2xpY2sgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gc2VuZCBvdXQgcHJlZGVmaW5lZCB0
ZW1wbyByYW1wcyBidXQgSSBoYXZlbid0IGJlZW4gYWJsZSB0byBzZXQgaXQgYXMgdGltZWJhc2Ug
bWFzdGVyIGFuZCBhY3R1YWxseSBpbnRlcmFjdCB3aXRoIGl0IChJIHdhcyB0cnlpbmcga2xpY2sg
LVRpIGFuZCBrbGljayAtVG8gODA4MCBidXQgaXQgc2VlbXMgLWkgYW5kIC1vIHNvbWVob3cgZGlz
cmVnYXJkIHRoZSAtVCBvcHRpb24pPGJyPjxicj4qKmNoYW5naW5nIHRlbXBvIGFzIGEgc2xhdmUq
Kjxicj4qIGh5ZHJvZ2VuIGlzIGhhcHB5IHRvIG9ibGlnZSB0ZW1wbyBjaGFuZ2VzIGJ1dCBpcyBl
cXVhbGx5IGhhcHB5IHRvIGN1dCBvZmYgdGhlIGJlZ2lubmluZy9lbmQgb2YgYSBiYXI8YnI+KiBx
bWlkaWFycCBmb2xsb3dzIHRlbXBvIGNoYW5nZXMgYnV0IGRvZXNuJ3Qgc3RheSBpbiB0aW1lIGFu
ZCBmb3JnZXRzIHRvIHNlbmQgbm90ZS1vZmZzPGJyPjxicj5JJ2QgYXBwcmVjaWF0ZSBpZiBzb21l
b25lIG1vcmUgZmFtaWxpYXIgd2l0aCB0aGUgdHJhbnNwb3J0IHNwZWMgY291bGQgY2hpbWUgaW4g
b24gdGhpcywgSSdkIGxpa2UgdG8gdW5kZXJzdGFuZCB3aGF0IGlzIG1pc3NpbmcgZnJvbSBhIHRl
Y2huaWNhbCBwZXJzcGVjdGl2ZSAoSSdtIGFjdHVhbGx5IG5vdCBlbnRpcmVseSBjbGVhciBvbiB0
aGUgdGltZWJhc2UgbWFzdGVyL3NsYXZlIHJlbGF0aW9uc2hpcCBlaXRoZXIpLiA8YnI+PGJyPkdv
aW5nIGEgc3RlcCBmdXJ0aGVyLCBpdCBzZWVtcyB0aGF0IGFibGV0b24gbGluayBtYXkgYmVjb21l
IHRoZSBnby10byByZXBsYWNlbWVudCBmb3IgbWlkaSBjbG9jayBpbiBzb2Z0d2FyZS1iYXNlZCBw
cm9kdWN0aW9uOyBpdCBjb3VsZCBiZSBiZW5lZmljaWFsIHRvIGRpc2N1c3MgcG9zc2libGUgdGlt
ZWJhc2UgbWFzdGVyIGNsb2NrIGNsaWVudHMgdGhhdCBjYW4gYWxzbyBjb21tdW5pY2F0ZSB1c2lu
ZyB0aGUgYWJsZXRvbiBsaW5rIHByb3RvY29sLiBPZiBjb3Vyc2UgdGhpcyBpcyBjb250aW5nZW50
IG9uIHRoZSBTREsgYmVpbmcgY29tcGF0aWJsZSB3aXRoIGxpbnV4LCB3aGljaCBtYXkgYmUgdW5s
aWtlbHkgYnV0IHRoZXkgW2ldYXJlWy9pXSBlbmNvdXJhZ2luZyBpbnRlcmVzdGVkIGRldmVsb3Bl
cnMgdG8gW2dldCBpbiB0b3VjaF0oaHR0cHM6Ly93d3cuYWJsZXRvbi5jb20vZW4vbGluay8pLjxi
cj48YnI+QnkgdGhlIHNhbWUgdG9rZW4gaXQgd291bGQgYmUgZ3JlYXQgdG8gaGF2ZSB0aGlzIGZv
ciBtaWRpIGNsb2NrIGFzIHdlbGwgLS0gSSBrbm93IG9mIFtqYWNrX21pZGlfY2xvY2tdKGh0dHBz
Oi8vZ2l0aHViLmNvbS94NDIvamFja19taWRpX2Nsb2NrKSBhbHJlYWR5IGJ1dCBJIGRvbid0IGJl
bGlldmUgdGhlIHJldmVyc2UgY2FzZSBleGlzdHMsIHRob3VnaCBmYWxrdHggYW5kIEkgYnJpZWZs
eSBkaXNjdXNzZWQgW3NvbWV0aGluZyByZWxhdGVkXShodHRwczovL2xpbnV4bXVzaWNpYW5zLmNv
bS92aWV3dG9waWMucGhwP2Y9NDgmYW1wO3Q9MTI3NTUpIGEgd2hpbGUgYWdvLjxicj48YnI+VG8g
cmVpdGVyYXRlLDxicj48YnI+MS4gbGF1IGFwcHMgaGF2ZSB0byBpbXBsZW1lbnQgdGVtcG8gcmFt
cGluZyBpbiBKQUNLIHByb3Blcmx5PGJyPjIuIGEgSkFDSyB0aW1lYmFzZSBtYXN0ZXIgY2xvY2sg
Y2xpZW50IG11c3QgYmUgbWFkZSB0aGF0IGNhbjxicj4tIGNoYW5nZSB0ZW1wbyBkeW5hbWljYWxs
eTxicj4tIGNvbW11bmljYXRlIHdpdGggYWJsZXRvbiBzeW5jIHRvIHNlbmQvcmVjZWl2ZSB0ZW1w
byBpbmZvcm1hdGlvbiAocGVuZGluZyBhIHdvcmtpbmcgU0RLIGZvciBsaW51eCAodGhpcyBzaG91
bGQgYWxzbyBiZSBvcHRpb25hbCBmb3IgdGhvc2Ugd2hvIGRvbid0IHdhbnQgYW55dGhpbmcgcHJv
cHJpZXRhcnkpKTxicj4tIHNldCB0ZW1wbyBnaXZlbiBhIG1pZGkgY2xvY2sgaW5wdXQ8YnI+PGJy
PlRob3VnaHRzPyBJIHRoaW5rIHRlbXBvIHN5bmNpbmcgaXMgb25lIHdheSB3ZSBjYW4gZ2V0IEpB
Q0sgdG8gaW50ZXJhY3QgbW9yZSBwcm9hY3RpdmVseSB3aXRoIG90aGVyIHNvZnR3YXJlL2VxdWlw
bWVudCwgYW5kIHRoYXQgc2VlbXMgbGlrZSBpdCBjb3VsZCBiZSBhIGdyZWF0IHdheSB0byByZWNv
bm5lY3Qgd2l0aCB0aGUgcmVzdCBvZiB0aGUgYXVkaW8gY29tbXVuaXR5Lg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div></div></div>