[Robi] and [Kathy] from elecfreaks have put together a how-to article about a Laser Piano they just built. Instead of keys, the user breaks beams of laser light to trigger the sounds.
Several laser pointer diodes are wired in parallel and mounted in a box, cardboard in this case. The laser diodes are aimed at photocells that reside on the other side of the box. Each photocellis connected to a digital input pin on an Arduino. When the Arduino senses a state change from one of the photocell, meaning the beam of light has been interrupted, it plays the appropriate wave file stored on an external JQ6500 sound module.
[Robi] admits that there are some improvements to be made, specifically the trigger response time and the piano sounding too monotonous. If you have any ideas, please leave them in the comments section.
If you’d like to build one, the bill of materials and Arduino code are listed on the above site. We’ve features some other interesting laser-based instruments in the past, such as this guitar, this harp and this harp.
“Be excellent to each other!”
Use more powerful laser, skip the photosensors, use the screams of the user to be your music.
But that would not be excellent to each other so forget it. Try to, anyway.
Response speed has to be instantaneous, speed of light and all, until the process becomes software. Why don’t you try using individual note generators, modulated in turn by an Arduino circuit?
I love the in-build light effect. What did people do before laser and LEDs???
I think they just used strings
Neon bulbs and photocells.
“use the screams of the user to be your music.” It’s so funny of your idea ! Yes, we can use powerful laser to deal with the bad guys ! We may try make a X-Man laser glass.
Seriously, do you has any recommend individual note generators ? Yes, right now, the response was not fast. We need control Arduino send commend to JQ6500 change mp3 file. I thought this is not the smart way .
We are trying build individual by 555 timer now. Hope it has good effect .
And use 3D printer make some shell. We have build Laser Harp, we will post the design file soon. :)
Its not speed of light velocity because the photoresistances have a certain response time so its not as you say. Maybe phototransistors would be faster?
Phototransistors would be faster, you are right most photoresistors are kinda slow. Maybe they would respond faster under a green laser?
Yes, As you said, photoresistors are kind slow . We modified photoresistors brick to adjustable sensitivity for faster. And I also tried Laser receiver diode , the response near as photoresistors .
So I thought the problem also on mic-controller and mp3 file .
Why not use multiple lasers per note, stacked over each other, to change volume, the “harder” you press the louder the note. (Hell if you jiggle your finger you could get a tremolo.)
Hirudinea, your post wasn’t up before I posted mine, great minds and all that, cheers!
Hi Hirudinea, As you said , “Jiggle your finger you could get a tremolo” that’s exactly what I desired effect . Right now, the note just be recorded as mp3 file in JQ6500 , there was no polyphonic and change volume .
Maybe we can try to control volume by a Ultrasonic sensor . Any note generators circuit are welcome .
… or one line laser and multiple photoresistors per note…
Well since you asked, I can’t help with software, but hardware is right up my alley, so I recommend using a single LASER distributed with fiber optic cables, that way the beams can be multiplexed, as in, instead of a single beam per light sensor, use the fiber to make two finer closely spaced beams in the same space, or even add another between them (triangle, point on bottom) but below, for depth, like for hammering on a guitar string making it hit the frets.
Then using software one could “adjust” the light sensor so if one beam is broken (lower light level hitting sensor) a sample plays, if both top beams are broken something else can happen, and if then there’s the bottom beam which also provides another dimension (depth) and trigger for another event/sample, or whatever, strobe light flash or trigger for light show, etc..
And don’t forget that pianos use pedals, so foot controls for sustain and such could be utilized easily, especially if this was built into a case similar to a piano.
This type of layout would take some learning, just like any stringed/keyed instrument, but with good finger control this thing could rock and have many of the available subtleties a “real” instrument has.
Monotonous? The problem is that this sound sucks… badly.
Replace the wave file with something more interesting, taken from a synth, Or add buttons and potentiometers and oscillators and make it a *real* synth.
The bad sound and delay time are due to the fact that you are playing wave files with a tiny little micro-controller :) Why not have it send data to a computer or phone about which beams are blocked, then do the sound synthesis on the PC. Kind of like what I did with http://hackaday.io/project/1500-Kwese—musical-instrument. Then you can have the beauty of a 10GB soundfont at your disposal and play multiple instruments.
If you are desperate to avoid using a PC or phone, then you could also check out the VS1053 chip (sparkfun musical instrument shield has one) – midi synthesis so you can do a variety of instruments at ok quality (designed for phone ringtones so nothing amazing). Cool project though :)
Hi Jonathan, you have a cool project ! we did not want to send the data to PC, because of we hope proivde a full kit that people could build it anywhere ,make your floor ,glass, walls be a piano.
It’s good idea synthesis on the phone, because people are always together and they phone :)
Nothing wrong with the sound, just the crap speaker and the built-in mic on the camera. Get wired up for a good demo. Midi to a soft synth like ZynAddSubFX for great sounds.
Response time, big problem!
Harp not keyboard, that’s worth modeling and the laser harp was at least 20 years ago. The plain harp is in the Bible. Someone at Purdue combined one with haptic gloves which gave touch response! Most touch sensitive keyboards measure the short time between two pair of contacts one closing before the other.
In the demo it’s a very slow attack sample, so it sounds laggy. With light beams we naturally expect very fast attack, so maybe a real piano sample or a plucked string synth would feel more natural on this.
I have no idea if this comment may have been made, but rather than interrupting the laser beam with your finger you could actually make piano keys out of plexiglass or something, with a tiny pad underneath it which will break the beam.
Basically thatd be an upgrade to a keyboard, but looking more awesome.
Although it may ruin your idea a bit it will ease playing this thing and also make it easier to control the time you want to play your instrument.
For the response time; i would recommend using photo diodes (price USD 0.10-0.20 a piece) or special photo-laser diodes. In the end you dont care about how much light is coming in, only if there is a huge change. I can imagine even a NLC could do the trick but those respond quite slowly.
Now a big part of the lost time i guess would be in the arduino, so basically if you’d skip that i’m guessing you should be fine. But you’re gonna need a slight bit more hardware then.
Anyway; really cool thing! Would like to see where this is going
Instead of a pad breaking the beam, would just touching the glass decrease the light level reaching the other end enough to be detected? I’m thinking touching the glass would cause some of the light to leak out via FTIR (frustrated total internal reflection).
Something more along the lines of a graded neutral density filter which changes position when the key is pressed would be more practical. A change in beam intensity would directly correlate to the distance the key is pressed, etc.
You could use something based on out coupling, but the travel distances would be small, and you need a way to repeatably change the air-side refractive index.
Since plexiglass reflects the beam as long as the angle is low enough, you could use this to determine how far the key is pushed. The beam will end up reflecting downwards, where you could make sensors to determine how far the key is pressed
However, since that no longer works with breaking the beam but diverting it that means the system would react to a positive signal, rather than to losing signal. Im not sure but i think that would make it slower…
However, if you’d work with NLCs for instance this will improve speed (rise time typically 5ms against decay of 40ms, so 8 times faster sensor respons). Seen you then get a positive output (resistance drops) im guessing the arduino will more easily detect the signal change as well, but i dont know enough about arduinos for that.
How about metal strings with magnets near them. Coils of wire would detect changes in the magnetic field which are then amplified. Has that been done before?
That’s an electric guitar. Or, really close to one.
Looks Great,
Actually one idea could be, to use 2 lasers each with a “line” head (like some laser levels) and disperse the photosensors across the 2 lines (one of top of the other) …. if you are then able to calculate the time difference when each level is split, you would be able to vary the volume based on speed of press.
(and add as many ‘keys’ as you like)
Ohhh if only I had time…..
Here is a fun sampler you can use with Arduino Leonardo, it also allows you to choose sounds
http://diybeats.com/?page_id=4
I’ve written a Linux tool to upload MP3s to the internal flash of a JQ6500 module:
https://chiselapp.com/user/rmax/repository/jq6500