FluidPatcher is a Python toolkit for building apps around FluidSynth, a versatile sample-based synthesizer that uses soundfonts and other sample-based file formats.

Patches

FluidPatcher is based around the idea of patches, which are descriptions of what the synth should do and how it should respond to controls, such as:

In an application, patches behave like the different sounds/presets on a synthesizer. Selecting sounds is as simple as:

import fluidpatcher

fp = fluidpatcher.FluidPatcher()
fp.load_bank("set2patches.yaml")
fp.apply_patch("Bass/Synth Split 3")

Advanced Features

FluidPatcher adds classes that leverage FluidSynth's MIDI router, sequencer, built-in effects, and LADSPA plugin hosting capability to create performance features such as:

Users can define patches with all of these features in bank files, written in a human-readable YAML format, without having to code. These features can be created/modified programmatically as well, allowing the design of synth apps ranging from simple sample players to things like synths with dozens of keyboard layers/splits, multi-channel non-destructive loopers, or dynamic grooveboxes that respond to note patterns.

Purpose

FluidPatcher grew out of a simple python wrapper around FluidSynth, designed to serve as the synth engine for the SquishBox. As the SquishBox grew into more of a general audio hardware platform, FluidPatcher became more separate and added features, to the point that it is now an independent, cross-platform synthesizer package that works anywhere FluidSynth does.