[LAA] [ANN] LADI Session Handler - Preview 3

Nedko Arnaudov nedko at arnaudov.name
Sun Jan 9 19:17:08 UTC 2011

After a year of development ladish-0.3 is out! The main feature that
this release implements is the hardware port virtualization. Studios
that manage JACK and the overall infrastructure of the setup now can
contain the so called rooms. The rooms provide a predefined set of
ports that are linked to the studio through a virtual JACK multicore
(aka snake). The "contents" of the rooms are the projects. As with
studios, projects manage apps and connections between them. However
projects are not bound to particular audio/midi hardware and JACK
setup because project apps are connected to the room-studio link ports
that are fixed. On the studio side, these room-studio link ports can
be connected to the actual hardware ports, to ports of apps that are
part of the studio or even to room-studio link ports of different
rooms. Yes, you can have more than one room in the studio! It is quite
possible that room usage will fall into one of these two categories:

 * central room - this is a place where you load projects. It has the
   role of the place where things get generated. People will probably
   load sequencers and synths here. The purpose of the central room is
   to present abstract view of the hardware. This allows transfer of a
   project from one computer to other - either via Internet transfer or
   backup/restore process. The import/export will be implemented in the
   ladish-0.4 release. Rooms will be implemented in the ladish-0.3
   release (the next one).
 * side rooms - this is where standard processing usually happens. It
   can be seen as a macro mechanism. It can be useful for "effect rack"
   functionality or for recording. For example custom mastering process
   chain is probably reused for different projects. Side rooms allow
   loading of functionality after the initial process of song
   creation. You can compose your new song in the central room and
   save it. Then when you want to record it, you can load your recording
   setup (ardour2 based one for example) in the recording room.

Central and side rooms are interconnected in the studio. The studio
setup (JACK settings, connections between hardware and rooms) is
supposed to be almost static.

The new user visible features include:
 * Visual notifications about errors and studio/project state changes
 * ladish specific settings
 * lists of recently used studios and projects
 * connections of stopped apps are persisted
 * a2j ports are now clearly marked on gladish canvas
 * app start/stop by double clicking in the app list
 * you can save a text comment and description as part of the project
 * Russian, French and German l10n of gladish

ladish now can install the python bindings for liblash that are used
by some apps (jack_mixer, zynjacku). The ladish implementation of
liblash is still not functional, lashified apps will be told that lash
server is not available. The jack-session support is also not
implemented yet.

= Thanks =
In the past year lot of people helped the project, but some of them
played a major role:
 * Robert Dietrich (distrozapper) hunted bugs with inspiring dedication
 * Nikita Zlobin (nick87720z) joined the development team
 * Filipe Alexandre Lopes Coelho (falktx) made some bugfixes to
   ladish, made KXStudio a great LADI enabled Linux distro and worked
   on Qt/KDE frontends, alternatives to the gladish (GTK).
 * Frank Kober (dharanamrs, emuse) as usual helped a lot, mainly by
   guarding the inspiration level for the a2j support and by providing
   ideas about overall usability.

= Download =
The tarballs are available at the usual location:

 * http://ladish.org/download/
 * http://ladish.org/download/ladish-0.3-with-deps.tar.bz2
 * http://ladish.org/download/ladish-0.3-with-deps.tar.bz2.sig
 * http://ladish.org/download/ladish-0.3.tar.bz2
 * http://ladish.org/download/ladish-0.3.tar.bz2.sig

There are two tarballs. ladish-0.3-with-deps.tar.bz2 is 3.6 MiB and
bundles the major dependencies that are usually needed for running
 * flowcanvas
 * LADI Tools
 * a2jmidid
 * jack2

All of these are either development (git/svn) versions or release
versions that are patched to work better with ladish. The last released
versions of these dependencies are expected work with ladish. The most
serious "incompatibility" is that the jack2 mainline is missing the
no-self-connect changeset. This changeset adds option to jack that
allows prevention of jack apps self connection to "hardware" ports
(usually system:playback_N). As such self-connecting apps are not rare
at all, without it, the studio/room separation is not-effective and
the workflow can get very confusing.

If you are compiling the software by yourself, then you should
probably use this "fat" tarball.

The ladish-0.3.tar.bz2 tarball is 569 KiB and contains only ladish
itself. It is expected to be used mainly by packagers.

= Known issues =

There is one known jack2 bug that sometimes hits the ladish
workflows. If two instances of same app are started in parallel and
these apps don't request unique jack client name but instead rely on
jack feature that autorenames clients, apps usually fail to start. The
bug has a ticket recorded in the jack bugtracker:


= More info on the ladish project =

 * Homepage: http://ladish.org/
 * Roadmap: http://ladish.org/roadmap

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. It can also be used to move entire
sessions between computers, or post sessions on the Internet for
download. Check the project goals for more info. 

Project goals:
 * Save and restore sets of JACK (audio and MIDI) enabled
 * Provide JACK clients with virtual hardware ports, so projects can
   be transfered (or backups restored) between computers running
   different hardware and backups. 
 * Don't require session handling library to be used. There is no need
   of such library for restoring connections between JACK clients.
 * Flow canvas based GUI. Positions of elements on the canvas are
 * Allow clients to use external storage to save its 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. 
 * 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.
 * Hierarchical or tag-based organization of projects.
 * List of JACK applications. Applications are always started through
   ladish to have restored runtime environment closer to one existed
   before project save.
 * Distributed studio - network connected computers. Netjack
   configuration is part of the studio and thus is saved/restored.
 * Collaborate with the X11 window manager so window properties like
   window position, virtual desktop and screen (multimonitor) are

Nedko Arnaudov <GnuPG KeyID: 7862B9E45D1B58ED>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: not available
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-announce/attachments/20110109/c2b3fae1/attachment.pgp>

More information about the Linux-audio-announce mailing list