jack2 with LADI related goodies
Go to file
Florian Walpen 886b35c3bd JackPosixProcessSync: Fix mutex owner on TimedWait() timeout.
Per POSIX definition, pthread_cond_timedwait() re-acquires the mutex
when a timeout occurs and ETIMEDOUT is returned. In that case also
mark the waiting thread as owner again, for consistency.
Otherwise subsequent attempts to unlock the mutex will fail, leaving
the mutex locked forever.
2023-12-09 20:32:37 +01:00
.github Cleanup and rework CI setup (#942) 2023-07-04 14:55:12 +02:00
android Fix misc. typos 2021-06-30 09:11:21 +01:00
autooptions FIx doxygen and user facing and non-facing typos 2019-09-11 19:17:07 +01:00
common Add to last commit, make use of HAVE_DBUS_1 2023-12-03 12:27:49 +01:00
compat Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00
dbus Fix typos 2023-01-28 16:48:31 +01:00
freebsd FreeBSD: Override UpdateLatencies() to fit OSS latencies. 2022-05-30 01:22:54 +02:00
linux Jack MIDI portnames (fixes #944) (#945) 2023-08-29 16:07:54 +02:00
macosx Do not require rosetta for generated macOS packages 2023-07-04 13:53:08 +02:00
man Fix man/fill_template for waf clean 2023-08-29 15:56:29 +02:00
posix JackPosixProcessSync: Fix mutex owner on TimedWait() timeout. 2023-12-09 20:32:37 +01:00
solaris FreeBSD: Add missing OSS option --excl to man page. 2022-01-15 15:09:56 +00:00
systemd Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
tests Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00
waflib Update to waf 2.0.26 2023-08-29 17:08:30 +01:00
windows Allow portaudio driver on any system, use device reservation too 2023-12-03 12:29:07 +01:00
.cirrus.yml CI: Update FreeBSD images to 13.2-RELEASE and 14.0-RELEASE. 2023-12-09 15:21:22 +01:00
.flake8 Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00
.gitignore Fix wscripts syntax (#826) 2022-04-13 18:29:29 +01:00
.wafupdaterc Update to waf 2.0.11 2018-10-06 16:08:54 +02:00
AUTHORS.rst macOS: Pass JackMachSemaphore send right via mach_msg IPC (#788) 2022-01-15 15:09:55 +00:00
COPYING Add a local GPLv2 license file as COPYING 2020-06-15 01:07:23 +02:00
ChangeLog.rst Update changelog 2023-02-02 12:04:10 +01:00
README.rst IRC has moved to Libera Chat a while ago 2022-04-16 11:25:26 +01:00
README_NETJACK2 FIx doxygen and user facing and non-facing typos 2019-09-11 19:17:07 +01:00
doxyfile.in Fix compilation of documentation 2021-06-30 09:18:14 +01:00
jack.pc.in pkgconfig: Use predefined variables in Libs and Cflags 2022-02-17 18:28:09 +00:00
waf Update to waf 2.0.26 2023-08-29 17:08:30 +01:00
waflib-macos-mods.patch Update to waf 2.0.26 2023-08-29 17:08:30 +01:00
wscript Allow portaudio driver on any system, use device reservation too 2023-12-03 12:29:07 +01:00

README.rst

`JACK2 <https://jackaudio.org/>`_
################################

.. image:: https://travis-ci.org/jackaudio/jack2.svg?branch=master
   :target: https://travis-ci.org/jackaudio/jack2  
.. image:: https://repology.org/badge/tiny-repos/jack-audio-connection-kit.svg
   :target: https://repology.org/metapackage/jack-audio-connection-kit/versions
   
JACK2 aka jackdmp is a C++ version of the JACK low-latency audio server for
multi-processor machines. It is a new implementation of the JACK server core
features that aims at removing some limitations of the JACK1 design. The
activation system has been changed for a data flow model and lock-free
programming techniques for graph access have been used to have a more dynamic
and robust system.

- uses a new client activation model, that allows simultaneous client
  execution (on a SMP machine) when parallel clients exist in the graph (client
  that have the same inputs). This activation model allows to better use
  available CPU on a smp machine, but also works on mono-processor machine.

- uses a lock-free way to access (read/write) the client graph, thus
  allowing connections/disconnection to be done without interrupting the audio
  stream. The result is that connections/disconnections are glitch-free.

- can work in two different modes at the server level:

  - *synchronous activation*: in a given cycle, the server waits for all
    clients to be finished (similar to normal jackd)

  - *asynchronous activation*: in a given cycle, the server does not wait for
    all clients to be finished and use output buffer computed the previous
    cycle.
    The audible result of this mode is that if a client is not activated
    during one cycle, other clients may still run and the resulting audio
    stream will still be produced (even if its partial in some way). This
    mode usually result in fewer (less audible) audio glitches in a loaded
    system.

For further information, see the JACK `homepage <https://jackaudio.org/>`_ and `wiki <https://github.com/jackaudio/jackaudio.github.com/wiki>`_. There are also the #jack and #lad chat channels on `Libera Chat IRC <https://web.libera.chat/#jack>`_.