Skip navigation.

JACK 0.115.6 released

On behalf of all those work on JACK, I am happy to announce the release of JACK 0.115.6.

(corresponding to svn rev 3132)

Qualitatively speaking, this is the best and most stable version of JACK ever released. It fixes many problems with the 0.109.2 release (which in truth should probably never have been allowed out of the door), as well as improving many areas of JACK. The list of changes below summarizes the changes over the last 10 months.

The plan is to release JACK 1.0 before the end of this year. Very few changes will be accepted before then. The release of JACK 1.0 will freeze the 1.0 API, and will result in the codebase for JACK 1.0 being switched into maintainance-only mode as all development on JACK switches to JACK 2.0 (currently being released as JACK 1.9). If you have patches, documentation updates or other "meta-changes" that you believe should be included in JACK 1.0, please speak up about them very, very soon.

Packagers should note that we now prefer the contents of the "tools" directory to be included *with* the main JACK package, not an addition to it. The other clients that remain in the "example-clients" directory are not so critical and can be packaged separately, if at all.

Please note: this release of JACK will not build correctly on systems with very old versions of glibc because of missing support for PThread Read/Write locks. By "old", I estimate that only glibc versions from at least 5 years ago are affected by this change. All current and reasonably recent Linux distributions, as well as OS X, are unaffected by this issue.

Changes Since 0.109.2


  • New thread model API (clients can choose to wait for
  • JACK instead of registering a callback)
  • Allow a 64 bit JACK server to host 32 bit clients and vice versa
  • Support for 32 bit float (little-endian) hardware sample formats
  • Huge improvements detecting and cleaning up problematic clients
  • Move useful clients into the "tools" directory
  • Torben Hohn's alsa_in, alsa_out are now included tools
  • NetJACK is now part of JACK
  • Solaris & OpenBSD backends operational
  • Add manpages for the examples and tools (origin: debian)
  • Reference documentation cleaned up a little, and overview function groups added to make understanding the JACK API slightly easier


  • Absolutely critical ringbuffer fixes
  • Clean up build system in numerous ways
  • Sync memops.h file with the one found in alsa driver.
  • Workaround for kernel bug in Linux 2.6.24
  • ensure proper cleanup if run_cycle fails
  • Correctly measure ALSA xrun duration
  • Correctly set default tmpdir
  • Change port names for ALSA Sequencer related ports. (Drop sequencer client IDs, add aliases that make port naming more obvious and persistent)
  • Many small fixes for JACK MIDI
  • Avoid error in handling float->int conversion by ALSA backend that could affect certain signal types
  • NetJACK now has jitter control, and handles lost packets by behaving like the dummy driver at such times.


  • Use RWLocks rather than simple Mutexes to minimize audio dropouts when querying graph state
  • Make clients call jack_messagebuffer_init() & jack_messagebuffer_exit()
  • Use messagebuffer for debug messages.
  • Fixes for some powerpc64 issues
  • Fix failure handling on non-threaded driver start
  • Make dummy backend use clock_nanosleep when available.
  • Embed small MIDI messages (4 bytes or less) into event structure.
  • If raw midi port can't be opened, do not try again
  • jack_log replaced by jack_info
  • Server code compiled in libjackserver library
  • no longer runs ./configure by default
  • ALSA backend: clean up and rationalize float/int conversion code.
  • ALSA backend: currently no dithering when converting from float to 24-bit audio.


Stephane Letz, Florian Faber, Marc Olivier Barre, Karsten Wiese, Torben Hohn, Jacob Meuser, Heikki Lindholm, Nedko Arnukov, Michael Gerdeau, Paul Davis, Jussi Laako