MIDI Basspedal With Individual Note Numbers to Accompany Your Handpan Playing

by Deepsoul77 in Circuits > Arduino

261 Views, 4 Favorites, 0 Comments

MIDI Basspedal With Individual Note Numbers to Accompany Your Handpan Playing

signal-2025-03-10-151729_004b.jpg
Erster Prototyp.jpg
signal-2025-03-10-151729.jpeg

How this project in development came about...

My goal was to play bass or synthesizer sounds with my feet while playing the handpan. The pedals should be individually transposable and ergonomically playable with 1 or 2 feet while the handpan rests on my lap. The bass pedals that were available at that moment I had the idea mostly had full chromatic and were a little too big.

For me as a handpan player the focus when playing should be on a few selected notes, as this makes playing easier.

For many songs, 4-6 notes as a bass or synthesizer background are completely sufficient. Full chromatic would make playing more difficult. And with various chord modes inside this device, the sound can be made very fat even if only one pedal is pressed.

As my first prototype, I took out the bass pedal strip from an old yamaha home organ from the 80s. I modified it so that 6 pedals remained (see picture).

After my first attempts at playing these pedals, it turned out that this solution was still too big and I usually only play 3-4 notes anyway and also because I operate a drum trigger with my right foot too.

So I tried out this smaller solution with only 4 pedals for my left foot.

This is a work still in progress, so at this moment it is a simple (and a little fragile) test version build from a few wooden parts and 4 buttons. It is connected to an arduino with a cable and the arduino itself is connected to my computer or a hardware synth yia USB or standard MIDI. With this device I wanna get more experience so that I will sometimes build a more stable version and update this instructable.


What this device offers:

+ 4 foot pedals

+ Calling up pre-configured note sets to match the respective handpan scale in different variations

+ Transposable over 4 octaves

+ 6 different play modes: single note, +octave, chord etc.

+ MIDI output via USB or MIDI socket

+ Several CC-Controllers


Example of how to play this pedal:

Call up the first set for the D kurd handpan using a button. Now the notes Bb, C, D and F are placed on the pedals from the left to the right pedal.

These are the musical steps 4, 5, 6 and 1 in the key of F major, on which the 4 chords Bb major, C major, D minor and F major are based.

This can be used to accompany many common melodies and songs.

With another button press, further combinations of these notes can be called up, for example, the sequence: F, C, D, Bb.

All desired combinations are possible (of course also with the notes G and A that give the base of the G minor chord and A minor chord in the F major / D minor scale).

If you now switch to another handpan, e.g. an F# low pygmy, you can press a second button to call up the note sets for this scale.

In my version I use 2 further buttons to call up 2 further handpan scales, so that I quickly can change between my 4 handpan scales.

All conceivable scales can be programmed into the code and then called up by pressing the corresponding button while playing.


Additional features:

One rotary control can be used to adjust the pitch over 4 octaves.

Another rotary control offers 6 different play modes:

  1. Root note
  2. Root + octave
  3. Root + 10th
  4. Root + 5th and 10th
  5. Root + 10th and 12th
  6. Root + 10th, 12th and double octave


These modes allow you to shape the sound from simple to complex. The chord character of minor and major is always taken into account, depending on the selected scale.


Software synthesizers in any DAW can be used as a sound source and of course all hardware sound devices that have a standard MIDI input.


As the control unit was intended for another project, I had other controls left over, which I configured as simple MIDI CC controllers which for example can be placed to the cutoff frequency of a filter, a whawha effect or any other input.


Arduino Coding:

The arduino code was made by me as a really beginner in coding by interacting with open source AI websites. The main key is to specify every detail you want in the code. Then AI gives you nearly everything you need for configuring the code.

Supplies

Skills:

Basic soldering and crafting experience

You don't need a programming background, just a little logical thinking, AI will translate your ideas into arduino code

Feel free to use my code. I've included a short guide there that will help you insert your own handpan scales.


Material:

Arduino micro

Breadboard and small PCB

Plywood panel

Various small pieces of wood

Some small screws

4 metal strips

Buttons

Potentiometers 10 kOhm linear

Thin cables

Connection cable PS/2 Keyboard connection cable DIN 6

PC and DAW


Optional, if you wanna have a MIDI socket:

standard MIDI socket

2 resistances 220 Ohm


Tools:

Soldering iron

Soldering holder/third hand

