Music Reactive Infinite Mirror




Posted in TechnologyArduino

Introduction: Music Reactive Infinite Mirror

Hi fellow makers! This is a project I've been working on for my Makerspace class at Collégial international Sainte-Anne. I truly hope you will like it!

*I'm sorry about the focus being bad. It was almost impossible to obtain a great focus since the LEDs were constantly flashing.*

The topic to which this project is related:

Since I am a musician myself, music always had been part of my life. I thought it would be really cool to have something of a decoration that reacts with music. I thought, how cool would that be if you could just stick an LED strip in your room that reacts with music. After looking forward to this, I realized this project has already been done. I then thought, what if we put this system in an infinite mirror. Thus, I created an infinite mirror that interacts with music.

Description of the project

The main idea behind this project is a rbg LED strip that is activated by sounds. The LEDs were programmed to vary in intensity depending on the different sounds that are picked up by a small microphone linked to the system. The LED strip was then cut and put in an infinite mirror, made with a regular mirror, a tinted glass and a photo frame.

How to use the final result of this project

To use this object, you need first two source of electrical power. You need a 5V supply, that can be provided by the USB port of your computer. You also need a 12V supply that be provided by a battery of a power supply. After, the LED strip embed in the infinite mirror needs to be connected to the breadboard where the connection of the circuit has been previously made. Then, the Arduino needs to be connected in the computer, and the system will be instantaneously activated, reacting to any sounds.

The purpose of this new object and some applications fields

This object could be only as a decoration for various places. It could be hang in the living room or in a bedroom. It could also be used in the entertainment field. To artistic exposition events to party, this object could be very interesting to use. The technology behind this project could be developed and used in musical events such as in festival or music shows to improve the visual effects and create a symbiosis with both sound and sight.

Step 1: Tools, Materials and Files

List of tools needed for this project

- Scissors

- Caulking silicone gun

- Microfiber linen (to clean both glass and mirror)

- Scotch tape

- Electrician's pliers (to cut and fold resistors)

- Glass polisher

- Vaporizer filled with soapy water

- Small carton box (preferable smaller than 11in. x 14in.)

- Small flat screwdriver

- Small wood saw

- An old wooden Chinese stick or a wooden pop-sicle stick

- Ruler

- Angle iron

- Dish gloves

List of material needed for this project


- Black photo frame with embed glass 11in. x 14in. or 28 cm x 36 cm

- A 11in. x 14in. regular mirror (mine was recuperated)

- A roll of scratch resistant window tint, midnight black

- Clear silicone sealant for windows

- Duck tape or small nails (about 15)


- Resilient isolating tape (10 mm of thickness)

LEDs activated by music

- Rbg LED strip (waterproof)

- Breadboard

- Arduino Uno (with its USB cable)

- 15 Jumper wires (Male to male)

- 3 Jumper wires (Female to female)

- (3) PN2222A Transistors

- (1) 100 ohms Resistor

- (1) 200 ohms Resistor

- (1) 560 ohms Resistor

- Microphone sensor 5V compatible with Arduino

- Power supply of 12V or battery holder with 8 AA battery



Files needed for the realization of this project

The only file needed to complete this project is the code programmed on Arduino. It can be found in the embed file tab of this step. A photo of the code and the code itself can also be found in its appropriate step.

References to other projects that inspired me

Infinite mirror

Music reactive LED

Softwares needed

Arduino IDE (1.8.5)

Available free of charge

Step 2: Removal and Cleaning of the Glass and Mirror

1- Remove the glass from the frame like shown in the video below.

2- Clean both side of the glass the soapy water

3- Do the same with the mirror.

Note that in my case the mirror was recuperated. I needed to tear the paper behind the mirror frame. I then took out the mirror by removing the small nails that was holding it. I then cleaned it the same way as the glass.

Step 3: Applying the Tinted Film to the Glass

1- Take the small carton box and clean (you want to make sure that no granule or residue are on it). Clean as well the surface you will be working on.

2- Take out the glass and clean it using the glass polisher and the microfibre linen.

3- Then, lift the glass carefully holding it by its the corner and drop it on a small box cleaned before. Leave the box and the clean glass aside.

4- Take out the roll of tinted film and cut a slightly bigger piece than the glass.

5- Then, detach the four corners of the film and stick 4 scotch tape piece (one on each corner) between the tinted film and the small plastic protecter.

6- After, remove slowly the plastic protecter by constantly applying soapy water with the vaporizer. Make sure that the tinted film is fully covered of soapy water (they should not be dry spots).

7- Take the clean glass and leave it on the clean surface. Apply a sufficient amount of soapy water on it to be completely covered.

8- Take the tinted film with soapy water and drop it carefully on the glass with soapy water. It is very important for the soapy side on the tinted film to be applied on the soapy part of the glass.

9- With a gift card or an old credit card, take out all the air bubble remaining between the tinted film and the glass.

10- Let rest and dry the glass for couple of hours (at least 2 according to the instructions)

