Writeup originally published in 2000
In about 1996 I was introduced to the music of French electronic musician Jean Michel Jarre by a friend from highschool. He had been to one of Jarre's concert extravaganzas in Paris and he told me a bit about the laser harp that Jarre plays.
A laser harp is basically an instrument which somehow resembles a real harp. There are no strings. Instead, beams of laser light are projected from the bottom of the harp. These beams strike light sensors at the top of the frame. (or are picked up reflectively by sensors at the base of the harp) When something (a hand, foot, etc.) blocks a beam, a note is triggered on a synthesizer or some type of tone generator. Theoretically the harp could control anything but I'm interested in its musical possibilities.
In 1997 I helped my friend Jonathan Fuerth build a prototype laser harp for a high school music class. I designed the electronics. Having not seen any pictures of Jarre's harp or any other harp for that matter we were pretty much guessing. Jonathan's harp is made of 2" PVC tubing and is basically a 6'x6' square. The top horizontal piece has 12 light sensors evenly spaced across its length. The electronics only detect the presence or absence of light so a PC was used as the brain/synthesizer when it was demonstrated.
Andrew's Laser Harp
In the summer of 1998 I did some wiring at my mom's house and I ended up with three 10' lengths of 1/2" steel-walled conduit. I thought it was a shame to not use them for something even though they only cost a few dollars each. Then I thought about a laser harp.
I quickly began working on the frame with help from a friend. I drew up some plans and used my limited amount of trigonometry ability to figure out the lengths and angles of all the pieces. I elaborated on Jonathan's harp by making a more complicated and artistic shape. We already knew the concept would work so I had a bit more freedom to be creative. The funny angles of holes required to bolt the frame together made it difficult to construct. With two people though we managed to complete it in one weekend.
After the frame was done we started making the optics. Both Jonathan's laser harp and mine use inexpensive laser pointers as the laser source. By using pieces of glass or Plexiglas it is possible to divide the beam many times. My harp uses Plexiglas which is a bit more lossy than real glass but much easier to work with. The harp has 12 beams and 2 lasers. The original optic section was built inside a piece of 3" PVC drain pipe, but it was almost impossible to calibrate the beam splitters so we redesigned the optics to be more or less the same as Jonanthan's optic section. The beam splitters (Plexiglas) are mounted on small loose pin hinges. The pins were popped out, and the hinge pieces were compressed slightly with a pair of pliers to make them fit together tightly. The pins were reinserted, and now the hinges are able to hold their position without falling over. The angle of the splitters are adjustable by moving the hinge back and forth. The rotation is accomplished because the hinges are connected to the chassis with one bolt, to allow them to swivel.
The electronics are comprised of 3 main parts:
The electronics are responsible for detecting when any of the beams are broken and sending the correct MIDI messages to the connected synthesizers or sound modules to turn on and off notes. My electronics have op amps set up as comparators. There is one comparator for each of the 12 beams. For simplicity and cost there is only 1 calibration control for the sensitivity of all 12 beams but the sensors are close enough in value and this method works fine.
The computer is a PIC16C84 microcontroller that reads the status of the 12 beams plus 3 switches and then determines what to do. The inputs are multiplexed with a 74C150 16 to 1 line decoder. This is needed since there are only 13 I/O pins on the PIC. With the multiplexer, only 5 pins are needed on the PIC to read 16 inputs. MIDI comes out of one of the other pins and the remaining 7 pins are used to drive LEDs for status indicators.
The PIC program that I wrote supports 5 different scale tunings. It maps the 12 beams to either whole tone, chromatic, diatonic, blues or a pentatonic scale. This is selectable via one of the 3 buttons. The other 2 buttons adjust the transposition. The harp starts between middle C and the next C higher (depending upon the scale) and the transposition buttons allow the player to go up 3 or down 4 octaves for a total range of 8 octaves (more than a piano). The scale selection and transposition status are visible via the 7 LEDs.
The top LED pack shows the scale and transposition settings and the lower LED packs show the status of the 12 beams. This electronics module is quite reliable but looks like shit. (as mockups tend to look!)
Construction - or - "This is not a construction article!"
Update 2005-12-21 - Tech Notes and Tips
I get a lot of questions about my laserharp project. This was my very first PIC project, and since then I have learned a lot about these incredible devices. PIC chips are now used in almost all of my embedded projects, which I now do almost exclusively for commercial clients. If I had to go back and start this project over, I would do a number of things differently. These pages are kept online as a resource, a starting point, and a historical archive of my learning progress in electronics. Also, I was the very first site on the internet with laserharp construction info!
But as a service to people trying to build their own harps (and congrats if you are!) I thought I would share some of my more recent thoughts. Please read this before building a laser harp of your own.
As you will soon learn if you try to build my circuits verbatim, (which I don't recommend) the 74150 multiplexer IC is obsolete. I think it may have been obsolete when I built mine, but I had one and it looked like what I needed. As I have learned from doing commercial designs, you should always check the manufacturers' websites of important parts (especially ICs) before forging ahead with a design you may have trouble making again due to part availability. This is especially true if you're making a custom PCB.
The easiest way to solve the mux problem is to not use one! If you choose a PIC with enough I/O pins, you won't need an external mux. A PIC16F87x or PIC18F452 or something like that has oodles of pins. You can connect all the inputs to them directly.
Further to that, you could get rid of all the comparators too if you want by using a PIC with a lot of analog inputs such as the PIC18F8527. You'll still need a resistor at each input to make a voltage divider, but the signal can be sampled with the PIC's A/D converter. You could even make some fancy code to calibrate each beam separately. The hardest part of using these high-end PIC parts is that they come in TQFP packages which have very small pins. I have (as of 2007) learned how to solder these parts using a standard soldering iron, although having the use of a hot air rework station can help too. The basic trick to soldering TQFP parts is to tack the corners of the IC in place to make sure all the pins are lined up on both axes. Then gently bridge all the connetions on all sides by applying a lot of solder. Be careful not to melt the tacked pins or the part will drift off its position. Also don't scrub the tip of the iron against the pins hard or they'll be bent and cause a short. Once you can see a nice surface tension from the solder to the traces underneat, use a solder wick and remove the excess solder. Also making sure not to bend the pins. If you are careful you'll be left with a perfectly soldered chip! Now 80 or 100 pins doesn't seem too hard to deal with!
Read all the Drawings Carefully
I get a great deal of email from people who obviously have not studied the diagrams before emailing me. Do both of us a favour and make sure you understand most of the project before emailing me. Remember that this is not a construction article and you are expected to be able to read between the lines a bit. Even though uninformed people are annoying, I still answer all email I get. But please understand that you need to do your homework too. Print out all the drawings, understand the overall concept and what you are trying to do... see if you can visualize the workings of the circuit in your mind.
Don't use a PIC16x84!
Although the PIC16F84 / PIC16C84 is the de-facto hobbyist PIC chip, it is far from the best choice for most applications. I used it because I didn't really know about other options, and the programmer and docs I had at the time only talked about it. But for a MIDI application, the PIC16F84 has a big drawback in that it does not have a USART. (serial port) My laserharp generates MIDI in software using very precisely timed loops written in assembler. What a pain!
If you're worried about cost, remember that you're probably only building one harp, and the cost of all the other materials will be far greater than the cost of the PIC. Having said that though, if you want something similar to the PIC16F84, check out the PIC16F627A. It's about $2, has a USART, an internal oscillator (no crystal required!) and has a lot of other neat stuff too. I'd definitely be tempted by one of the devices with enough I/O pins to avoid using a multiplexer though. (see above)
Using a hardware USART means that sending a MIDI byte is 1 line of code instead of a very tricky set of timing loops.
Write the Code in C
Let's face it, assembler makes people feel hardcore! I certainly enjoyed telling people that I could code in assembler. But I don't do it much anymore. Using C is a better choice for almost all PIC projects. The only exception is the PIC10F200 which has so few program words that writing assembler isn't really a big deal and is actually kind of refreshingly fun if you usually write C++ or Java all day.
Here's what I know: C is just as good as assembler on the PIC and runs just as fast. Because C is really just a set of macros that convert directly into assembler anyway. Do you want to write a for loop in assembler? Do you want to worry about bank switching? Do you know how to optimise your code as well as a mature compiler?
I didn't think so! Let's just say that a good C compiler isn't going to make code that's any worse that what you could do. And it will save you a lot of time debugging stupid problems. If you're really worried about speed, you can even see what assembler the compiler makes, and you can inline your own assembler if it's not doing what you want.
Use more LasersWhen I built my harp, I was a) a student, b) buying lasers for $30. With laser pointers available online or in bargain stores for a few dollars, you should definitely use a laser for each beam. This may require a slightly larger power supply, but it has a lot of advantages. It will probably be easier to position each beam, and the light from each beam will be about a zillion times brighter. This means it will work in brighter ambient lighting conditions, and it also means that you can probably use fog to make the beams visible. Hooray for $40 fog machines!
Rethink the Optical Section
My harp design was based off a single photo I saw of Jarre's harp. I have since seen videos of him playing newer harps. His Live in Moscow video totally changed my thoughts about harps. He uses a harp that is completely under the stage and appears to use a single laser and a scanner to make multiple beams. There appears to be a light sensor that detects if he's got his (light coloured) gloves in the beams or not, and uses the scanning of the beam to determine which beam is being broken. There may be other sites with this info on the net.
One of my readers several years ago attempted to build a laser harp with a scanning laser. If you have access to a high powered laser (probably >300mW) then I would recommend attempting this method. But keep in mind that you will probably spend thousands instead of hundreds doing a scanning laser system as high powered lasers and galvonometers are very expensive. The method described on my page is probably closer to what most hobbyists end up building. Good luck!
Diagrams and Code
Electronics and Code
Well, having played my laser harp in its finished state I feel quite exhilarated knowing that I built it! Learning to play the laser harp better is my next challenge. I learned a lot about electronics and construction techniques by working on this. I always learn more about designing and building stuff by actually doing it that I ever could be simply reading books. (although reference material comes in handy) I hope to continue to build strange and interesting instruments like this.
© Copyright 2011 - Andrew Kilpatrick