JACK Plugin Launcher
Loading...
Searching...
No Matches
Main page

Abstract

JACK Plugin Launcher is 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, screen or some other terminal emulator like xterm (X11) for starting new command-line shell or ncruses UI.
  • Execution on other machine in the network, via ssh/libssh/gabriel. Facilitate public / private key setup for such deployments.

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

Source code

NOTE: This project is Work In Progress