RustAudio / rust-jack

Rust bindings for JACK. A realtime sound server for audio and midi IO
http://rustaudio.github.io/rust-jack/
MIT License
209 stars 33 forks source link

JACK transport #115

Open xlambein opened 4 years ago

xlambein commented 4 years ago

First of all, I'd like to thank you all for this crate, it's really nice :-)

For a personal project, I need to have JACK transport functionalities, which are not implemented yet here. I might be able to contribute this feature to the crate myself, but I'm not exactly sure where to begin? Anyone knows what needs to be done, in order to add transport?

wmedrano commented 4 years ago

Is this the same as #50, if so, then the issue was that jackctl functions weren't linked into the version of jack that I had. If not, then I'm not familiar with JACK transport.

xlambein commented 4 years ago

Not super familiar with the inner workings of JACK in general, but from looking at the doc it seems that transport is not the same thing as jackctl. Transport is the tool that's used to synchronize the clocks of multiple JACK clients (e.g. Ardour with Hydrogen), whereas jackctl seems to be about starting and managing a JACK server.

wmedrano commented 4 years ago

Seems like I just missed it, so its fine to go ahead and add the feature to rust-jack.

Jack reference: https://jackaudio.org/api/group__TransportControl.html And the functions do indeed seem to be part of the ffi in the jack-sys crate.

x37v commented 3 years ago

I'm working on some bindings for the query and control: https://github.com/x37v/rust-jack/tree/xnor/transport

I'm not planning to do slow sync or 'master' bindings at this time. Will submit a PR once I test out the control as at this point I've only tested the query.

x37v commented 3 years ago

https://github.com/RustAudio/rust-jack/pull/134

x37v commented 3 years ago

134 has been merged, this provides transport query/control.

Transport timebase master is not implemented yet.