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
ladish:
* 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:
http://trac.jackaudio.org/ticket/193
= 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
applications.
* 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
saved/restored.
* 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
saved/restored.
--
Nedko Arnaudov <GnuPG KeyID: 7862B9E45D1B58ED>