Skip to content
This repository was archived by the owner on Jul 7, 2026. It is now read-only.

vaultbin/o-murphy-mod-rack-example

Repository files navigation

PiBoard

Linear pedalboard constructor for mod-host with PySide6 GUI.

Features

  • 🎸 Linear signal chain: Inputs → Slot 1 → Slot 2 → ... → Slot 6 → Outputs
  • 🔌 6 plugin slots with Guitarix LV2 effects
  • 🎛️ Audio input/output port selection (JACK)
  • 🎧 Stereo L/R support - multiple inputs and outputs with flexible routing
  • 🔄 Automatic JSON generation in MOD-UI compatible format
  • 📝 Real-time JSON preview
  • 💾 Save pedalboard to file
  • 🎯 Empty slots work as patch cords (signal passes through)

Installation

# Install dependencies
uv sync

# Run the GUI
uv run piboard

# Or directly with Python
uv run python -m piboard.pedalboard_gui

Usage

GUI Mode

  1. Select input and output JACK ports
  2. Enable Input R and Output R checkboxes for stereo (L/R channels)
  3. Choose plugins for each slot (or leave empty)
  4. JSON updates automatically
  5. Save to pedalboard.json

Programmatic Usage

from src.piboard.pedalboard_generator import PedalboardGenerator

gen = PedalboardGenerator()

# Mono mode
gen.set_input("system:capture_1")
gen.set_output("system:playback_1")

# Or stereo mode (L/R)
gen.set_inputs(["system:capture_1", "system:capture_2"])
gen.set_outputs(["system:playback_1", "system:playback_2"])

# Add effects
gen.set_slot(0, "GxOverdrive")
gen.set_slot(1, "GxReverb")

# Generate JSON
gen.save_to_file("my_pedalboard.json")

Available Plugins

  • Overdrive, Distortion, Fuzz
  • Echo/Delay, Reverb
  • Chorus, Flanger, Phaser
  • Compressor, Tremolo
  • Auto Wah
  • Boss DS-1 Style, Tube Screamer TS-9

Stereo Routing

PiBoard supports flexible stereo (L/R) routing:

  • Mono mode: Single input → effects chain → single output
  • Stereo mode: Multiple inputs (L+R) → effects chain (mono) → multiple outputs (L+R)

In stereo mode:

  • Both L and R inputs connect to the first effect's mono input
  • The effects chain processes in mono
  • The last effect's mono output connects to both L and R outputs

This allows you to use mono effects while maintaining stereo input/output connectivity.

Project Structure

src/piboard/
├── pedalboard_gui.py         - PySide6 GUI application
├── pedalboard_generator.py   - JSON generator for MOD-UI format
└── plugins_config.py          - Guitarix LV2 plugin configuration

Scripts:
├── example_usage.py           - Programmatic usage example
├── mod_host_integration.py    - mod-host TCP integration demo
└── test_stereo.py             - Stereo functionality tests

Documentation

About

Linear pedalboard constructor for mod-host with PySide6 GUI and stereo L/R support

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors