This project is all about using science to better understand violins. Modal analysis, in particular, shows us the way a body deforms and bends at certain frequencies and would provide more insight into how and why violins sound and the way they do. To learn how conduct modal analysis and to develop the general procedure for data collection, processing, and animation, I started with a simple circular metal plate.
An exaggerated animation of a metal plate vibrating at one of its modes
To collect frequency data I used an accelerometer stuck to the metal plate which I then hit with a precision impact hammer at 8 locations around the perimeter. I collected the frequency data with Chris Rogers' Obie App.
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a0660c17-031f-4a56-9a9d-2bed5d83006a/hammer_hits_by_hand.mp4
Next, I wrote a Python program that takes the imaginary values of the frequency response function (FRF), finds the peaks, couples the correct coordinates to each tap, and converts it into a TSV file. This essentially gives us values of the magnitude of oscillation at each of 24 points on the plate, and for the first ~7 most signification modes of vibration.
Python Program
TSV file containing point coordinates and magnitude of deformation at certain frequencies
STL of metal plate
Finally, I used a visualization software called ParaView to combine an STL of the plate and the processed TSV file to create an interactive animation of the plate warping according to the modes.
I compared this to a modal analysis simulation I did on onscale.com of the same plate.
Because the data collection of hitting the plate with the hammer at each point was quite laborious, I set up and programmed (in Python) a 2 axis traverse system that automatically moves to a certain number of points on the plate and hits the hammer at each point. This is also in preparation for having a CNC automatically take the data on an actual violin which is the next step.
Two-axis traverse system automatically taking data
Two-axis traverse system automatically taking data
At the beginning of the summer, I also worked on a Raspberry Pi powered way to collect impact hammer and microphone data from the violin rig. This rig ****is designed (not by me) to collect and analyze data about how a violin sounds.
The point of the Raspberry Pi is that it replaces the Octa-Capture USB audio interface which costs ~$500. The Raspberry Pi and HiFiBerry hat cost ~$100 total.
The Python program I wrote on the Raspberry Pi reads the data, waits until the hammer signal spikes (which means that there has been a hit), and then records the hammer and mic signals. It also has a buffer that it records from.
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/87ed902d-290d-416a-8860-60e76d5ce143/plotting_vid.mp4
<aside> 📌 I worked on this project while working at the Tufts CEEO (Center for Engineering Education and Outreach) the summer before my sophomore year at Tufts. See my resume for more.
</aside>
<aside> <img src="/icons/home_blue.svg" alt="/icons/home_blue.svg" width="40px" /> Home
</aside>
<aside> <img src="/icons/document_green.svg" alt="/icons/document_green.svg" width="40px" /> Resume
</aside>
© Jesse Gilbert 2024