All Projects → albedozero → fluidpatcher

albedozero / fluidpatcher

Licence: MIT License
A performance-oriented patch interface for FluidSynth

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to fluidpatcher

ANMP
multi-channel loopable video game music player for nerds and audiophiles
Stars: ✭ 16 (-60.98%)
Mutual labels:  midi, fluidsynth
nfluidsynth
libfluidsynth C# binding
Stars: ✭ 18 (-56.1%)
Mutual labels:  midi, fluidsynth
tree-sitter-yaml
YAML grammar for tree-sitter
Stars: ✭ 29 (-29.27%)
Mutual labels:  yaml
pollly
The simplest editor to translate apps & sites for YML files. Fast and Simple. Try now!
Stars: ✭ 32 (-21.95%)
Mutual labels:  yaml
gba-mus-ripper
(Not actively maintained) A fork of Bregalad's "GBA Mus Riper" program
Stars: ✭ 50 (+21.95%)
Mutual labels:  midi
MD MIDIFile
Standard MIDI Files (SMF) Processing Library
Stars: ✭ 63 (+53.66%)
Mutual labels:  midi
yorm
Automatic object-YAML mapping for Python.
Stars: ✭ 23 (-43.9%)
Mutual labels:  yaml
recurse
re<urse is a declarative language for generating musical patterns
Stars: ✭ 32 (-21.95%)
Mutual labels:  midi
config
Simple configuration management for PHP
Stars: ✭ 15 (-63.41%)
Mutual labels:  yaml
gulp-yaml
A Gulp plugin to convert YAML to JSON
Stars: ✭ 24 (-41.46%)
Mutual labels:  yaml
Simple-YAML
A Java API that provides an easy-to-use way to store data using the YAML format.
Stars: ✭ 68 (+65.85%)
Mutual labels:  yaml
StackMob-3
A plugin designed for bukkit servers, aiming to reduce the lag that both the server and players experience.
Stars: ✭ 23 (-43.9%)
Mutual labels:  yaml
HomeAssistant
My Home Assistant Configuration
Stars: ✭ 71 (+73.17%)
Mutual labels:  yaml
Linux-SonivoxEas
Sonivox EAS for Linux and Qt
Stars: ✭ 14 (-65.85%)
Mutual labels:  midi
smartbcr2k
Sits between your midi controller and your DAW to make your controller smarter
Stars: ✭ 21 (-48.78%)
Mutual labels:  midi
hitchstory
Type-safe, StrictYAML based BDD framework for python.
Stars: ✭ 24 (-41.46%)
Mutual labels:  yaml
dimooper
Digital Music Looper
Stars: ✭ 64 (+56.1%)
Mutual labels:  midi
zmidimap
Program for mapping midi signals to shell commands
Stars: ✭ 13 (-68.29%)
Mutual labels:  midi
home assistant config
HomeAssistant.io Configuration Files
Stars: ✭ 110 (+168.29%)
Mutual labels:  yaml
Azure-AKS-ApplicationGateway-WAF
No description or website provided.
Stars: ✭ 16 (-60.98%)
Mutual labels:  yaml

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].