JACK Plugin launcher source code
Go to file
Nedko Arnaudov 659c3c5e8d build.yml: remove wrong name 2022-08-29 20:15:54 +03:00
.github/workflows build.yml: remove wrong name 2022-08-29 20:15:54 +03:00
doc Add a README.rst file 2022-08-29 20:09:54 +03:00
.gitignore initial waf build system and skeleton implementation of jpl 2022-08-29 18:42:11 +03:00
COPYING move the bunch of license file to doc/ subdir 2022-08-29 19:08:34 +03:00
GNUmakefile CI: build on Ubuntu 22.04 2022-08-29 20:14:13 +03:00
README.rst Add a README.rst file 2022-08-29 20:09:54 +03:00
main.c Fix build from gitversion.h-less source trees 2022-08-29 19:16:35 +03:00
waf initial waf build system and skeleton implementation of jpl 2022-08-29 18:42:11 +03:00
wscript Fix build from gitversion.h-less source trees 2022-08-29 19:16:35 +03:00

README.rst

JACK Plugin Launcher
====================

A project for providing improved environment that is well suited
for applications in a JACK Audio Connection Kit modular system.

Jack Plugin is a term for libjack.so linked program that executes
in one or more dedicated processes.

Goals:
 * For improved DSP performance and recovery from crashes
   that occured in the UI parts of the Jack Plugins,
   JACK Plugins are facilitated to run with
   separate DSP and UI OS-level processes.
 * Multi-protocol session management approach,like the one used in
   LADISH implementation of liblash and in nsm-proxy used in
   NON Session, RaySession & New Session management systems,
   for handling incompatibilities between session managers
   and apps (out of process plugins) and providing better overal
   experience in modular systems using jack programs for a diverse set
   of sesison management protocols.
 * Possibility for each Jack Plugin to have multiple DSP backends.
   Some projected backend ideas:
    * non-optimized code that runs on any compatible CPU of given ISA
    * optimized code that runs only on matching CPUs
    * code optimized for running on iGPU or dGPU
    * code for running in possible future implementation of jack
      server in kernel mode.
    * Source code to build during load (FAUST, llvm, etc.)
 * Possibility for each Jack Plugin to have multiple UI frontends.
   Some projected frontend ideas:
    * X11 UI
    * ncurses (with optional sixel support) UI, via tmux or screen
    * (HTTP) Web UI
    * GPU accelerated UI for GLX
    * GPU accelerated UI for Wayland
    * GPU accelerated UI for EGL and linux framebuffer
 * Settings for tweaking desired behaviour.
   (Good) built-in defaults and system-wide (/etc), user-wide (~/)
   and per session managment project overrides of the settings.
   Some projected ideas for settings:
    * Order of preference for backends
    * Order of preference for frontends
    * Tweaks for LD_LIBRARY_PATH and other environment variables
    * whether to use tmux or screen for starting new ncruses UI

For installation instructions, read the doc/INSTALL.rst file.
If you are a (linux or libre) distribution packager,
read the doc/PACKAGING.rst file.