Skip to main content

RiffPi

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.11

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.11
File Size Uploaded
riffpi-0.2.11.tar.gz 941.1 kB Details

Built distribution (wheel)

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

Total release size: 968.2 kB

Release files / riffpi-0.2.11.tar.gz

Download URL riffpi-0.2.11.tar.gz
Size 941.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cb81d2db00fd784f5ad0e1611733abbb88e5a088fc3d8c3a09e1c250784ce524
BLAKE2b-256 checksum
How to use checksums
e50f997efefc4e9ac829a04fe1783ede4d292003a8ca318737091fc8b47ae345
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 20, 2026.

Transparency log

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

Download URL riffpi-0.2.11-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd0b21ebc7d041ebf5295e43bc61d39a7b6c5092ee3467141b90d5fc3fcad2e5
BLAKE2b-256 checksum
How to use checksums
257ec8a353d4536e488b7f7a62cfd8fe906990ebed5e7baa79c381f09a8798cd
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 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.11 This release

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

0.2.4

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