jack2 with LADI related goodies
Go to file
Colin McEwan dff7fa4fa8
Fix alignment of fields for atomic accesses (#761)
* Assert alignment is suitable for atomic accesses

* Move fields and pad to meet alignment constraints

* Add padding to JackEngineControl to account for inherited data

* Parenthesise padding length for clarity

* Revert "Parenthesise padding length for clarity"

This reverts commit 1f757b9ece5e3b032743c6c5ac49e83c3928e3de.

* Revert "Add padding to JackEngineControl to account for inherited data"

This reverts commit 3d8c7d83ad9483280f623171af7e40ccc76cef38.

* Revert "Move fields and pad to meet alignment constraints"

This reverts commit ff631bbbdc2279df05f3a18dd44e8fd68be2e04d.

* Assure alignment by using 'alignas' on fields
2021-06-30 09:16:28 +01:00
.ci More CI tweaks 2020-05-31 14:20:55 +01:00
.github/ISSUE_TEMPLATE Add github issue templates 2021-01-12 21:39:07 +00: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 Fix alignment of fields for atomic accesses (#761) 2021-06-30 09:16:28 +01:00
compat Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
dbus Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
example-clients Use static pthread for windows static builds 2020-09-20 16:50:09 +01:00
linux Cleanup around linux futex, apply EINTR case for timed waits 2021-04-14 17:05:28 +01:00
macosx Fix alignment of fields for atomic accesses (#761) 2021-06-30 09:16:28 +01:00
man Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
posix posix: fifo: use right prototype 2020-09-13 01:31:44 +02:00
solaris FIx doxygen and user facing and non-facing typos 2019-09-11 19:17:07 +01:00
systemd Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
tests Fix misc. typos 2021-06-30 09:11:21 +01:00
tools Fix misc. typos 2021-06-30 09:11:21 +01:00
waflib Fix misc. typos 2021-06-30 09:11:21 +01:00
windows Remove old workaround for asio4all, as it breaks with jack-router 2021-01-09 18:02:58 +00:00
.gitignore Update gitignore 2020-09-24 20:13:44 +01:00
.travis.yml Merge branch 'fix-ci' of github.com:jackaudio/jack2 into develop 2020-06-14 00:58:22 +01:00
.wafupdaterc Update to waf 2.0.11 2018-10-06 16:08:54 +02:00
AUTHORS.rst Update AUTHORS (mgeier, #458) 2019-04-27 16:47:43 +02:00
COPYING Add a local GPLv2 license file as COPYING 2020-06-15 01:07:23 +02:00
ChangeLog.rst Start of 1.9.19 2021-04-29 16:59:52 +01:00
README.rst README: Add repology repository badge 2020-10-11 22:23:10 +01:00
README_NETJACK2 FIx doxygen and user facing and non-facing typos 2019-09-11 19:17:07 +01:00
doxyfile.in Adjust doxygen config (import patch from Fedora) 2020-10-11 22:22:07 +01:00
jack.pc.in Use "64" suffix in windows 64bit build to match existing installer 2020-06-16 23:48:01 +01:00
svnversion_regenerate.sh FIx doxygen and user facing and non-facing typos 2019-09-11 19:17:07 +01:00
waf Make sure we use python3 (another patch from Fedora) 2019-10-28 11:38:21 +01:00
wscript Start of 1.9.19 2021-04-29 16:59:52 +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 `freenode IRC <https://freenode.net>`_.