Menu

Home

Luis Garrido

HOME DOWNLOADS SOURCE CODE

Description

ls16 is a convenience DSSI plugin offering a limited front-end to the LinuxSampler library. It features a GUI with 16 sampler strips that can be loaded with instruments from GIG files. For each strip the user can control the following parameters:

  • GIG instrument loaded.
  • Midi channel.
  • Mute.
  • Solo.
  • Volume.
  • Pan.

Usefulness

ls16 can prove a little useful tool for certain simple situations where its flaws, which will be described below, are of little or no importance. It is for those situations that I have decided to tidy it up and release it, in the hope that someone else will find it useful too.

ls16 has been tested more or less successfully with the following hosts:

  • jack-dssi-host.
  • qtractor: ls16 works like a charm here as output plugin of a MIDI bus. You can then route MIDI tracks to its channels. qtractor will store ls16's settings in its project file, so you don't have to reconfigure it. For all these reasons qtractor becomes ls16's Host Of Choice at the moment of this writing.
  • muse: you can create a ls16 instance as a MIDI device and route MIDI tracks to it. However DSSI support is still a bit new in muse, and one of the features it has been missing is storing the plugin parameters in the project, but I think this has been added to the development version already. Update (100803): Robert Jonsson of muse confirms that the development version saves and restores ls16's configuration. Looking forward to their next release.
  • rosegarden: RG's interface seems to enforce strictly the MIDI omni policy for DSSI plugins, at least I haven't found the way to specify that MIDI messages from a track should be tagged with a certain MIDI channel, so only strips connected to midi channels '1' or 'All' will be usable (all in perfect unison).

Known limitations

There won't be a lot of development for ls16 in its current form, because its design is inherently flawed.

See, ls16 is a bit unorthodox in that it performs midi routing internally (i.e., doesn't perform in omni, which is what the DSSI spec hints at). I don't think it says it explicitly anywhere in the specification, but the DSSI API is not designed for plugins where midi messages are routed internally according to their midi channel. I.e., DSSI plugin instances must be omni, and the host will take care of the routing. If one wished to overcome this limitation, the DSSI API should be extended so the get_midi_controller_for_port and select_program calls added some support for it.

The reason I designed ls16 like this was to experiment integrating the control of 16 sampler channels in a single GUI, so it was born with the following provisions:

  • Its ports don't support DSSI-style MIDI controller-to-port mapping. Host-specific controller mapping is, of course, always possible if the host provides it.
  • It doesn't support program change messages.

Other than that, it is a pretty convenient way of throwing a few sampled instruments into a host-managed project.

GUI customization

ls16's GUI can be customized using Qt style sheets. The distribution package incorporates a few examples, and there is some documentation about customization here.

Future developments

Explore ways of working around ls16 limitations. Transfer the knowledge acquired during its development to FLAM.


Related

Wiki: Home
Wiki: release-0.1.0-doc-stylesheet
Wiki: release-0.1.0-doc-troubleshooting
Wiki: release-0.1.0-doc-usage
Wiki: release-0.1.0-doc
Wiki: release-0.1.0

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.