GeekFunkLabs / fluidpatcher

A performance-oriented patch interface for FluidSynth
MIT License
124 stars 15 forks source link
cross-platform fluidsynth linux midi python3 raspberry-pi soundfont-synthesizers yaml

FluidPatcher

This package provides a python interface for controlling the versatile, cross-platform, and free FluidSynth software synthesizer. Rather than simply wrapping all the C functions in the FluidSynth API, it provides a higher-level interface for loading and switching between patches - groups of settings including:

Patches are written in YAML format in human-readable and -editable bank files. Bank files can easily be copied and used in FluidPatcher programs written for different platforms and purposes. Two programs are included in the scripts/ directory of this repository - a command-line synth and a graphical synth/editor. FluidPatcher is the default synth engine used by the SquishBox Raspberry Pi-based sound module.

See the official documentation for full details.

Requirements

Installation

Copy the fluidpatcher/ folder from the github repository to to the same directory as any python scripts that use it. For example, to use the included scripts, use the folder structure below:

📁 scripts/
├── 📄 fluidpatcher_gui.pyw
├── 📄 fluidpatcher_cli.py
├── 📁 config/
│   ├── 📁 banks/
│   ├── 📁 midi/
│   ├── 📁 sf2/
│   └── 📄 fluidpatcherconf.yaml
└── 📁 fluidpatcher/

In future, a setup.py file or PyPI package may be available.

Usage

To understand how to use the included scripts and adjust config files for your system, read Basic Usage.

To learn how to add sounds and create your own patches and bank files, see Soundfonts, Creating Banks, and Plugins.

To write your own programs using FluidPatcher, study the API Reference and the code of the included scripts.

Support

Ask questions, suggest improvements, and/or share your successes in Discussions. If you think you've found a bug, report an Issue.