Crates.io | rust-jack |
lib.rs | rust-jack |
version | 0.1.0 |
source | src |
created_at | 2016-10-09 01:38:13.721156 |
updated_at | 2016-10-09 01:38:13.721156 |
description | Safe jack bindings for rust. |
homepage | |
repository | https://github.com/wmedrano/rust-jack |
max_upload_size | |
id | 6792 |
size | 56,982 |
Nice Rust bindings for JACK Audio Connection Kit
libjack
is required. Consult your package manager or the official website.
The general workflow for a jack application is to start up a jack daemon and connect the client to it. qjackctl is a convinient way to configure and bring up a jack server through a GUI.
Testing is a little awkward to setup since it relies on a Jack server.
Testing expects there to be an available Jack server running at a sample rate of 44.1kHz and a buffer size of 1024 samples.
$ jackd -r -ddummy -r44100 -p1024 & # Start the dummy jack server
If the tests are failing, a possible gotcha may be timing issues.
RUST_TEST_THREADS
to 1.DEFAULT_SLEEP_TIME
in test.rs
.Another case can be that libjack is broke. Try switching between libjack and libjack2 (they have the same API and libjack2 isn't necessarily newer than libjack), or using a different version.
$ cargo test
String lengths in the "C" API include the NULL
character while these Rust
bindings do not. generally rust_size(x) = c_size(x) - 1
.
"C" bindings require functions to be registered while Rust bindings register an object with a trait.
jack_on_shutdown
has been removed, uses only jack_on_info_shutdown
.
Rust enums vs C enums
Rust bitflags vs C integers used as flags
deprecated Jack functions are not used/implemented in Rust bindings
Sections based on the main page sections on the Jack API.