[feature request] make Pipewire transport suitable for Looping (and so Ableton Link)
Fix the limitations of jack_transport for looping. Jack wasn't really designed with looping in mind, but in recent days, looping is a important feature when producing modern electronic music (Ableton Live, Bitwig Studio etc.).
A consequence of JACK and it's advanced routing capabilities and the lack of a good plugin format, resulted in a very modular music production environment on Linux, with different music production applications, which can you connect to each other ( 'one task one tool environment') and use jack_transport to run them all in sync. (see 'Non-Daw' http://non.tuxfamily.org/ openavproductions: http://openavproductions.com/ and Laborejo suite https://laborejo.org/ as examples. )
The new technology 'Ableton Link' is a new way to sync applications based on beats via a local network. It seems the application Ableton Live is recommending Ableton Link above Midi Clock for instance (1). For this to work properly, you need applications that are able to loop.
We have the modular tools on Linux, but we have to deal with the limitations of jack_transport too unfortunately. It would be cool if pipewire could address and fix this issue.
(1) https://help.ableton.com/hc/en-us/articles/209071149-Synchronizing-Live-via-MIDI
More info:
- Ableton Link: https://www.ableton.com/en/link/
- Ableton Link on github: https://github.com/Ableton/link
- LAC presentation about Ableton Link: https://media.ccc.de/v/lac2018-42-ableton_link_a_technology_to_synchronize_music_software/playlist
- Ableton Link for jack_transport: https://github.com/rncbc/jack_link
- Quote by Paul Davis about Ableton Link vs jack_transport: https://github.com/openAVproductions/openAV-Luppp/issues/303#issuecomment-583116892
- At the moment at least SuperCollider, Ardour and Carla have Ableton Link support already (all though one application is more suitable for it as the other).
- The equivalent of jack transport in pipewire is this: https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/spa/include/spa/node/io.h#L265