JACK RELEASE 0.80.0
JACK is a low-latency audio server, written primarily for the GNU/Linux
operating system. It can connect a number of different applications to
an audio device, as well as allowing them to share audio between
themselves. Its clients can run in their own processes (ie. as normal
applications), or can they can run within the JACK server (ie. as a
"plugin").
JACK is different from other audio server efforts in that it has been
designed from the ground up to be suitable for professional audio work.
This means that it focuses on two key areas: synchronous execution of
all clients, and low latency operation.
CHANGES:
New transport API (details (of a sort) below).
new example client for control the transport.
ignoring of first xrun on jackd startup.
Much more portable across processors (details below).
jackd -v (--verbose) now prints useful transport state change
information for debugging JACK and clients. Also reports timeout info
in seconds, not microseconds now.
new dummy driver (along side the existing alsa and portaudio drivers).
Removed incomplete Solaris driver.
support for asymmetric soundcards (for example, es1968 chip has
interleaved stereo for playback but non-interleaved stereo for capture).
Now enforces power of two sized buffer lengths.
Many minor bug fixes.
DETAILS:
The new transport API:
It has greatly changed; if you're a developer, please see the
documentation. But as a highlight: jack_set_transport_info() and
jack_engine_takeover_timebase(), (the old timebase master interfaces)
now do nothing. Instead, use jack_set_timebase_callback().
Portability:
<jack/types.h> typedefs are now defined using the C99 standard
fixed-size integer typedefs. These new typedefs are binary compatible
with 32-bit platforms, but not 64-bit machines.
Programs using printf on these values will get GCC compiler
warnings. To suppress the warnings, use the corresponding C99
printf specifications defined in <inttypes.h>. That header is already
implicitly included by <jack/types.h>, but can also be
included explicitly to maintain compatibility with older versions
of JACK without messy #ifdef's. Adding explicit casts will also
work, but may suppress future warnings you might want to see.
jack_get_sample_rate() now returns jack_nframes_t rather than
unsigned long. These are the same on 32-bit machines, but not on
64-bit platforms.
These changes were made to accommodate the increasingly popular 64-bit
platforms; specifically, the new Opteron with it's 32-bit compatibility
mode. 32-bit mode probably won't work, but if all programs are compiled
as 64-bit (which Jack supports), it should work fine.
Taybin Rutkin