{"id":26506479,"url":"https://github.com/rohanprichard/pedalboard","last_synced_at":"2026-05-14T23:39:12.599Z","repository":{"id":275095606,"uuid":"925067587","full_name":"rohanprichard/pedalboard","owner":"rohanprichard","description":"This project is a 29-note MIDI pedalboard for an organ, built using two Arduino Leonardo boards. Each board is recognized as a native USB-MIDI device, allowing it to send MIDI messages directly to a computer without additional software.","archived":false,"fork":false,"pushed_at":"2025-02-04T19:17:40.000Z","size":243,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-20T22:47:35.938Z","etag":null,"topics":["midi","midi-controller","music","organ","pedalboard"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rohanprichard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T06:50:53.000Z","updated_at":"2025-02-04T19:17:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"3350c67f-3d9a-45a6-b6ae-30b8608368a6","html_url":"https://github.com/rohanprichard/pedalboard","commit_stats":null,"previous_names":["rohanprichard/pedalboard"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rohanprichard/pedalboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohanprichard%2Fpedalboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohanprichard%2Fpedalboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohanprichard%2Fpedalboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohanprichard%2Fpedalboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rohanprichard","download_url":"https://codeload.github.com/rohanprichard/pedalboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohanprichard%2Fpedalboard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268171215,"owners_count":24207413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["midi","midi-controller","music","organ","pedalboard"],"created_at":"2025-03-20T22:36:19.329Z","updated_at":"2026-05-14T23:39:12.568Z","avatar_url":"https://github.com/rohanprichard.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MIDI Pedalboard Project 🎹\n\n## Overview 📖\nThis project is a **29-note MIDI pedalboard** for an organ, built using two **Arduino Leonardo** boards. Each board is recognized as a **native USB-MIDI device**, allowing it to send MIDI messages directly to a computer without additional software. The pedals are made from 3D-printed components and use momentary push buttons.\n\nIt is designed to be used with any MIDI software that supports USB-MIDI. However, the main usecase is to be used with Hauptwerk.\n\n\u003ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/D_P4T568hAM?si=8888888888888888\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen\u003e\u003c/iframe\u003e\n\n## Features 🌟\n- **29-note range** (C0 to E2)\n- **Plug-and-play USB MIDI** \n- **3D-printed pedals** with momentary push buttons set\n\n## Parts List\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eComponent\u003c/th\u003e\n    \u003cth\u003eQuantity\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eArduino Leonardo\u003c/td\u003e\n    \u003ctd\u003e2\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eMomentary push buttons\u003c/td\u003e\n    \u003ctd\u003e29\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eJumper wires\u003c/td\u003e\n    \u003ctd\u003e50+\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eBreadboard (optional)\u003c/td\u003e\n    \u003ctd\u003e2\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eUSB cables (Micro/Mini)\u003c/td\u003e\n    \u003ctd\u003e2\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Wiring Guide 🔌\n### **Arduino #1 (First 14 notes: C0–F1)**\n- **Pins Used**: 2–13, A0  \n- **Wiring**:\n  - One side of each button goes to an **Arduino pin**.\n  - The other side connects to **GND**.\n\n### **Arduino #2 (Next 11 notes: F#1–E2)**\n- **Pins Used**: 2–12  \n- **Wiring**:\n  - One side of each button goes to an **Arduino pin** with its pull-up resistor enabled.\n  - The other side connects to **GND**.\n\n## Diagram 📊\nCircuit connection Diagram: ![Pedalboard Diagram](./assets/Pedalboard.png)\n\u003ca href=\"./assets/Pedalboard-Schematic.pdf\"\u003ePedalboard-Schematic.pdf\u003c/a\u003e\n## Setup \u0026 Usage 🎹 💻 🎧 \n1. **Upload the sketches** to the respective **Arduino Leonardo** boards using the Arduino IDE.\n2. **Connect both Arduinos** to the computer via USB.\n3. The devices will be detected as **MIDI controllers**.\n4. Open any **MIDI-compatible software** (Hauptwerk, GrandOrgue, DAW, etc.) and assign the MIDI inputs.\n5. **Test the keys** by pressing the pedals and ensuring the correct MIDI notes are sent.\n\n## Troubleshooting 🤔\n- **Some keys are not responding?**\n  - Check the wiring (ensure one side of the button is connected to the correct pin and the other to **GND**).\n  - Verify that the **Arduino pins are set to INPUT_PULLUP**.\n- **Arduino not detected as MIDI device?**\n  - Make sure you're using an **Arduino Leonardo** (or another board with native USB-MIDI support).\n  - Try a different USB cable/port.\n- **Buttons triggering multiple notes?**\n  - Ensure there are no accidental short circuits between button connections.\n  - Make sure that all the pins in the arduino are connected, or there may be weird glitches like this.\n\n## Future Improvements 🔮\n- Add a **multiplexer** to use a single Arduino for all notes.\n- Implement **velocity sensitivity** using force-sensitive resistors (FSRs) instead of basic push buttons.\n- Add potentiometers to control the velocity of the notes.\n\n---\n\n## Open Source Contribution 🤝\nThis project is **open-source** under the **MIT License**, meaning you are free to use, modify, and distribute it with proper attribution. If you improve or extend the project, consider contributing back!\n\n### How to Contribute \n1. **Fork the repository** on GitHub.\n2. **Clone your fork** and make modifications.\n3. **Submit a pull request (PR)** with a detailed description of your changes.\n4. Your PR will be reviewed, and if accepted, it will be merged into the main branch.\n\n### Ideas for Contributions 💡\n- **Hardware Enhancements**:\n  - Improve the pedal design.\n  - Explore different button mechanisms (e.g., optical switches).\n- **Software Features**:\n  - Implement **velocity sensitivity**.\n  - Add support for **MIDI CC messages** for pedal dynamics.\n- **Code Optimization**:\n  - Refactor the MIDI message handling.\n  - Improve latency and responsiveness.\n- **Expand Compatibility**:\n  - Support additional MIDI mappings.\n  - Integrate with alternative microcontrollers.\n---\n This project is open-source and community-driven. Let's build something amazing together! 🚀\n\n## License 📜\nThis project is open-source under the MIT License. See the LICENSE file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohanprichard%2Fpedalboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohanprichard%2Fpedalboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohanprichard%2Fpedalboard/lists"}