Tree [45c0d0] /
History



File Date Author Commit
src 2005-01-25 Sean Bolton Sean Bolton [45c0d0] documentation tweaks
COPYING 2004-07-10 Sean Bolton Sean Bolton [194050] Added FluidSynth-DSSI
ChangeLog 2004-11-09 Sean Bolton Sean Bolton [67ca70] FluidSynth-DSSI: implemented global polyphony s...
Makefile 2005-01-23 Chris Cannam Chris Cannam [cef816]
README 2004-11-09 Sean Bolton Sean Bolton [67ca70] FluidSynth-DSSI: implemented global polyphony s...
TODO 2004-11-09 Sean Bolton Sean Bolton [67ca70] FluidSynth-DSSI: implemented global polyphony s...

Read Me

                              FluidSynth-DSSI
                              ===============
                    A software synthesizer plugin  for the
                        Disposable Soft Synth Interface

Introduction
============
The files in this directory are an implementation of the FluidSynth
soundfont-playing software synthesizer as a DSSI plugin. It makes
use of DSSI's run_multiple_synths() interface to allow sharing of
resources between multiple plugin instances -- soundfont data is
shared between instances, and FluidSynth's usual voice allocation
methods are applied across multiple instances as if each were a
FluidSynth channel.

FluidSynth-DSSI uses the FluidSynth library for all soundfont
handling and synthesis functions.  However, because of the
architecture differences between DSSI and FluidSynth, this could not
be done using only the canonical FluidSynth API functions.  As a
result, the FluidSynth source code is needed during
FluidSynth-DSSI's compilation to provide access to the non-API
library functions.

FluidSynth-DSSI is written by Sean Bolton, and is copyright (c)2004
under the GNU General Public License, version 2 or later.  See the
enclosed file COPYING for details.

FluidSynth itself is copyright (c)2003 Peter Hanappe and others,
also under the GNU General Public License.

Requirements
============
You need to have the following installed:

   - liblo 0.12 or later
   - fluidsynth 1.0.3 or later (specifically, the fluidsynth headers
       and libfluidsynth)
   - LADSPA
   - a DSSI-capable host, such as Rosegarden or the jack-dssi-host
       included with this package.

You must also have the fluidsynth source code unpacked somewhere
accessible (make sure it is the same version as what you have
installed.)

Installation
============
Edit the Makefile, then do 'make' and 'make install'.  The following
files are installed:

    $(PREFIX)/lib/dssi/fluidsynth-dssi.so
    $(PREFIX)/lib/dssi/fluidsynth-dssi/FluidSynth-DSSI_gtk

Operation
=========
Start your DSSI host and create an instance of the FluidSynth-DSSI
plugin.  See the 'Example' section below for how to do this with
jack-dssi-host.

Initially, no soundfont will be loaded.  Use the 'Select Soundfont'
button to select a soundfont. Each instance may use only one
soundfont at a time, but when multiple instances use the same
soundfont, it is only loaded once.  FluidSynth-DSSI will use the
the DSSI project directory and the SF2_PATH enviroment variable,
if set, to search for soundfonts.

The available soundfont presets will be displayed in the 'Preset'
window.  Clicking on one will select that preset.

Under 'Global Settings', the 'gain (dB)' setting affects the output
level of all running FluidSynth-DSSI instances.  The 'polyphony'
setting sets the maximum number of voices that will be played by all
instances.

Test notes may be generated using the 'Send Test Note' button.  You
may select the pitch and velocity of the note using the 'Test Note'
sliders.

When you create more than one instance of the plugin, you should be
able to tell their GUIs apart by unique window titles of each
(provided your host correctly supplies each with the proper
identifier.)

Example
=======
1. Start JACK.

2. Run jack-dssi-host, starting 16 FluidSynth-DSSI instances, one
    for each MIDI channel:

    $ DSSI_PATH=/usr/local/lib/dssi sudo jack-dssi-host -16 fluidsynth-dssi.so

3. Load a soundfont for each instance.  You may do this using the
    GUI, or via the command line:

    $ for ee in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
    > do dssi_osc_send -C osc.udp://localhost:19383/dssi/fluidsynth-dssi/FluidSynth-DSSI/chan$ee \
    >      load /t/soundfonts/Reality_GMGS.sf2
    > done

4. Make some noise:

    $ pmidi -p128:0 /t/smf/simpsons_theme.mid