NAME
composite_sampler - audio sampler/synth plugin (LV2)
DESCRIPTION
The Composite sampler is an audio plugin (LV2) that provides a simple
sampling engine. It is identified by the URI
"http://gabe.is-a-geek.org/composite/plugins/sampler/1"
PORTS
The sampler includes the following ports:
+-------+-----------+-------------+--------+---------------+
|Name | LV2 Port | Type | Flow | Description |
+-------+-----------+-------------+--------+---------------+
|Left | out_left | AudioPort | Output | Left stereo |
| | | | | channel |
| | | | | output |
+-------+-----------+-------------+--------+---------------+
|Right | out_right | AudioPort | Output | Right stereo |
| | | | | channel |
| | | | | output |
+-------+-----------+-------------+--------+---------------+
|MIDI | midi | EventPort | Input | Main MIDI |
| | | | | Input |
+-------+-----------+-------------+--------+---------------+
|Volume | volume | ControlPort | Input | Master volume |
| | | | | [0.0-1.0] |
+-------+-----------+-------------+--------+---------------+
CONTROLLING THE SAMPLER
The primary way to control the sampler is over MIDI. See
composite_midi(7) for complete documentation on the MIDI
implementation.
DRUMKITS
The drumkits for Composite are the same as for Hydrogen. To reuse your
Hydrogen drumkits, copy or symlink them to
$HOME/.composite/data/drumkits/. You can create and edit drumkits with
composite-gui (or Hydrogen).
PRESETS
The sampler responds to MIDI Program Change events. Based on the event
that it receives, it will load up another file (e.g. a drumkit). This
is how you can select the drumkit that you wish to use.
The presets are defined in a file
$HOME/.composite/data/presets/default.xml. For the sampler plugin, you
can override this by using default-presets.xml, but at the current time
there is no need to. When you first load the sampler, it will check for
this file. If it doesn't exist, it will create one based on all your
user drumkits.
The presets file is a simple XML file that allows you to define MIDI
banks, and assign different resources for each program change. An
example file is as follows:
<?xml version="1.0"?>
<T:tritium xmlns:T="http://gabe.is-a-geek.org/tritium/xml/1/">
<T:presets>
<T:bank coarse="0" fine="0">
<T:program>
<T:midi_number>0</T:midi_number>
<T:resource>tritium:drumkits/GMkit</T:resource>
</T:program>
<T:program>
<T:midi_number>1</T:midi_number>
<T:resource>tritium:drumkits/TR808EmulationKit</T:resource>
</T:program>
</T:bank>
</T:presets>
</T:tritium>
You can define several <bank> elements for the MIDI banks. The
attributes coarse and fine correspond to the MIDI CC's 0 and 32. Each
<program> section is a preset. The <midi_number> corresponds to the
number in the PC message.
The <resource> element holds a URI/URL to the thing you want loaded.
This will typically be a drum kit, but can be any kind of file that
Composite supports (like a .h2song, .h2pattern, etc.). The sampler will
do the Right Thing. (For example, when loading an .h2song, the drumkit
stored in the song will be loaded.) The URL's supported are file://,
tritium:, and file names.
The tritium: scheme is designed to create portable URL's to things like
drum kits. For example, the URL "tritium:drumkits/GMkit" will load the
drumkit "GMkit", whether it's installed in the user directory
($HOME/.composite/data/drumkits/GMkit/drumkit.xml) or in the system
directory (/usr/share/composite/data/drumkits/GMkit/drumkit.xml).
Note
The XML namespace declaration
"http://gabe.is-a-geek.org/tritium/xml/1/" is not optional.
LV2 EXTENSIONS
This plugin uses the following extensions, and they must be supported
by any program (host) that wishes to use this plugin. If the host does
not support them, the plugin will fail to load.
o Events <http://lv2plug.in/ns/ext/event#>
o Midi Events <http://lv2plug.in/ns/ext/midi#MidiEvent>
FILES
/usr/share/composite/data/ -- This is the main folder where system data
(drumkits, presets, etc.) are stored for Composite and Composite
Sampler.
$HOME/.composite/data/ -- This is the main folder where user data
(drumkits, presets, etc.) are stored for Composite and Composite
Sampler.
$HOME/.composite/data/drumkits/ -- This is the main folder where user
drumkits are stored. Each drumkit has its own folder, and each folder
has a file 'drumkit.xml' that describes the drumkit.
$HOME/.composite/data/presets/default.xml -- This is the default
presets file for Composite. If it does not exist, it will be created
automatically using all of your installed drumkits.
$HOME/.composite/data/presets/default.xml -- This is the default
presets file for Composite. If it does not exist, it will be created
automatically using all of your installed drumkits.
$HOME/.composite/data/presets/default-plugin.xml -- This is the default
presets file for the Composite Sampler. If it does not exist, then
$HOME/.composite/data/presets/default.xml is used.
KNOWN BUGS
Loading a .h2song through the presets is not happening in a real-time
safe manner. Loading drumkits works fine.
SEE ALSO
composite_midi(7), lv2_jack_host(1)
AUTHOR
Gabriel M. Beddingfield
<gabriel@teuton.org>