Faeb35 / fluidpatcher

A performance-oriented patch interface for FluidSynth

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FluidPatcher

A Python interface for the FluidSynth software synthesizer that lets you create performance patches you can easily switch between while playing. Patches are described in human-readable and -editable bank files, and can be used to create complex combinations of instruments, effects, rules for routing messages from the controls on your MIDI device, play MIDI files, and create sequencers and arpeggiators. Fluidsynth is an open source software synthesizer that uses soundfonts - a freely-available and well-documented sound format.

FluidPatcher should work on any platform where FluidSynth and Python can be installed. The patcher/ directory contains all the code to interpret bank files and control FluidSynth, and can be used to create your own interfaces/implementations so your bank files can be portable and useful in different contexts (e.g. performing, editing, recording). Several implementations are included:

  • squishbox.py - runs the SquishBox, a Raspberry Pi synth with a 16x2 character LCD and couple of buttons and/or a rotary encoder in a guitar pedal, designed by Geek Funk Labs
  • headlesspi.py - runs on a Pi with no screen, keyboard, or extras and allows you to change patches and banks using pads/knobs on your MIDI keyboard/controller
  • fluidpatcher.pyw - a cross-platform wxpython-based GUI that allows live editing of bank files in addition to playing patches and browsing/playing soundfont presets

Check the wiki for more information about using the scripts, bank/config file formats, the API, etc.

Installation

Requires Python 3. Installation of FluidSynth and needed Python modules varies a bit by system.

Raspberry Pi

The install script in the assets/ directory will install the software, configure your system, and provides the option to install some useful extras. You can run the script from a command line by entering

curl -L git.io/squishbox | bash

Windows

Run the setup program in the latest release of FluidPatcher.

Linux (Debian/Ubuntu)*

sudo apt install git fluidsynth fluid-soundfont-gm python3-pip python3-wxgtk4.0
sudo pip3 install oyaml
git clone https://github.com/albedozero/fluidpatcher.git
ln -s /usr/share/sounds/sf2/FluidR3_GM.sf2 fluidpatcher/SquishBox/sf2/

MacOS*

brew install git fluidsynth fluid-soundfont-gm python3-pip
sudo pip3 install oyaml wxpython
git clone https://github.com/albedozero/fluidpatcher.git
ln -s /usr/share/sounds/sf2/FluidR3_GM.sf2 fluidpatcher/SquishBox/sf2/

* The package repositories on these systems may not provide the latest version of FluidSynth. If you want newer features, it can be compiled from source.

Usage

Bank files are stored in the SquishBox/banks directory. The example bank file includes comments to help explain the format and highlight some of the capabilities of patches. Soundfonts are stored in SquishBox/sf2. A few sample fonts are provided, and many more can be found on the internet or created/edited/tweaked with software such as Polyphone. Details on setting up/using the included scripts can be found in programs.md.

About

A performance-oriented patch interface for FluidSynth

License:MIT License


Languages

Language:Python 87.6%Language:Shell 12.4%