Step 4: The Connection of the Circuit

*Photo above are supporting each steps*

For this particular step, I suggest you to stay organized and to choose the colour of your jumper wires according to their function. For instance, I am using the red for all the positive ports. I am using the black for negative, yellow for the bridge between LEDs and transistors and white for the wires connected to the Arduino.

1- Take your bread board and make a bridge with a jumper wire (M to M) between the two positive column.

2- Plug the a jumper wire in the positive column as well as another in the negative column. These will be used to connect the set-up to your power supply.

3- Make a bridge between the positive column (the one on the left of the ABCDE lane) and port A27.

4- Plug the adaptor for the LEDs (which has 4 pins) in B27, B28, B29, B30.

5- Plug a jumper of a different colour from C28 into F24.

6- Plug a jumper the same colour as in #5 from C29 to F29.

7- Plug a jumper the same colour as in #5 from C30 to F35.

8- Plug one of the transistor (which has 3 different pins) in H24, H25 and H26. The flat face of the transistor with its identification should face the wire pugged in F24.

9- Plug one of the transistor in H29, H30 and H31. The flat face of the transistor with its identification should face the wire pugged in F29.

10- Plug one of the transistor in H35, H36 and H37. The flat face of the transistor with its identification should face the wire pugged in F35.

Note- You can cut the long metal ends of the resistors with the electrician pliers to make them fit better into the breadboard.

11- Plug the 200 ohms in J26 to the negative column.

12- Plug the 100 ohms in J31 to the negative column.

13- Plug the 560 ohms in J337 to the negative column.

14- Plug a jumper of a different colour in J25. The other end will be eventually plug into the Arduino.

15- Plug a jumper of the same colour as in #14 in J30. The other end will be eventually plug into the Arduino.

16- Plug a jumper of the same colour as in #14 in J36. The other end will be eventually plug into the Arduino.

17- Plug a jumper the colour of negative you chose into the negative column. The other end will be eventually plug into the Arduino.

Step 5: The Connection of Arduino and Microphone

*Photo will support each steps*

1- Plug the jumper wire from J25 into the 3rd pin of the Arduino.

2- Plug the jumper wire from J30 into the 5th pin of the Arduino.

3- Plug the jumper wire from J36 into the 6th pin of the Arduino.

4- Plug the wire from the negative column (the one to the right of the FGHIJ lane) into the the ground (GND) pin of the Arduino.

5- Plug the 3 female-female jumper wires into the Digital Output (DO), Positive (+) and Ground (G) respectively.

6- Plug a male jumper wire into the female end line up with the Digital Output (DO) and plug it into the 7th pin of the Arduino.

7- Plug a male jumper wire into the female end line up with the positive (+) and plug it into the 5V pin of the Arduino. (This pin is on the other side of the Arduino. To recognize it, there is a white band that indicates POWER)

