ghostess - graphical DSSI plugin host
[ -debug level
] [-hostname hostname
[ -projdir projdir
] [ -uuid uuid
[ -f cfgfile
] [ -n
] [-chan c
] [-prog b p
] [ -port
is a DSSI host that listens for MIDI events, delivers them to
DSSI synth plugins, and outputs the resulting audio via JACK. ghostess
also supports DSSI plugins having audio inputs (effects), LADSPA plugins, and
the use of DSSI-style user interfaces with LADSPA plugins. ghostess
host up to 32 plugin instances at one time.
Depending on the compile-time configuration, ghostess
will receive MIDI
events from ALSA, JACK MIDI, or CoreMIDI. Unless otherwise specified by the
option, each plugin instance is sequentially assigned a MIDI
channel, wrapping from 15 (zero-based) back to 0 when necessary. Unless
is specified, plugin inputs and outputs are connected
sequentially to the available JACK physical input and output ports,
respectively, wrapping back to the first port whenever the available ports are
At startup, ghostess
presents a simple GTK+ user interface. Each plugin
instance is represented in a frame, labeled with the plugin name, and
containing a MIDI activity indicator and a ´UI´ button.
Left-clicking the ´UI´ button will start or hide the plugin's
user interface (UI). Right-clicking the ´UI´ button will
allowing starting, hiding, showing, or terminating the plugin's UI.
The ´Save Configuration...´ option of ghostess
´File´ menu allows saving the current configuration of all
plugins to a file. Basically, the file is just a Bourne shell script that can
be used to recreate the configuration.
comes with a minimal universal DSSI GUI,
, that can be used with any DSSI or LADSPA
plugin. It does not read RDF files or instantiate the plugin, so it's not as
full-featured as a universal GUI could be, but it does allow for adjusting
DSSI/LADSPA ports, selecting bank and program (for plugins with
select_program()), and sending test notes (for plugins with any of the
run_synth() functions). If ghostess cannot find a UI for a plugin, and the
universal GUI is in the PATH
will launch it.
The following global options are available:
- -debug level
- Sets bitfield flags which determine which debugging
information is printed. The default level of 1 shows errors only, 0
shows nothing, and -1 shows everything. See ghostess.h for details.
- -hostname hostname
- Sets hostname as the name ghostess uses for
itself, for JACK and ALSA clients and GUI window titles. If a JACK port
cannot be created with that name, the PID is appended.
- -projdir projdir
- Sets the project directory passed to both plugins and UIs
to projdir. The default is none.
- -uuid uuid
- Sets uuid as the UUID used for JACK session
management. There is probably no reason to use this outside of a managed
- Disables automatic connection of plugin outputs to JACK
- -f cfgfile
- Additional configuration will be read from cfgfile,
in the same format as command line options.
For specifying plugin instances, ghostess
uses a '[-
] [ options
format, which may be repeated for multiple instances. The plugin-specific
- Specifies the repitition count, or number of instances, of
the following plugin to create, where n is an integer between 1
(the default) and 32.
- -chan c
- Sets the initial MIDI channel for the following plugin
instance to c. Channels are numbered 0 to 15. If the repetition
count is more than one, instances are given sequential channels beginning
with c and wrapping from 15 to 0. The default is for all instances'
MIDI channels to be sequentially numbered, starting from 0.
- -conf k v
- Sets configure item key k and value v for the
following instance. May be repeated for multiple keys.
- -prog b p
- Sets the program change bank b and program p
for the following plugin (numbered from 0).
- -port p f
- Sets the value of port p to floating point number
f for the following plugin. May be repeated for different
- The name of the DSSI or LADSPA plugin library to load,
including the ´.so´ suffix. soname may be an absolute
path to the library file, or just the filename itself, in which case the
DSSI search path is searched (see ENVIRONMENT below).
- The label of the DSSI or LADSPA plugin to load from the
library soname. If this is omitted, the first plugin in the library
will search for plugin shared libraries in the directories
specified by the environment variable DSSI_PATH,
which is a
colon-separated list of directories. If DSSI_PATH
is not set, a default
search path of /usr/lib/dssi
, and (assuming
the environment variable HOME
is set,) $HOME/.dssi
is used. Note
that while ghostess
may be used to host LADSPA plugins, the environment
is not used to search for them.
is correctly set, the command:
$ ghostess hexter.so
will start a single instance of the plugin hexter, listening on MIDI channel 0,
with its output connected to the first JACK physical output port.
$ ghostess -noauto -chan 2 xsynth-dssi.so -chan 2 xsynth-dssi.so
will start two instances of Xsynth-DSSI, both listening on MIDI channel 2, but
will not automatically connect the plugin outputs to JACK output ports.
$ ghostess -debug -1 -hostname fuzzy -projdir /tmp/proj -2 -conf load
mypatches -prog 0 4 -port 7 0.45 effects.so:fuzz
will start two instances of the ´fuzz´ plugin within the
library, using /tmp/proj
as the project directory,
pass configure key ´load´ with value ´mypatches´
to both instances, set bank 0 and program 4, and set port 7 to 0.45. Assuming
it is some sort of effect, the plugins´ inputs and outputs will be
automatically connected to the first JACK physical inputs and outputs. Full
debugging information will be printed, and fuzzy
will be used as the
JACK client name.
was written by Sean Bolton, who mercilessly mangled code
originally written by Chris Cannam and Steve Harris. This manual page was
adapted by Sean Bolton from the jack-dssi-host manual page originally by Mark