Visual Beats

From ESE205 Wiki
Revision as of 16:41, 13 December 2016 by Ligao (talk | contribs)
Jump to: navigation, search


This project is inspired by Cymatics, the study of visualizing sound through the representation of physical mediums. The common method to visualize sound in Cymatics is by creating a frequency on a plate that vibrates a medium (such as sand or water) placed on top. The more in tune a frequency is to the plate, the more complex of a geometric shape (nodal lines) the sand creates. We initially plan on experimenting with an online frequency generator and a metal plate in order to see different kinds of standing waves we can form. Once we have found specific frequencies that resonate well with the plate, we will choose one frequency and convert it into a tone playable through a button all through the works of an Arduino. If this is successful, we will add more buttons with varying tones so that people can play around, creating their own beats in order to “see” what physical form their music takes on.

The Team

  • Sudeep Raj
  • Han Wang
  • Li Gao
  • Will Luer


  • Finding several frequencies that produce symmetric shapes [1]
  • Having at the least 1 diametric and radial node pattern that is playable on the Arduino button.
    • The higher the count on both diametric and radial nodes, the better
  • (Only if the former is successful) Add several more buttons that create shapes at other patterns
  • Balancing the plate
  • Reducing the noise on the plate


Most of the hardware we will use can be purchased, but there are still many foreseen challenges we will encounter:

  • We don’t know what the resonant frequencies of our specific plate are, so we will have to find them using a range of frequencies from 20Hz to 2kHz (range is considered in order to stay safe and based on an article that ran a similar experiment)
  • Preventing damage to exciter/amp (clipping, overheating, etc)
  • We may exceed our budget if our trials keep failing, so we need to form detailed plans on how we will run our experiments in order to prevent going over our budget
  • Assembling all our equipment in a neat and organized way for demo (for example: where we will be placing the amplifier and Arduino/circuit board as they are separate compartments to our main apparatus)
  • Perfectly leveling the aluminum plate onto the exciter
  • If we get to the point of adding more than one button: Transitioning between one frequency to another should be smooth and not abrupt



Est. Total

  • ~$145

Design & Solutions

  • As for the materials of our plate, there are several materials listed on the article we found that has been proved to work well with our exciter, including aluminum. However, the frequency range that is produced is influenced by different factors(i.e. different material and exciter pairing). So there is not too much data we can refer to, but we will have to do experiments and figure out by ourselves.
  • We plan on using a tub we bought from Walmart to control sand mess.
  • We will connect a 12 bit DAC to the Arduino board to generate a pure frequency(click the DAC to see the detail of the exact DAC). DAC will convert digital signal (which the arduino reads) to analog signal (which the amplifier can read).
  • First design:

we originally want to use a thicker rod attached to the certain of exciter (which directly contact the plate), so that it will give us more solid support. However, concerning the size of the exciter is too small, using a thick rod means we must use tape, superglue, or hot-glue. While tape gives too much flexibility, superglue and hot-glue are too permanent. We decide to use a slightly different design.

  • Second design:

To connect the exciter to the plate, we simply use superglue to glue them together. In order to have the most general sand patterns which contains the simple symmetry, we put the exciter at the center of the plate. In order to connect the plate part(together with exciter) to the platform, we decide to use a tiny machine screw which fits the size of the small hole on the exciter. We purchased and used 2 rubber elastomeric pads as damping pads placed on the diagonal line at the corners. The reason is, when frequency reaches to certain amount, the small damping from the pads should only reduce the infinite peaks at resonance to large and finite, but not change the shapes created. We understand that if have enough budget, we should use 4 instead of 2 pads, so that the remaining balancing problem will be solved as well.

  • Arduino Red Board: The design of our Arduino part is fairly simple. On our Arduino board, We only hooked up a 8mm headphone jack breakout board and a potentiometer. An audio cable then connects the headphone jack to an amplifier.
  • Code: We modified a sample code which originally plays a melody from Arduino digital pins. We then added [ Tone() function} to generates a square wave of the specified frequency (and 50% duty cycle) on a digital pin on Arduino board. In our final code we generated four specific frequency: 110Hz, 494Hz, 496Hz and 528Hz to pin 3.
  • Headphone Jack Breakout Board: This headphone jack can send the digital signal to whatever headphone/amp/speak it connects. Although it is a TRRS headphone jack, we only need to connect sleeve and tip pin for this project. For the hookup, we first break off a strip of 4-pins of 0.1" male header and stick the LONG pins down into a breadboard. We then place the breakout board on top so the short ends of the header stick up through the pads. Next we solder each pin using a soldering iron and solder, to make solid connection on each pin. After all pins are soldered, we connect the sleeve pin on the headphone jack to the digital pin on Arduino (which generates the frequency). Then we connect the tip pin to Arduino's ground pin.
  • potentionmeter: The potentiometer can be used as a variable resistance. Here it will be used to control an electrical potential (i.e., voltage), which the Arduino will be able to read via the analogRead(). Consequently, the potentiometer should be connected to an analog input pin. Here is the tutorial for the hookup.


The choices for the items under our budget are not arbitrary:

  • The amplifier and subwoofer were chosen based on an article found on in the American Journal of Physics (AAPT)[2]. The article conducted an identical experiment and recommended using an amplifier that outputs at least 15 Watts and thus a sub that can handle such power.
  • We concluded with a thickness of 0.063 for the Aluminum Sheet as as it satisfies the 6 assumptions presented in Kirchoff’s Plate Theory [3]

Reproducibility of different shapes do not rely on the assembly of the setup:

  • The only two factors needed to reproduce a shape found is by using the same frequency and the arbitrary boundary conditions created[4].
    • We will not be experimenting with different boundary conditions and will only be using the center of the plate as the point of excitation (unfortunately, this will reduce the chances of us finding complex symmetrical patterns, but will not restrict us too far);Also, placing our exciter at the center of the plate will buildup the standing waves on the plate, so that the desired sand patterns will be more obvious.






  • Successfully stored and used tones from the Arduino, which was controlled by a potentiometer.
  • We collected up to 7 patterns from 110Hz – 498 Hz
    • 110Hz - circle
    • 160Hz - square
    • 294Hz - sad mario
    • 528Hz - butterfly
    • 494Hz - vertical lines
    • 496Hz - horizontal lines
    • 498Hz - double infinity
  • Kept the plate somewhat balanced and stable for the demo
Comparing Results to Objectives
  • We were able to use one elastomer pad to balance out the plate and reduce the noise emitted by the plate.
  • We were successful in finding quite a few patterns, especially with a complex pattern turning out on 528Hz.
  • Not only did we have one frequency available to play, but were able to demonstrate others during demo.
    • We initially planned on adding more buttons to present the extra frequencies, but since we were limited in pins to use we resorted to using a potentiometer instead.
Critical Decisions
  • A major downfall of our project was the tiny screw that held down the exciter to the platform. Since this was the only support that held the speaker upright, it eventually ended up unscrewing. This happened right before the demo and caused us too long of a delay to reset the pads causing our plate to be slightly off balance and noisy during the demo.
  • Initially, we had stored one tone and one melody, that would play one resonating frequency during the chorus, to use on the potentiometer. During the demo, people wanted to see the other patterns so we erased the melody and added 3 extra patterns.
  • We decided to glue the aluminum plate straight to the exciter’s plate. We could have had even less flexibility and a stronger design if we had screwed them together.
  • (Comments on DAC)


  1. Rossing, Thomas D. "Chladni’s law for vibrating plates." AAPT. Scitation, June 1998. Web. 7 Sept. 2016.
  2. Jensen, Harald C. "Production of Chladni Figures on Vibrating Plates Using Continuous Excitation." AAPT. Scitation, July 2005. Web. 05 Sept. 2016.
  3. Tuan, P. H., J. C. Tung, P. Y. Chiang, H. C. Liang, K. F. Huang, and Y. F. Chen. "Resolving the formation of modern Chladni figures." IOP Science. N.p., 5 Oct. 2015. Web. 7 Sept. 2016.
  4. Jensen, Harald C. "Production of Chladni Figures on Vibrating Plates Using Continuous Excitation." AAPT. Scitation, July 2005. Web. 05 Sept. 2016.