8- Plug a male jumper wire into the female end line up with the ground (G) and plug it into on of the GND pins of the Arduino. (This pin is on the other side of the Arduino. To recognize it, there is a white band that indicates POWER, next to the 5V in step #7)

Step 6: Building the Code on Arduino IDE

*Photo are provided to support each step*

For this step, note that you can either use the file provided, which is the complete code or hand copy the code.

1- Plug the Arduino into the USB port of your computer.

2- Open and create a new card on Arduino IDE

3- Define your integers.

The input I chose was pin number 7. It can be any other, as long you keep your pin number in track.

The input for the red LED was pin number 5. (ledR)

The input for the blue LED was pin number 6. (ledB)

The input for the green LED was pin number 7. (ledG)

4- Define your void setup.

All of the components will be in PinMode.

The speaker will be the input.

All of the LEDs will be outputs.

5- Identify the last integer.

The integer of beat will be a digital read of the speaker.

6- Define your void loop.

Copy the code from the file or hand copy it.

Note that the texture of the reaction of the LEDs to music can be varied. Values for digital output can go from 0 to 255. You can have fun changing these values and to make variation to the texture. The way I did it, when low pitch sounds are heard, only the red colour lights up. When more than low pitch are caught by the microphone sensor, red and blue, resulting in violet, are showing. Then, when high pitch sounds are heard, all three colours light up.

7- Upload the code in the Arduino. If the transfers fails, check that all your parenthesis are closed and that there is not sparing or missing spaces.

Step 7: Calibration of the Microphone Sensor

1- Make sure that Arduino connected to the microphone sensor is still plugged to the USB port of your computer.

Note that normally, the LED1 on the microphone is lighted.

2- With the small flat screwdriver, screw in or out the small screw on top of the voltage box (blue box), depending on how the screw was tightened initially, until you can see the LED2 light up exactly when you tap gently on the sensor of the microphone (black circle) .

Note that this step can take a while until you find where the LED2 reacts with sounds. Note that if the LED2 is constantly lit, this means that the screw is not tight enough. On the contrary, if the LED2 does not react at all when you clap your finger near the microphone sensor, this means that it's too tight.

The result should look like so:

Step 8: Isolating the Frame

1- Measure the length of one of the sides where the glass was initially embedded. Two sides should be of 14in. and the two others should be of 11in.

2- Cut pieces of the same size of the resilient tape. Make sure you cut them a little shorter to make for flush mounting.

Note that you want to leave a small space in the last piece of 11in. cut. This gap should be about 1/2 in. from one the corners of the frame. This gap is made in order to pass the LED strip through.

3- Detach the protection sticky band and stick all of the four pieces of resilient tape in the embedding of the glass.

4- Fold the small metal pieces over the resilient tape to make a 90 degrees angle with the frame.

The result of this step should look like so :

Step 9: Making an Outlet for the LEDs and Sticking Them Into the Frame

1- With the small wood saw, make an outlet next to a corner of the frame. This should be the same corner where a gap with the resilient tape as been made. (You want to make an outlet of 1in. in depth and 1/2in. in width)

2- Measure the length of the LED strip needed. You can add 2 in. to your measurement to prevent miscalculations. This extra length will also let you reach the connection of the LEDs to the breadboard.

3- Place some newspapers under the are you will work. Put dish gloves to while working with the silicone.

4- With a small nail, drill a tiny hole on the clear window silicone tube end. Reattach the tube end to the tube and place it into the caulking silicone gun.

5- Extract a small portion of silicone on the newspapers.

6- With the wooden Chinese stick, place some silicone on the inside of the frame. You want to create a rectangle fitting the LEDs width placed at the mid height of the frame.

7- Peel off the paper protector on the LED strip and stick the LEDs into the frame following the silicone guide previously made.

8- Once it's sticked, adjust the height of the LED strip. You want to make straight lines with the LEDs. This step is crucial in order to ensure the quality of the final product. Use a ruler an a angle iron to achieve this step successfully.

9- Make it dry for at least 30 minutes.

This video shows how I've done it. I applied the silicone progressively. However, I think it's more efficient to apply the silicone all at once and then the LEDs. It is also more easy for the adjustments. (see step #6)

Step 10: Finalization of the Glass

1- After respecting the drying time, cut the excess of the tinted film on the glass. You want to cut the excess very tightly with the glass.

2- Remove once again with the gift card any ondulations present on the glass.

3- With the glass polisher, clean the tinted side of the glass.

4- Working with the dish gloves on the newspapers, use the Chinese stick and apply silicone on the front part of the frame. You want to apply a very tin but thick ply of silicone close to the inside of the frame.

5- Stick gently the tinted side of the glass on the front part of the frame. It is important to stick the tinted side of the glass for it to face the inside of the frame. If this step is not done correctly, the whole infinite effect won't be present.

6- Adjust the position of the glass to be centered. The angle iron can be used to do so.

7- Leave the frame and the glass dry for about 24 hours.

Step 11: Fixation of the Mirror

1- Clean the mirror with the glass polisher using the microfiber linen.

2- Place the mirror, facing the interior of the frame. Line it up with the the resilient isolating tape.

3- Cut and place four duck tape piece straddling the frame and the mirror at the same time.

Note that the duck tape tape can be replaced by small nails fold to 90 degrees if your aiming for a more finished result.

4- Now plug LEDs's connection into the breadboard. Plug the breadboard to your power supply (respecting the polarity). Also plug the Arduino to your computer's USB port. And now TEST IT!

Step 12: Conclusion

Problems encountered

During this project many complications were encountered. For instance, one of the hardest part of this project was to find a mirror and a thin glass that had the same dimensions. After looking a while for these part, I realized that 11in. by 14in. was standard dimensions. This is why I decided to buy a photo frame with an embed glass and to find the mirror afterwards. Indeed, I found an old mirror in my garage that had exactly these dimensions.

Also, sticking the LED strip inside the frame was not easy (for them to be straight). At first, I sticked them taking no measure thinking that I could adjust it with my eye's accuracy. I realized that if it wasn't exactly straight, the inequalities would be amplified in the infinite mirror. This is where I decided to use a ruler and an angle iron to stick properly straight.

Finally, the connection of the circuit didn't work at first. I was using to powerful transistors and it wasn't letting the current pass. By using a voltmeter, I realized that all the current was stuck in the transistors. I then decided to use to transistors of smaller capacity, which were the PN2222A. After reconnecting everything, this circuit was running normally and finally working.


I used a limo black tinted film that was letting only 2.5 % of the light to pass. A less dark tinted film could be used to obtain a brighter effect. Also, a frame could be added over the tinted glass to have a more finished effect. The same goes for the fixation of the mirror, where folded nails at 90 degrees can be used to replace the duck tape. Furthermore, small screws could be insert in the back of the frame to hang it somewhere. Finally, the same project could be done a bigger frame and mirror to obtain a more majestic final result.



    • Space Challenge

      Space Challenge
    • Science of Cooking

      Science of Cooking
    • Spotless Contest

      Spotless Contest

    We have a be nice policy.
    Please be positive and constructive.