Code Monkey home page Code Monkey logo

organ-pedalboard-arduino's Introduction

Organ Pedalboard with Arduino

This is an Arduino sketch to MIDIfy an organ pedalboard, including foot pedal and buttons for stops. It is meant to connect an existing pedalboard (where each pedal key has a switch) to a virtual organ, an digital organ module or program (like Aeolus, Hauptwerk or others).

List of materials

  • Pedalboard
  • Volume pedal (e.g. guitar pedal) (optional)
  • Buttons for stops (optional)
  • Arduino Mega 2560
  • MIDI shield
  • Arduino power adapter (or power it from USB)
  • Wires
  • Virtual organ
    • physical module with MIDI in - MIDI cable
    • software program - e.g. USB-MIDI interface (may need a MIDI cable)

Schematic

connections

All switches are connected at one end to a pull-up input, and connect to ground on close. The analog input for the food pedal expects a potentiometer (e.g. 10k).

Note that the MIDI output is used. When connected to a computer, it needs e.g. a USB-MIDI adapter.

MIDI output

Keys

Each of the 32 pedal keys emits note on and note off messages. By default this is on channel 3, start note C0, fixed note velocity 127.

Pedal

By default, the panel emits control change messages on channel 3, control change number 7 (volume).

Stops

Stop buttons emit program change messages. By default this is on channel 3, with control change numbers 1 to 12.

Uploading firmware

After assembling the components, one needs to program the Arduino.

  1. Open the Arduino IDE (install first if needed)
  2. Install the MIDI library from the library manager (it is the arduino_midi_library)
  3. Open the midi sketch from the file organ.ino.
  4. Connect the Arduino over USB to your computer.
  5. Select the right Board: Arduino Mega or Mega 2560
  6. Set the switch on the MIDI shield to prog
  7. Select Upload and wait until the process is done.
  8. Set the switch on the MIDI shield to run

Customizing the firmware

There are some things you may want to customize in the code:

  • Pin layout - You can change which pins are used. This is especially useful when after connecting all the wires, you find that some keys are switched. Change the order of pin numbers in KEY_PINS, DPANEL_ENCODER_PINS, APEDAL_PIN or STOPS_PINS.
  • MIDI parameters - You can change the MIDI channels, notes, velocity, control change and program change numbers. See the corresponding lines in the code.
  • Pedal type - We've used an analog pedal, but when you have a digital panel with an an encoder, you can change setup_apedal() to setup_dpedal() and loop_apedal() to loop_dpedal() (though this has not been tested).
  • Disabling features - If you want to disable a feature (e.g. you only want keys but no stops), you can comment out or remove the corresponding lines in setup() and loop().

Pictures

Used at

License

This software is distributed under the MIT license.

organ-pedalboard-arduino's People

Contributors

wvengen avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.