K_jackd is a project mainly written in C and PURE DATA, it's free.
A jack server implemented as a pd external.
ABOUT
k_jack currently consists of k_jackd~, libk_jack and libaipc.
k_jackd~ is a jack server external for pure-data.
libk_jack is (supposed to be) a (somewhat) libjack compatible
library.
Jack applications that want to contact k_jackd~ instead
of jackd must (somehow) be linked with libk_jack and
libaipc instead of libjack.
k_jackd~ does not speak with libjack, and jackd does not
speak with libk_jack.
libaipc is a library for audio interprocess communication,
based on code from the vstserver. A preview version is
included with this version of k_jack. (API is not settled.)
By using libaipc for interprocess communication, and letting
PD take care of various low/mid/high-level audio-stuff,
only a few hundred lines of code is currently used for this
implementation of a simple jack system.
k_jackd~ and libk_jack are not based on the jack sourcecode
found at jackit.sf.net, except for protos in the header files.
COMPILE
USAGE
That should be it. Later, when things get more stable, point 3
can do point 2 automaticly.
WHY use k_jackd~ ?
1. Simple. Only the clientname is used, not the portnames.
2. Easy and powerful interface to control the audioflow.
3. Good performance. Shouldn't be necessary to run as root.
TESTED CLIENTS simple_client, freqtweak, ceres.
BUGS Crashes pretty often. Does not clean up. Huge risk of not freeing shared memory in the current implementation: Client must exit before server, and client must not crash. And server must not crash.
CONTACT Send ideas (especially about the k_jackd~ object syntax), comments (especially about the libaipc API), questions, code, food, etc. to [email protected]