Laser Harp

by patrice.godard in Living > Music

15 Views, 0 Favorites, 0 Comments

Laser Harp

vlcsnap-2026-03-07-13h32m08s472.png

Since I was a kid, I've always been fascinated by Jean-Michel Jarre's Laser Harp.

So when I started tinkering with Arduino, this was one of the first things I made.

But it was finicky, so when I bought a laser projector, I made an improved version.

It had a better detector based on a C++ openFrameworks app and OpenCV, but I had lost the wobbling string and dynamic harp effects, since I had no laser DAC to drive the projector. I was using a static ILDA file by then.


Then for my latest birthday, I finally bought a Helios Laser DAC.

This was the missing piece of the puzzle.

A nice guy also provided the awesome ofxLaser addon for openFrameworks, which makes driving lasers so much easier!


I thought I would share this build here.

Supplies

You will need:

  1. A Laser projector (I'm using a cheap chinese RGB laser projector, with an ILDA port)
  2. A Laser DAC (I'm using the awesome cheap Helios Laser DAC)
  3. A smoke machine
  4. A webcam and camera tripod
  5. A 15x15cm (roughly) mirror and a 45°mount.
  6. A Windows PC (you may try to build the software on Linux but it's quite hard given its dependencies)
  7. Visual C++ 2022 Community (this exact version, I was unable to fix linking issues with older or newer versions)
  8. A virtual midi port driver (I'm using the free LoopBe1)
  9. A soundfont player (I'm using the free sforzando). Otherwise it will automatically use the default Windows Midi engine with a classical harp sound.

Hardware Setup

IMG_20260306_205225.jpg

The projector sits in front of the 45° mirror, at a distance such as when the harp is open, it covers the whole mirror width. This makes sure the projected harp is as wide as possible, thus as easy to play as possible (this also facilitates the played string detection).

I've uploaded the mirror holder model I made for this mirror, see below.


On the right hand side of the photo you can see the Helios Laser DAC.


The webcam is placed on a tripod so that it sees the harp and that the captured image is matching the detection zones (this is to be adjusted manually once the harp is on).


The smoke machine is located at the left of the mirror.

Downloads

Software Setup

The software is available on my GitHub


There is a detailed README.md, that I'll copy below.


The JM Jarre Elka Synthex soundfont is available in the soundfont/ folder


The "Second Rendez-vous" theme notes are available in the notes/ folder


The software is setup to use the key used in "Second Rendez-vous", and the low D has been removed since we only have 10 "strings" (The number of strings is configurable but more than 10 strings would make the harp difficult to play and detect notes).


Usage


Download and Install openFrameworks (for Visual Studio or your IDE of choice but then you'll have to generated the project files using openFrameworks Project Generator).


Install the ofxLaser addon


Clone this repo in OPENFRAMEWOKS_DIR\apps\myApps

and open it in Visual Studio 2022 Community.


In ofApp.h:

If you're using a Midi virtual cable driver different than LoopBe1, change the MIDI_PORT_NAME constant to match the name of your MIDI output port.

#define MIDI_PORT "LoopBe Internal MIDI 1"


You may need to change the CAMERA_DEVICE_ID. The current value is using the first external webcam.

#define CAMERA_DEVICE_ID 1


By default the Harp is set to the key used by JM Jarre in his famous "Second Rendez-vous" Laser Harp Theme.

It may be changed to C Major in MidiSender.h, cf comments.


Key bindings

After launching the app, you should 'learn' the background, even though it's supposed to be done automatically... by pressing the 'l' key.


You may open/close the harp with the space bar or by clicking on the toggle button.

You may change octave by clicking on the toggle buttons.


Open the harp, type 'l' to learn the background, adjust the webcam position so that the webcam images fits the detection zones, and enjoy!


Notes on ofxLaser config panel

You may need to change a few settings here, especially the number of points per second sent to the laser, depending on your actual laser projector.

Demo

My Laser Harp - v3 using Helios DAC and openFrameworks with ofxLaser

Enjoy!