Handsaw

Screwdriver

Tweezers

Hot glue

Build the Pedal

signal-2025-02-22-132650_004.jpeg
signal-2025-02-22-132650_003.jpeg
signal-2025-02-22-132650.jpeg

Saw the plate and the pedals

Drill a hole in each pedal at a suitable location

Put in a matching screw

Fix each pedal to one holder

Fix each holder to the base with one screw so that you can change the angles of the pedals to each other

Place a small rubber thing under every pedal to reduce clicking noise

Add the Buttons

signal-2025-03-10-151729_004.jpeg
IMG_20220505_165022_comp.jpg

Drill out the metal strip

Screw in the button

Attach it to the pedal

Adjust the pedal travel

The second picture shows the home organ pedal version, herefore I used buttons that open the current flow when pressed

Cabling

signal-2025-03-10-151729_005.jpeg

Cut the PS2 cable in half

Connect one pin of each button to a wire of the PS2 cable

Connect the other pin of each button to the common ground wire of the PS2 cable

Attach the end of the PS2 cable to the base plate

Now the simple bass pedal board is finished

Build the Controller Unit

signal-2025-03-10-151729_003.jpeg
Elektronik (2)_comp.jpg
Elektronik (6)_comp.jpg

My pictures show the actual and an earlier version in a small wooden box

Here, the Arduino micro is plugged onto a small piece of breadboard. I fixed all the needed potentiometers and buttons into the wooden or plastic parts and connected them directly to the breadboard with thin wires.

Strip approximately 7 mm of insulation off the end of the wire and coat it with a little solder, so it can be easily inserted into the breadboard using tweezers.

The potentiometers and switches are simply connected to the inputs of the arduino.

The MIDI socket needs 2 resistors to be attached.

In the internet you will find enough information how exactly that works.

I used the second part of the PS/2 cable to connect the controller to my pedal board. And since this was not long enough, I put another cable in between.

Code for the Arduino Micro


+ Download my code

+ Connect you arduino device to your PC

+ Install the latest version of the arduino IDE

+ Download these libraries from Github: MIDIUSB and MIDI

+ Unzip them into separate folders

+ Rename these folders correctly to "MIDI" and "MIDIUSB" (important!)

+ Move both folders here: Documents/Arduino/libraries

+ Start the IDE

+ Select the arduino on the correct port

+ Perhaps you have to insert the two libraries into the IDE manually

+ Load the downloaded sketch

+ Make your desired changes in the sketch

+ Compile and upload it on your arduino


On my system this error message always appears:

Found programmer: Id = "CATERIN"; type = S

Software Version = 1.0; No Hardware Version given etc.

However as long as the message "Upload successful" appears, everything is fine :)

Play Modes and Surface

Modi Übersicht.jpg
Surface.jpg

Playmodes:

Click the first picture and you will see details about the different play modes

As an example I took the root note B flat which is played with the left pedal within the first D kurd Setup


Function of the buttons and pots:

In the second picture you can see the surface of my controller.

There are 4 buttons to call up the 4 handpan scales. A click on one button activates the first setup for the corresponding handpan scale, the next clicks will toggle through various setups for this scale.

A rotary knob for the 6 modes

Rotary knob for the octave transpose function in a range of 4 ocatves

Several CC knobs and pots to control MIDI devices

Troubleshooting

A few words about the switches:

It's important to choose the right switches for your pedals. For me, it's important that they operate very quietly. Many switches for guitarists have a distinct clicking noise, which would bother me. And some cheap switches don't work every time you press them.


Coding:

If your changes to the code don't work, you can submit the code to chatgpt or another AI dialogue website along with a precise question about the problem. Usually you will receive a detailed analysis of the problem, suggested solutions and explanations about what the code does. So the chance that you will learn something about programming is high :)


Finally, don't be afraid to ask me. It may take some time for me to respond, but I enjoy supporting similar projects with my experience.

Credits


Thanks to:

RowanCant for his amazing bass pedal projects, that inspired me a lot and gave me the first impulses on the code.

https://www.instructables.com/USB-Midi-Foot-Pedal-and-Drumkit/

And to many other builders of similar projects here on instructables.

Also thanks to chatgpt and other AI websites. In dialogue with those intelligent systems I got the whole arduino code that I wanted without complaint! And that process let me learn the basics in C programming. I now really understand what my code does :)