Aetherharp: Three Level, 24 Note, MIDI Air-harp.

by XenonJohn in Circuits > Arduino

6827 Views, 88 Favorites, 0 Comments

Aetherharp: Three Level, 24 Note, MIDI Air-harp.

F8IUSFUKVDTHBV7.jpeg
Aetherharp demo
aetherharp3.jpg

This project is loosely inspired by the laser harp of Jean-Michel Jarre.

https://www.youtube.com/watch?v=DnAfXK-hft8

Instead of lasers however, it uses eight SHARP infra-red distance sensors, the variants with the longest range of 35 to 40cm. These sensors are laid out in a row to provide rows of 8 notes at 3 different height levels giving a total of 24 notes playable by hovering your hand in the position of the note you wish to play.

These sensors are connected to a Teensy 3.5 microcontroller which is compatible with the Arduino ecosystem. This has a much faster processor than a regular Arduino board and very conveniently has the ability to output MIDI commands built in.

MIDI means Musical Instrument Digital Interface: a standard means of sending digitally encoded information about music between electronic devices, as between synthesizers and computers.

A variation of this is USB-MIDI, which just means the device sends MIDI data up a USB cable to an attached computer. The attached PC or laptop then runs software which converts this to sound. This software can be very complex but basic free versions exist and are outlined later on.

Conveniently the laptop or PC supplies enough power via the same USB cable to power the Teensy microcontroller and the SHARP sensors. This makes the wiring quite straightforward as no battery power supply is required.

Finally, I have added a simple low cost gaming thumb joystick to the design which allows you to play notes with one hand while the other hand can operate this joystick to pitch bend the notes to give more expression.

The aetherharp is being played in the video by the person I made this for. It has been placed into a nice wooden enclosure. The layer of clear red acrylic on its upper surface does not appear, by trial and error, to impede the function of the SHARP sensors at all so long as you keep it out of bright sunlight.

This project is quite easy to construct, however it does assume some familiarity with Arduino boards.

The vast majority of the time was spent on the software as a lot of noise filtering is required to stop incorrect and also random unrequired notes being played.

Supplies

Parts listing:


SHARP GP2Y0A41SK0F Infra-red distance sensors x 8

Note: SHARP make these sensors with different minimum and maximum sensing ranges. They all look exactly the same. Therefore, when ordering, make sure you get the ones with the part number given above and no other, these are the longest range ones.


Generic thumb joystick x 1: 

Search on shopping website for “Analog Thumb Stick Sensor Joystick Module” and the correct type will show up.


Teensy 3.5 Arduino compatible microcontroller.

For setup with the Arduino IDE on your computer, read tutorials on the manufacturers website:

https://www.pjrc.com/store/teensy35.html


Generic USB (A) to Micro USB data cable: Search online for "Micro USB Data Cable Lead"

Make sure you include the word Data in your search as some are for charging only and will not carry data.


Miscellaneous:

Piece of wood approximately 1m long.

Assorted cable ties, glue gun is also useful.

Lots of hookup wire and possibly ribbon cable.

Soldering skills will be required.

Screw Sensors to a Wooden Board

Sharp.JPG
IMG_20210731_114710213.jpg

Space out the sensors at least 10cm apart. If closer there will be a risk of you activating two adjacent sensors with your hand due to the width of your hand. Screw each to the board with two small screws as shown.

Extend the wires to each sensor so they will reach the Teensy 3.5 board. All the black wires join together and attach to a GND pin on the Teensy. All red wires of the 8 sensors join together and are soldered to the 3.3V(i.e. power output) of the Teensy board.


Wire Up the Thumb Joystick

Joystick.JPG
IMG_20210731_114719150.jpg

The joystick is used to 'bend' the pitch of the note being played with your other hand.

These joysticks contain two potentiometers, one for forward/back movements and one for left/right movements. In this case we will use just one of these potentiometers.

Each potentiometer has 3 pins. Choose the one you wish to use for the pitchbend feature and solder 3 wires to it. The left hand pin is connected to 3.3V analog supply pin of the Teensy and the right hand pin to any GND pin on the Teensy.

The central wiper Pin is connected to Pin 23 (A9) of the Teensy.

I made a 3D printed enclosure for the joystick module. You can mount it any way you like but for me this was convenient. The .stl file for the 3D printer is attached.

Downloads

Wiring Diagram

WiringDiagram.bmp

The wiring of each sensor is quite straightforward however it is recommended that you try to keep your wiring reasonably neat and tidy as it can rapidly become spaghetti otherwise.

The joystick is also wired as shown with 3 wires.

There is no battery power supply as a laptop will (just) supply enough power via the USB cable between the Teensy and USB socket of the laptop to run the Teensy and the 8 sensors.

To make it clearer in the wiring diagram, the yellow wires from each sensor have been shown in purple. The black wire of each sensor is wired to GND and the red wire of each sensor is the power supply and is connected to the 3.3V pin of the Teensy microcontroller.

Connecting to a PC or Laptop

IMG_20210731_114729266.jpg

NOTE:

If connecting this to an iPad, via an Apple female USB to Lightning adapter for example, to run it with a software synthesiser program such as bs-16i then the iPad will NOT supply enough power and a battery power supply will need to be provided for the Teensy board. Therefore, at least to begin with I suggest you use a PC or laptop with the aetherharp.

Plug the micro-USB end of the cable into the Teensy 3.5 microcontroller. Ideally fix the cable to the wooden board to de-stress the rather fragile connection between this small plug and the Teensy board. I drilled 2 small holes one each side of the cable and just used two cable ties through the board to achieve this. The other full-sized male USB end of the cable then simply plugs into your PC or laptop and this also then provides power to the Teensy board.

I fixed other items to the board in a similar way.

To hear the MIDI output from the Teensy you need something that will run on your PC - a software synthesiser (also known as a DAW or Digital Audio Workstation).

Many of these are available and they can be very sophisticated. However, to begin with you may wish to use a very simple to use free one called VMPK or Virtual MIDI Piano Keyboard

Information and download here:

https://vmpk.sourceforge.io/

Code for the Teensy Board

TheCode.bmp

NOTE: This project does assume some familiarity with Arduino microcontroller projects.

Here is the Arduino code that needs to be uploaded to the Teensy board.

When you upload it you need to select "Serial + MIDI" in the options it gives you when setting up the connection between the laptop/PC and the Teensy.