Git Product home page Git Product logo

fluidpatcher's Introduction

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.

fluidpatcher's People

Contributors

albedozero avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.