jack2vsjack1.txt 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. 20200119 bkw: The default jack version on SlackBuilds.org is now 1.9.14,
  2. aka JACK2. The old 0.125.0 version (formerly jack-audio-connection-kit)
  3. is still available as "jack1". The JACK2 build used to be called "jack2",
  4. and has been renamed to simply "jack". SBo maintainers take note: please
  5. don't list jack1 in REQUIRES for your builds. If your build really does
  6. work only with jack1 and fails with jack, please contact me (B. Watson,
  7. yalhcru@gmail.com) and let me know the details.
  8. This information might be helpful in understanding the differences
  9. between jack and jack1.
  10. jack and jack1 are API compatible enough that applications can be built
  11. against either, and in fact most (possibly all?) apps can be built
  12. against one and run with the other with no problems.
  13. jack1 wasn't designed to benefit from multiple CPU cores/threads. It may
  14. (or may not) offer slightly better performance on single-core systems.
  15. jack no longer supports jack1's "-Z" flag.
  16. When using -Xseq with jack, connect your ALSA MIDI devices to the system
  17. "MIDI thru" port, then connect that port to the JACK midi capture
  18. port. This is an extra step that isn't necessary with jack1.
  19. jack stores a persistent "registry" and database in /dev/shm, which
  20. is intended to speed up jack startup and allow multiple jack servers
  21. on the same host to cooperate. There is one small issue with this:
  22. if jackd can't write to /dev/shm/jack_db/, it will fail to start
  23. (segfault). If this happens, make sure jackd is not running, and "rm
  24. -rf /dev/shm/jack*". This only happens when jackd is used by different
  25. users, which means most of us will be unaffected by it. Upstream has
  26. been notified, and a fix is being worked on.
  27. Original README from the old jack2 package has some possibly outdated
  28. info on the differences between 1 and 2:
  29. jackdmp (aka JACK2) is a C++ version of the JACK low-latency audio
  30. server for multi-processor machines. It is a new implementation
  31. of the JACK server core features that aims in removing some
  32. limitations of the JACK1 design. The activation system has been
  33. changed for a data flow model and lock-free programming techniques
  34. for graph access have been used to have a more dynamic and
  35. robust system.
  36. - jackdmp use a new client activation model that allows simultaneous
  37. client execution (on a smp machine) when parallel clients exist
  38. in the graph (client that have the same inputs). This activation model
  39. allows to better use available CPU on a smp machine, but also works
  40. on a mono-processor machine.
  41. - jackdmp use a lock-free way to access (read/write) the client graph,
  42. thus allowing connections/disconnection to be done without
  43. interrupting the audio stream. The result is that
  44. connections/disconnections are glitch-free.
  45. - jackdmp can work in 2 different modes at the server level :
  46. - synchronous activation : in a given cycle, the server waits for
  47. all clients to be finished (similar to normal jackd)
  48. - asynchronous activation : in a given cycle, the server does not
  49. wait for all clients to be finished and use output buffer
  50. computed the previous cycle.
  51. The audible result of this mode is that if a client is not activated
  52. during one cycle, other clients may still run and the resulting audio
  53. stream will still be produced (even if its partial in some way).
  54. This mode usually result in fewer (less audible) audio glitches in a
  55. loaded system.