Close
0%
0%

MidiFoot

A simple and cheap yet versatile single-button MIDI controller

Public Chat
Similar projects worth following
This project uses the venerable but still perfectly serviceable V-USB library to turn an ATTiny85 into the brains of a class-compliant single-button MIDI controller. While this can be accomplished with other MCUs, this might be the cheapest way, requiring only about $3 worth of components. The software sends hold pedal (CC#64) messages on MIDI channel 15, but with a rotating pattern of 16 values for each press and release so you can map the messages to different things. This allows it to be used as a momentary or toggle button, and even play 4, 8, or 16-note patterns.

While a foot pedal can be useful while playing, it's not usually used for more than one thing in a song, unless maybe you're playing organ bass lines. So, a simple, inexpensive MIDI foot pedal that nonetheless can be used in a lot of different ways can solve a lot of problems. If your DAW or sound module can map control changes to different channels and/or message types, you can use this pedal to send momentary or toggled CC values, and note patterns with 4, 8, or 16 steps. The MCU can also be removed and reprogrammed to send different messages if desired (see the github page for info).

The MidiFoot uses the V-USB code to emulate a low-speed USB device. While V-USB has been around for a bit, it has the advantage of providing a way to get USB running on very cheap AVRs with just a few extra individual components. The MidiFoot was developed by Geek Funk Labs, and is available fully assembled or as a kit from the Tindie store, but you can also obtain or produce all the components yourself:

code: https://github.com/albedozero/midifoot

PCB design files: https://oshpark.com/shared_projects/GyvghF6b

3D model for housing: https://www.thingiverse.com/thing:5266245

Assembly instructions: https://geekfunklabs.com/download/midifoot-assembly-instructions/

The table below shows the sequence of values sent on CC#64, channel 15 with each press and release of the button. The odd-looking pattern of values allows easily setting up the different functions described above by mapping ranges of values to specific notes/control changes/etc.

value sustain on (>=64) sustain off (<64) toggle on (70-85) toggle off (100-115)
70 x
x
0
x

100 x

x
30
x

85 x
x
15
x

115 x

x
45
x

75 x
x
5
x

105 x

x
35
x

80 x
x
10
x

110 x

x
40
x

midifoot_1.stl

3D-printable foot pedal housing

Standard Tesselated Geometry - 38.95 kB - 03/21/2022 at 14:03

Download

  • 1 × ATTiny85 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × 16MHz quartz oscillator
  • 2 × 22pF capacitor
  • 1 × 10uF capacitor electrolytic
  • 2 × 3.6V Zener diode

View all 10 components

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates