ghostess(1)
β¨ ghostess(1) β the DSSI plugin host that ate π
okay bestie, sit down, we're talking about ghostess β a graphical DSSI plugin host, and it's lowkey iconic.
πΈ NAME πΈ
ghostess β graphical DSSI plugin host π
π¦ SYNOPSIS π¦
ghostess [-debug level] [-hostname hostname] [-projdir projdir] [-uuid uuid] [-noauto] [-f cfgfile] [-n] [-chan c] [-conf k v] [-prog b p] [-port p f] soname[:label] [...]
π DESCRIPTION π
so ghostess is a DSSI host. it sits there, listens for MIDI events, hands them off to DSSI synth plugins, and pumps the resulting audio out through JACK. that's the whole gig. slay.
but wait, there's more (there's always more). it also supports:
- DSSI plugins that have audio inputs, aka effects ποΈ
- LADSPA plugins
- DSSI-style user interfaces used with LADSPA plugins
and it can host up to 32 plugin instances at one time. thirty-two. that's a lot of instances, bestie.
Depending on the compile-time configuration, ghostess will receive MIDI events from ALSA, JACK MIDI, or CoreMIDI. Unless you say otherwise with the -chan option, each plugin instance gets assigned a MIDI channel sequentially β and it wraps from 15 (zero-based) back to 0 when it runs out. Unless -noauto is specified, plugin inputs and outputs get connected sequentially to the available JACK physical input and output ports respectively, wrapping back to the first port whenever the available ports are exhausted. it's giving round-robin, it's giving considerate. β¨
At startup, ghostess shows you a simple GTK+ user interface. Each plugin instance gets its own frame, labeled with the plugin name, and inside that frame there's a MIDI activity indicator and a Β΄UIΒ΄ button. Left-clicking the Β΄UIΒ΄ button starts or hides the plugin's user interface (UI). Right-clicking the Β΄UIΒ΄ button lets you start, hide, show, or terminate the plugin's UI. fancy little menu, we love her.
The Β΄Save Configuration...Β΄ option in ghostess's Β΄FileΒ΄ menu lets you save the current configuration of all the plugins to a file. Basically, the file is just a Bourne shell script that can be used to recreate the configuration. it's a whole vibe β your config is a script. periodt.
ghostess also comes with a minimal universal DSSI GUI called ghostess_universal_gui, and you can use it with any DSSI or LADSPA plugin. It does not read RDF files and it does not instantiate the plugin, so it's not as full-featured as a universal GUI could be β but it does let you:
- adjust DSSI/LADSPA ports ποΈ
- select bank and program (for plugins with
select_program()) - send 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, ghostess will launch it. problem solved, no notes. π
π OPTIONS π
The following global options are available:
-debug levelβ Sets bitfield flags which determine which debugging information is printed. The default level of1shows errors only,0shows nothing, and-1shows everything. Seeghostess.hfor details.-hostname hostnameβ Setshostnameas the nameghostessuses 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 toprojdir. The default is none.-uuid uuidβ Setsuuidas the UUID used for JACK session management. There is probably no reason to use this outside of a managed session.-noautoβ Disables automatic connection of plugin outputs to JACK physical outputs.-f cfgfileβ Additional configuration will be read fromcfgfile, in the same format as command line options.
For specifying plugin instances, ghostess uses a '[-repetition-count] [options] soname[:label]' format, which may be repeated for multiple instances. The plugin-specific options are:
-nβ Specifies the repetition count, or number of instances, of the following plugin to create, where n is an integer between1(the default) and32.-chan cβ Sets the initial MIDI channel for the following plugin instance toc. Channels are numbered0to15. If the repetition count is more than one, instances are given sequential channels beginning withcand wrapping from15to0. The default is for all instances' MIDI channels to be sequentially numbered, starting from0.-conf k vβ Sets configure item keykand valuevfor the following instance. May be repeated for multiple keys.-prog b pβ Sets the program change bankband programpfor the following plugin (numbered from0).-port p fβ Sets the value of portpto floating point numberffor the following plugin. May be repeated for different ports.sonameβ The name of the DSSI or LADSPA plugin library to load, including theΒ΄.soΒ΄suffix.sonamemay 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).labelβ The label of the DSSI or LADSPA plugin to load from the librarysoname. If this is omitted, the first plugin in the library is used.
π ENVIRONMENT π
ghostess 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, /usr/local/lib/dssi, and (assuming the environment variable HOME is set,) $HOME/.dssi is used.
β οΈ Note that whileghostessmay be used to host LADSPA plugins, the environment variableLADSPA_PATHis not used to search for them. ok that's just how it is bestie, don't @ me π«Ά
π EXAMPLES π
Assuming DSSI_PATH 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. one plugin, one channel, one port. simple. stunning. β¨
The command:
$ 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.
The command:
$ 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 effects.so 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. fuzzy as a client name? main character energy, no cap. π
π AUTHOR π
ghostess 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 Hymers.
and that's the whole page, bestie β this one came out on September 5th, 2010 as part of the ghostess General Commands Manual, so go forth and host some plugins. iykyk π¦β¨π
π¦ where this page comes from
- debian bookworm: ghostess 20120105-1+b2
- debian trixie: ghostess 20210101-2 Β· GPL-2.0-or-later
- ubuntu jammy: ghostess 20120105-1build2
- ubuntu noble: ghostess 20210101-1build3 Β· GPL-2.0-or-later
- ubuntu questing: ghostess 20210101-2
- ubuntu resolute: ghostess 20210101-3 Β· GPL-2.0-or-later
- ubuntu stonking: ghostess 20210101-3 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms