Visual Sound Wave Speaker
In collaboration with Alberto Esses.
Goal
Recreating Melde’s experiment of standing waves on a string to create a unique visual and auditory experience.
Inspiration
Melde’s Experiment
A string attached to a vibration generator on one side, and a weight on the other, will create different standing wave patterns when different amounts of weight and frequency are applied.
Nodes on a String
When a string that has tension is vibrated at certain frequencies, it will produce standing waves on a string. The amount of waves, or nodes, depends on the combination of the length of the string, the type of material the string is made of, the frequency of vibration, and the tension of the string.
Waveform Function of a Song
The waveform function of an audio sample can be visualized as seen above. Where the waveform is the graph of the amplitude versus time. The goal of this project was to recreate this waveform function in the physical world.
Constraints
Vibration Generator
Cost
In order to recreate Melde’s experiment, a vibration generator and a function generator are needed. However, these components are meant for scientific purposes and therefore are very expensive. We needed to come up with a solution to perform the same function as these components but at a much cheaper price range.
Current costs of these components:
Signal Generator: $840
https://www.amazon.com/3B-Scientific-Function-Generator-Length/dp/B008N3H7J8/ref=sr_1_1?dchild=1&keywords=Power+Function+Generator+U8533600-115&qid=1601257437&sr=8-1
Vibration Generator: $228
https://www.amazon.com/3B-Scientific-U56001-Vibration-Generator/dp/B005LY474U/ref=sr_1_3?dchild=1&keywords=vibration+generator&qid=1601257403&sr=8-3
Function Generator
Function
The function generator sends signals to the vibration generator to oscillate in the up and down motion several dozens to hundreds of times a second. We needed to come up with a solution which recreated this movement without the need for these expensive and bulky components.
Experimental Setup
Efficiency
While these components perform the required job, they are incredibly bulky, require a lot of power, and are not able to be programmed for the specific needs of the project.
Possible Solutions
Slider Crank
Pros:
Provides desired function
Cheap
Cons:
Not elegant.
Did not fit into design and vision of project.
Eccentric Cam and Follower
Pros:
Provides desired function
Cheap
Fit into design and vision of project.
Cons:
Hard to incorporate into base of model due to required horizontal rotary motion.
Cylindrical Cam
Pros:
Provides desired function
Cheap
Fit into design and vision of project.
Easier to incorporate into base of model since it can be oriented different ways.
Cons:
Requires precision parts
Chosen Solution - Cylindrical Cam
Cylindrical Cam Design #1
I created a cylindrical cam design from scratch in SolidWorks to meet the needs of our project. The cam rotates and oscillates the follower with displacement in the y-axis. The problem with this design was the narrow and shallow path in its surface as well as not being very visually appealing.
Final Cam Design
To solve the issues from the design #1, I recreated the design to feature a conical cam instead of a cylindrical cam. I also increased the depth of the path and increased the width of the path. These changes also allowed the follower to be thicker which increased its durability.
Follower
The follower is made from a single piece of material and is placed inside the path of the conical cam to create the vertical oscillation movement as the cam rotates.
Creating the Master Assembly
Design Package
After discussing the needs of our project with team member Alberto Esses, we concluded that we needed to have speakers, a DC motor, a Raspberri Pi 4, the cam and follower design, and a power source (featured inside the base). I then created this design package including all of the components in a SolidWorks assembly for further development. The speaker, DC motor, and Raspberri Pi 4 3D models were taken from GrabCad and were not designed by me.
Design #1
After receiving a new design for the base from Alberto, I modeled it in SolidWorks and created a new assembly featuring a speaker on each of the four sides of the base, a motor, a Raspberri Pi 4 (not pictured in this assembly) and the power source (featured inside the base).
Final Design
We decided that in order to create a better auditory experience, we needed to include 8 more speakers, two on each side of the base, so that we could produce a better range of audio. We also refined the guide for the follower to be more elegant and added the conical cam design.
3D printed PLA conical cam
Creating a Physical Prototype
Using my 3D printer, I attempted to make a functional prototype. I began by preparing the model of the conical cam and follower for 3D printing using Cura. Once it had printed, I created a small structure in which a DC motor was attached to the conical cam and follower. However, this posed a new challenge as the repetitive movement of the follower on the cam started to destroy the PLA cam due to high friction forces. I am currently in the process of sourcing services to produce metal precision parts.
Renders
Renders by Alberto Esses
3D model By Alan Esses and Alberto Esses
My Role in Animation
Collaborated with Alberto Esses and Andres Guerrero to create a unique song for the animation.
At the artistic direction of Alberto, I modeled part of the environment in SolidWorks including the pathway and the stairs.
Wrote a program in python using Librosa library to sort through the coordinates of the waveform function (amplitude Vs. time) and sort them into different categories. This program works by finding the amplitude of each second of the song and comparing it to the previous second’s amplitude to give a value which we can call D. The value of D is then compared to the max amplitude of the list of coordinates, Dmax. If the value of D is greater than one fifth of Dmax but less than one fourth of Dmax, the coordinates at that time are stored and tell the motor to rotate at a speed which would cause 1 node be created on the string. This process is repeated to categorize every second of the song into a category of either 1,2,3,4, or 5 nodes. The categorization of the coordinates calculated from this program were used to create this animation so it matched the required number of nodes on the string at every point of the song.