Skip to main content

RiffPi

docs lint-and-build PyPI License: CERN-OHL-W-2.0

RiffPi is the control daemon for Kleag's MFX, a DIY guitar multi-effect pedalboard built around a Raspberry Pi, a Pisound sound card, and Guitarix as the effects engine. It reads the pedalboard's foot switches, rotary encoders, keypad, joystick, and expression pedal, and turns them into MIDI sent to Guitarix.

Full documentation: https://kleag.github.io/riffpi/

The Kleag's MFX pedal

Features

  • 4 foot switches with LEDs toggle Guitarix effects, and stay in sync if Guitarix changes state on its own (e.g. loading a preset).
  • 4 rotary encoders send relative MIDI CC changes; the last one's button cycles preset banks A-D.
  • A 4x4 keypad selects presets directly and doubles as mouse left/right click.
  • A joystick moves the mouse pointer, for fine-tuning Guitarix's on-screen knobs, and its push acts as a middle click.
  • An expression pedal sends a smoothed, continuous MIDI CC.
  • Hardware design (KiCad) for the controller PCB, in kicad_board/.

Quick start

pip install riffpi
riffpi install-service   # writes, enables, and starts a systemd --user service

See Installation for the full Raspberry Pi setup (I2C, uinput permissions, headless/no-login boot, WiFi power management), and Usage for what each control does and the full MIDI CC mapping.

Hardware

Wiring, MCP23017/ADS1115 pin maps, a block diagram, and the schematic/PCB renders are in Architecture. Hardware design source (KiCad 9) is in kicad_board/.

Development

uv build                       # or: python -m build
uvx ruff check src/            # lint
uvx twine check dist/*         # validate package metadata
.venv/bin/mkdocs serve         # preview the docs site locally
uvx bumpver update --minor     # bump the version (patch/minor/major)

CI (.github/workflows/) lints and builds the package on every push/PR, deploys the docs site on changes to docs/, and publishes to PyPI on GitHub Release.

License

Copyright Gaël de Chalendar, 2025-2026.

This project describes Open Hardware and is licensed under the CERN-OHL-W v2. You may redistribute and modify it and make products using it under the terms of the CERN-OHL-W v2 — see LICENSE.md. It is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE.

Source location: https://github.com/kleag/riffpi. As per CERN-OHL-W v2 section 4.1, should you produce hardware based on these sources, you must keep the source location visible on the external case of the pedal or other product you make using this documentation.

Metadata

Release files for riffpi 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for riffpi 0.2.4
File Size Uploaded
riffpi-0.2.4.tar.gz 922.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for riffpi 0.2.4
File Interpreter ABI Platform
riffpi-0.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 946.5 kB

Release files / riffpi-0.2.4.tar.gz

Download URL riffpi-0.2.4.tar.gz
Size 922.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f80d4d4c6009fb93d391f09e2dc64a83b75e360464cba6283829e3246fa0baf0
BLAKE2b-256 checksum
How to use checksums
c6e99369e5c56d2c3659456e61e092b8eecbcbac2e55e62c09a38f23fa854de0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / riffpi-0.2.4-py3-none-any.whl

Download URL riffpi-0.2.4-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cbef27a86f5a46e58681c6c9a4d1b6e6ea0aeea2be24d9005e76772fc0a22756
BLAKE2b-256 checksum
How to use checksums
decf0d6fe9cbc09d4248597aac0059c4c5d6f4dc0ecd2d60a9472a2ee3c4301a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

This release

0.2.4 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page