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
- Python 3.10+
- PyYAML
- FluidSynth 2.2.0+
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fluidpatcher-1.0.5.tar.gz.
File metadata
- Download URL: fluidpatcher-1.0.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d126f3b8e9be05b90143b4c7759f301c2ce7248e72a6e5c8c2438b8681aa5064
|
|
| MD5 |
3cbc51f3a14328df07ba94188cf1bc69
|
|
| BLAKE2b-256 |
953f34488da898d024bf9af4cd65b9cf8e4f8b3c53cd2db8f35407c90ec2a74e
|
Provenance
The following attestation bundles were made for fluidpatcher-1.0.5.tar.gz:
Publisher:
python-publish.yml on GeekFunkLabs/fluidpatcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fluidpatcher-1.0.5.tar.gz -
Subject digest:
d126f3b8e9be05b90143b4c7759f301c2ce7248e72a6e5c8c2438b8681aa5064 - Sigstore transparency entry: 1457093540
- Sigstore integration time:
-
Permalink:
GeekFunkLabs/fluidpatcher@9bbba38fa78624debeb3a93df34530d6950eab37 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/GeekFunkLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@9bbba38fa78624debeb3a93df34530d6950eab37 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fluidpatcher-1.0.5-py3-none-any.whl.
File metadata
- Download URL: fluidpatcher-1.0.5-py3-none-any.whl
- Upload date:
- Size: 315.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b49d24e34807bbd352f1c896391582affcad3fb00c87ec276bcde3d2e591c6c
|
|
| MD5 |
a7a03456687f95505ed8764d2f176a0e
|
|
| BLAKE2b-256 |
626716901685328bf9ed00d32d3e3313929c5427be8f3f2fb1eebdd4d41fdbc7
|
Provenance
The following attestation bundles were made for fluidpatcher-1.0.5-py3-none-any.whl:
Publisher:
python-publish.yml on GeekFunkLabs/fluidpatcher
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fluidpatcher-1.0.5-py3-none-any.whl -
Subject digest:
7b49d24e34807bbd352f1c896391582affcad3fb00c87ec276bcde3d2e591c6c - Sigstore transparency entry: 1457093626
- Sigstore integration time:
-
Permalink:
GeekFunkLabs/fluidpatcher@9bbba38fa78624debeb3a93df34530d6950eab37 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/GeekFunkLabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@9bbba38fa78624debeb3a93df34530d6950eab37 -
Trigger Event:
release
-
Statement type: