Filewatcher File Search File Search
Content Search
» » » » » lashwrap_1.0.2-0ubuntu2_amd64.deb » Content »
pkg://lashwrap_1.0.2-0ubuntu2_amd64.deb:37216/usr/share/doc/lashwrap/  info  control  downloads

lashwrap - LASH wrapper for non-LASH audio and midi applications…  more info»




Lash-Wrap is a small helper application that serves as a "proxy" between an un-LASH'ified app and the LASH system.

LASH is the LASH Audio Session Handler, a server/client solution to storing and restoring whole music sessions ("session" as a collection of interconnected JACK and ALSA programs).

Sadly not all (pretty much none) of the vast amount of cool linux audio and music apps are LASH'ified. Which makes using LASH pretty pointless at the time being. This little app tries to provide a suboptimal solution which should at least alleviate the user from writing an individual shell script for starting up every single music project.


The general commandline syntax is:

lash_wrap [lash_wrap arguments] -- [commandline to start app]


An example is sometimes worth more than 100 lines of docs, so here you go:

lash_wrap --jack-name ardour --alsa-name ardour -- ardour2 /media/sound/ardour/foo/foo.ardour

As you can see you have to tell the app in question what file to load its state from. In this case we tell ardour2 to load an ardour file called


The user is responsible to save the ardour file before closing the LASH project. This way, the next time when the LASH session gets restored, ardour will be started with the exact same commandline again, thus loading its own session file. At which point the user then can happily continue working on his project. 

We also have to tell lash_wrap the jack client and alsa port names of the propgram we want to run if we want our connections to be restored. The --alsa-name option is a bit dirty. It works by searching for the exact client name and then getting its ID. An alternative way would be to specify the client ID if its known beforehand. E.g. a client might allow the client ID itself to be specified:

lash_wrap --alsa-id 64 --jack-name some_app -- some_app --seq-client-id 64

I can't think of any apps that provide this option though at this moment. So i just left it in, because it was easy to implement.


It's also possible to probe the alsa and jack client names. This can be done with the "-p" parameter which starts the wrapped application, waits for a certain period of time listening to new jack and alsa clients before automatically exiting. During the probe a new command line is printed with the probed client names. 

An example of a probe command for a soft synth named Phasex:
lash_wrap --probe-client-name -- phasex

Result of the probe:
[Lash-Wrap]: ******************************************************
[Lash-Wrap]: * probed startup command:
[Lash-Wrap]: * lash_wrap -l phasex -j "phasex" -a "PHASEX Synthesizer" -- phasex
[Lash-Wrap]: ******************************************************


If you forget to save your work in the wrapped application it will very likely be lost [unless the app has some auto-save feature]. Once you close the LASH session, lash_wrapped apps will get killed by lash_wrap [first sending a SIGTERM, then a SIGKILL]. Depending on the specific implementation and version of jackd you are using this might have serious unwanted side effects. Be warned ;D

I suppose for some apps there might exist ways to tell them to save/load their state via some alternative way [e.g. by a shell script interface or something]. It might be possible to extend lash_wrap into this direction some time in the future. If you have suggestions, let me know.

Florian Paul Schmidt

The probing code the man page and some other changes have been generously provided by Jaakko Sipari [].

Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017