Open-source effects pedal by Lehel Török

Open-source effects pedal by Lehel Török

Bela gets transformed into a powerful and programmable pedal designed for guitarists

In this post we look at the latest project from Lehel Török, currently a Sound Design student at the Institute for Electronic Music and Acoustics in Graz. They created an slick looking and powerful programmable open-platform effects pedal based on our Bela Mini.

The objective of this project was to create a customizable guitar effects pedal using Bela’s embedded computing framework. The pedal allows guitarists to design and run their own effects on dedicated audio hardware.

Custom Extension PCB in Pedal Form

To achieve this, an extension cape for Bela Mini has been developed, integrating essential components such as rotary encoders, switches, and audio inputs/outputs onto a single printed circuit board. Additionally, a software framework has been created using Pure Data, providing all the necessary functions for utilizing the device.

The extension PCB for Bela Mini.

The circuit board was designed using KiCad, and manufactured with Eurocircuits. The cape is conceived as a stompbox incorporating four rotary encoders, each equipped with a switch, as well as two footswitches, all of which can be assigned based on personal preferences.

Side views of the extension PCB.

Guitar Pedal Components

It incorporates a 6.3 mm mono jack socket for audio input and two identical sockets for audio output, a 3.5 mm stereo jack socket for headphones output, and a 6.3 mm stereo jack socket for expression pedal input. To provide visual feedback for various modes, changes, and the status of each rotary encoder, I incorporated a bicolor LED and an OLED screen into the board. Additionally, to ensure compatibility with pedal board power supplies, I included a DC Barrel Jack that enables external power (5V/100mA) using 2.1 mm or 2.5 mm plugs with a negative polarity.

The Sound Generation

The software which runs on the pedal was created using Pure Data. You can download the patches on Lehel’s Github. Delay_Chain is an example project that serves as a demonstration of utilizing the effect_cape in a multi-effect configuration and provides all the necessary frameworks to operate the hardware. With the exception of a custom render.cpp file dedicated to reading the values from the rotary encoders, all software components were developed exclusively using Pure Data.

Showing how the extension PCB mounts onto the Bela Mini.

The audio effects included are as follows: (their order is interchangeable in the _main patch):

  • [scanner] Hammond’s Scanner Vibrato simulator with an adjustable rate, depth, and mix.
  • [tapedelay] Tape delay simulator with variable-speed tape and saturation.
  • [freeverb] Schroeder reverberator implementation using the Freeverb algorithm.
  • [looper] Looper with overdub capability and clock synchronized to the first layer.

The Github repository also includes code for executing all the hardware functionality: reading from the rotary encoders, displaying information on the screen, moving between patches, controlling parameters of the effects from a phone using OSC messages over wifi. The project is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License, so if you want to build your own version, you can get all the files from this repository.

Controlling the patch parameters with a smart phone using OSC over wifi.

About Lehel Török

Being a Sound Design student at the Institute for Electronic Music and Acoustics in Graz, this project holds significance as it forms an integral part of my Master’s thesis. The primary objective of my thesis is to assess the feasibility of utilizing Bela for developing real-time guitar effects, while also conducting a comparative analysis with other reprogrammable effect pedals constructed on similar platforms.

I was amazed by the remarkable tutorials and invaluable support offered on the Bela platform, which enabled me to successfully accomplish this project. I would like to sincerely express my gratitude to the Bela team for their outstanding contributions. Additionally, I extend my thanks to the user community for generously sharing excellent code examples, which serve as a solid foundation for all of us to build upon.