LADI Session Handler https://ladish.org/
Go to file
Nedko Arnaudov 628fe28e4b Merge branch 'stable' into 'main' 2024-04-18 21:25:23 +03:00
.github/workflows ci/github: Ubuntu 18.04 deprecated 2023-04-19 13:48:02 +03:00
alsapid Merge branch '1-stable' into branch 'main' 2024-03-26 20:25:44 +02:00
art add gladish to meson build 2021-02-14 14:25:57 +01:00
common Update meson to match wscript state 2023-08-27 20:51:42 +03:00
daemon Merge branch 'stable' into branch 'main' 2024-03-29 16:56:04 +02:00
doc Minor formatting fix in coding_style.txt 2013-07-21 01:06:37 +03:00
example-apps Apply patch from openSUSE for python3 compatibility 2021-02-14 20:07:38 +02:00
gui Update meson to match wscript state 2023-08-27 20:51:42 +03:00
lash_compat Update meson to match wscript state 2023-08-27 20:51:42 +03:00
lib daemon: Router templates 2010-09-05 03:06:15 +03:00
po update translations, new string 2011-10-13 01:13:21 +04:00
proxies Merge branch '1-stable' into branch 'main' 2024-03-26 20:25:44 +02:00
.gitignore github CI for ladish 2022-08-28 02:02:11 +03:00
AUTHORS Update Nikita Zlobin e-mail 2011-05-02 18:36:42 +06:00
COPYING clarify the dual-licensing in the dbus/ tree 2011-01-29 14:24:07 +02:00
Doxyfile doxygenize app_supervisor.h 2010-05-08 17:54:24 +03:00
GNUmakefile GNUmakefile: add index.html target 2023-11-27 19:31:55 +02:00
INSTALL Update INSTALL 2012-12-29 15:48:02 +02:00
NEWS Add NEWS entry for 1.3 2024-04-18 21:23:57 +03:00
README-docinfo-header.html Merge ladish.org index.adoc and README into README.adoc 2023-04-19 18:27:24 +03:00
README-docinfo.html Merge ladish.org index.adoc and README into README.adoc 2023-04-19 18:27:24 +03:00
README.adoc Add dl.ladish.org hyperlink for tarballs 2023-11-27 19:27:26 +02:00
afl21.txt clarify the dual-licensing in the dbus/ tree 2011-01-29 14:24:07 +02:00
assert.h waf: fix the include path workaround 2010-11-14 19:27:56 +02:00
common.h Fix unused-parameter warnings in plain C code 2012-12-02 23:50:05 +02:00
conf.c switch to cdbus code from libcdbus.so 2023-05-01 07:46:34 +03:00
dbus_constants.h Refresh against the laditools' first stable release. 2012-03-23 19:19:55 +01:00
gpl2.txt clarify the dual-licensing in the dbus/ tree 2011-01-29 14:24:07 +02:00
jmcore.c switch to cdbus code from libcdbus.so 2023-05-01 07:46:34 +03:00
ladish_control ladish_control: fix py3 exception handling 2023-04-19 13:43:08 +03:00
log.h Adjust for the updated log cdbus interface 2023-05-01 13:06:32 +03:00
meson.build Merge branch 'stable' into branch 'main' 2024-03-29 16:56:04 +02:00
meson_options.txt Update meson to match wscript state 2023-08-27 20:51:42 +03:00
string_constants.c use strings for app levels 2011-07-28 15:15:47 +03:00
syncpo Fix syncpo 2010-12-28 11:43:39 +05:00
unpack_waf.sh update unpack_waf.sh for py3; .gitignore extracted waflib 2021-02-22 02:11:39 +02:00
verify-sig_waf.sh add verify-sig_waf waf verification script from waf-2.0.27 2024-04-18 18:12:40 +03:00
waf Upgrade waf to 2.0.27 2024-04-18 18:12:40 +03:00
wscript Bump version to 1.2 2024-03-26 23:50:09 +02:00

README.adoc

LADI Session Handler or simply ladish is a session management system for JACK applications on GNU/Linux. Its aim is to allow you to have many different audio programs running at once, to save their setup, close them down and then easily reload the setup at some other time. ladish doesn't deal with any kind of audio or MIDI data itself; it just runs programs, deals with saving/loading (arbitrary) data and connects JACK ports together.

The LADISH graphical interface (GTK+ based reference front end) gladish screenshot

The Claudia LADISH front end (Python + Qt based) Claudia screenshot

Features:

  • Save and restore sets of JACK (audio and MIDI) enabled applications.

  • Subgraph management, the Studio & Rooms concept. Provide JACK clients with virtual hardware ports, so projects can be transferred (or backups restored) between computers running different hardware and backups. Allows to decouple projects (loaded in a Room) from hardware audio IO used in particular Studio. A virtual jack-multicore cable connects room IO ports to hardware IO ports.

  • Dont require session handling library to be used. There is no need of such library for restoring connections between JACK clients. LADISH is able to manage JACK apps that don't link to liblash (or liblo). This is known as L0 (level zero) in LADISH.

  • Seamless handling of apps that use ALSA sequencer ports. This is achieved by use of a2jmidid and libalsapid.so. The former creates jack-midi ports for the alsa sequencer ones. The latter reports the alsa application process ID to ladishd, so that ladishd can associate the a2jmidid-created ports with application.

  • Flow canvas based GUI. Positions of elements on the canvas are saved/restored.

  • Allow clients to use external storage to save their state. This includes storing internal state to non-filesystem place like memory of a hardware synth. This also includes storing client internal state (client project data) in a way that is not directly bound to ladish project.

Among project future goals are:

  • Support for pipewire setups (in addition to JACK1 and JACK2)

  • List of available JACK applications.

  • Hierarchical and/or tag-based organization of projects.

  • Support for applications that create more than one jack client per process

  • Support for applications that create use more than one jack client process

  • Non Session Manager protocol support

  • New Session Manager protocol support

  • Collaborate with the X11 window manager so window properties like window position, virtual desktop and screen (multimonitor) are saved/restored.

  • Distributed studio - network connected computers. Netjack configuration is part of the studio and thus is saved/restored. Saving/restoring state in multi-machine network

  • Ability to move entire sessions between computers, or post sessions on the Internet for download. Import/export operations, as opposed to save/load. Save/load operate in current system and may cause saving data outside of project itself (external storage). Import/export uses/produces "tarball" suitable for transferring session data over network to other computer or storing it in a backup archive.

  • Session versioning via Git

Tarballs:

GIT repositories:

LADI Session Handler was forked from the D-Bus-ified LASH project. Things that LADISH can do but LASH (D-Bus-ified or not) cannot:

  • Subgraph management, the Studio & Rooms concept. Allows to decouple projects (loaded in a Room) from hardware audio IO used in particular Studio. A virtual jack-multicore cable connects room IO ports to hardware IO ports.

  • Dont require session handling library to be used. There is no need of such library for restoring connections between JACK clients. LADISH is able to manage JACK apps that don't link to liblash (or liblo). This is known as L0 (level zero) in LADISH.

  • Seamless handling of apps that use ALSA sequencer ports. This is achieved by use of a2jmidid and libalsapid.so. The former creates jack-midi ports for the alsa sequencer ones. The latter reports the alsa application process ID to ladishd, so that ladishd can associate the a2jmidid-created ports with application.

See also:

For related discussions, you are invited to join Libera.Chat channel #ladi