Skip to main content

FluidSynth patch manager and performance toolkit

Project description

FluidPatcher

FluidPatcher is a lightweight Python toolkit for building playable FluidSynth-based instruments driven by MIDI events. It provides:

  • A simple user-facing API for building applications/front-ends
  • Rich YAML-based bank/patch file format for defining synth setups
  • Support for multiple soundfonts, layered MIDI routing, and rules
  • Built-in players (arpeggiators, sequencers, MIDI files, loopers)
  • Optional LADSPA audio effects

FluidPatcher is designed for small systems such as Raspberry Pi but runs anywhere FluidSynth does.

Installation

System Requirements

Install FluidPatcher

pip install fluidpatcher

Or install from source:

git clone https://github.com/GeekFunkLabs/fluidpatcher.git
cd fluidpatcher
pip install -e .

Configuration

FluidPatcher looks for config at FLUIDPATCHER_CONFIG if defined, or ~/.config/fluidpatcher/fluidpatcherconf.yaml. A default config is created if not found. The config file can be used to store/specify:

  • Paths for soundfonts, bank files, MIDI files, LADSPA effects
  • FluidSynth settings e.g. audio driver/device if other than default
  • State information for specific programs

API Overview/Quick Start

import fluidpatcher

fp = fluidpatcher.FluidPatcher()
fp.load_bank("mybank.yaml")
fp.apply_patch("Piano")

Play notes on an attached MIDI controller to hear patches. By default, FluidSynth will automatically connect to MIDI devices.

Sample programs are in examples/, and can be run with

python -m fluidpatcher.examples.<example_name>

Banks & Patches

Users access all of FluidPatcher's features primarily by writing bank files. Bank files are a declarative, YAML-based format for describing synth patches. The underlying engine parses bank files and pre-loads required soundfonts so that different patches can be applied quickly in live performance.

View the Tutorials section in the docs and/or example banks (data/banks/tutorial/) for guided learning.

Status & Contributions

FluidPatcher is under active development. The goal is to keep the API minimalist and general, with most features/functionality implemented in bank files or external programs. Contributions, bug reports, and example banks are welcome.

Please open issues or pull requests on GitHub.

License

MIT. See LICENSE for details.

FluidPatcher uses the FluidSynth library (LGPL-2.1) via dynamic linking.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fluidpatcher-1.0.4.tar.gz (315.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fluidpatcher-1.0.4-py3-none-any.whl (315.7 kB view details)

Uploaded Python 3

File details

Details for the file fluidpatcher-1.0.4.tar.gz.

File metadata

  • Download URL: fluidpatcher-1.0.4.tar.gz
  • Upload date:
  • Size: 315.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fluidpatcher-1.0.4.tar.gz
Algorithm Hash digest
SHA256 4bfae01b32406b6947ce18cec0e273df07753bcd3dfd9f1d0e50f3e57a31d0e9
MD5 ab278b7e07ad4b77095fc364310cf5d0
BLAKE2b-256 199c77e2b935d45809ebbc73a7a425bc0d41ab7af6c0a9646acc09080692e385

See more details on using hashes here.

Provenance

The following attestation bundles were made for fluidpatcher-1.0.4.tar.gz:

Publisher: python-publish.yml on GeekFunkLabs/fluidpatcher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fluidpatcher-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: fluidpatcher-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 315.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fluidpatcher-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 121b18f45d2860c9d3e5cf8dacdd7cf6465c00891da6dfafd1afcd76cdd69537
MD5 6b65fc821c7f08254a842b3f0192f9d9
BLAKE2b-256 1b606f9e5af9beeabffdbfbda7686aedf4812b1a2127341ff371b2b85ae9c8b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for fluidpatcher-1.0.4-py3-none-any.whl:

Publisher: python-publish.yml on GeekFunkLabs/fluidpatcher

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page