Great music is a window into the sublime. We created Musical Cocoon, an all-encompassing and transformative audiovisual art experience. We built an enclosed “cocoon” to symbolize transformation. A user may pick any song they desire to experience. Inside the cocoon, the viewer's inputted song is synchronized to lights embedded inside, and the cocoon twists as music climaxes.
Related products, work and inspirationsStructurally, our cocoon is similar to a mini Karaoke boothor a mini vocal booth, where there is a small enclosed space for a person to stand in where music is playing/they are singing. Functionally, our project is different in that the goal is for the viewer to experience the music, lights, and motion together. We take inspiration for audiovisual works, from artists such as Rafael Lozano-Hemmer, where music and lights are meaningfully coupled together.
Summary of Milestone 1For Milestone 1, we conceptualized the project idea, requested for materials, and considered 3 different ways of interaction scheme, and settled on user choosing the music and the music affecting the movement and lighting of the cocoon.
Summary of Milestone 2For Milestone 2, we created the frame and structure for the cocoon, iterated on scaling the contract/expand pulley system, tested different ways of controlling a rotational movement for the pulley system, analyzed music, and programmed lights.
Robotic system- Cocoon and platform
The shell of the cocoon was held up by two light stands, each folded at 90 degree angles, interconnected together and secured with zip ties. The cocoon shell was hung at the middle of this frame using zip ties. The cocoon itself had two layers; an outside layer to hold lights and keep a fixed shape and an inside layer that would spin around the user. The outer layer held a pair of white curtains secured around a wooden ring that was balanced and hung on the frame using strings and zipties. These curtains hung down and gave the outer shape of the cocoon. They are also what the lights were pinned to, giving space for the lights to be hung and pinned without interfering with the inner layer. The inside layer was hung separately. It was composed of two rings, both 3D printed to be lighter and easier to move. The top ring consisted of two 3D printed half rings that were fastened together and attached to the gears that would eventually spin the entire inside layer. The lower ring was added to create more space for the user to perceive the experience. A pair of inner light, white curtains were sewn into the top ring and the lower and larger inner ring was sewn into the inside of the curtain. Each pair of curtains was sewn together barring one seam where the user could enter the cocoon. We also built a wooden platform that the user stands on during the entire experience.
- Motor system
We used a stepper motor with the label of "SL Motor SL42STH40-1204A." We drove the motor using a microstep driver set with the setting of have 1 amp, 1.2 PKCurrent, 1 Microstep, and 200 pulses per revolution. We powered our motor using a Meishile S-600-24 Power supply set to 24V.
Originally, we had designed and brought to fruition a pulley expansion and contraction system that would be attached to a motor below the platform the user was standing on. In fact, the bottom of the platform the user is standing on is layered pieces of laser cut wood that were the tracks for the pulley expansion system. However, after testing this mechanism, we realized that the motor wasn’t strong enough to create the amount of movement we wanted, and that the system itself had limited movement that did not match our ultimate vision for the cocoon.
Instead, we opted to move the motor above the user and have the entire inside layer spin via the smaller inner ring and a two gear system. There was a large gear in the middle, directly above the innermost ring. This gear had holes symmetrically placed on the inside to feed the strings from the innermost ring into a fastener. This fastener was a 3D printed piece that simply held each ring supporting string fixed, so as the gear below was spun in either direction the cocoon ring below would subsequently spin as well. This larger, main gear was rotated via another parallel, 3D printed gear that was spun by the motor. This entire gear-motor system was hung over the user, attached to the main light stand frame using wood planks, zip ties, and duck tape. We attached the string lights to the inside of the outer layer of curtains to soften the light and hide the wires, as well as for other practical motor rotational reasons. The wires were taped to the outer light stand frame using black electrical tape to be hidden and out of the way of the user. All other electronics were hidden under the platform.
The motor system is hidden by a painted cardboard box.
- Soft addressable lights
We connected two Addressable Lighting Neopixel 50 LED Strip together, and secured them around the outer cocoon (the lights are between the inner and outer cocoon, and attached to the outer cocoon). The lights are connected to ESP's Ground, 5V, and the data wire is connected to GPIO4.
Software components- Interface
Users can pick between 4 moods that correspond to 4 different color schemes.
Users can also choose to input a custom mp3 file or YouTube link as well as a start and end timestamp for the part of the song they would like to experience the cocoon with.
- Youtube scrape
We use a python library to get an MP3 from a music video. The library works by creating a headless browser which has an embedded iFrame for the YouTube video. The playback speed of the iFrame is set to a high number and the audio from the iFram is recorded to an MP3.
- Music processing
We use the Python library Librosa to process the music. In particular, Librosa allows us to load MP3/ WAV files into an array where every item represents the amplitude at a specific point in time. Further processing tools allow us to extract when the downbeats of a piece of music are. We then mark out the volume of the piece at each downbeat. The volume is our guiding marker in determining the movement of the cocoon and the speed of light transitions.
We determine how fast the LEDs surrounding the cocoon should change based on how loud the volume of the music is at a given point in time. The louder the volume, the faster the change.
We determine how much to rotate the cocoon using a similar measure. The louder the volume of the music, the more the cocoon rotates.
In general, we always have 6 different volume ranges. The speed of LED changing and amount of rotation are fixed for each of the 6 different ranges.
- Future improvement
For future iterations of the project, we would like to program more complex interactions between the music, light, and spin movement. We changed the motor placement from being below the platform to being above the cocoon. We did not have time to build a more secure motor holder, and chose the cost effective and time efficient method: attaching wood planks and using duct tape for a tight fit. We would like to improve our motor system in future iterations.
Comments