The project

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

An exaggerated animation of a metal plate vibrating at one of its modes

Data collection

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

Assorted links

Data processing

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

Python Program

TSV file containing point coordinates and magnitude of deformation at certain frequencies

TSV file containing point coordinates and magnitude of deformation at certain frequencies

STL of metal plate

STL of metal plate

Data visualization

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.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6165955a-49e3-4a05-bf32-0d792e11f0c5/ezgif.com-gif-maker_(3).gif

Increasing efficiency with test automation

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


Collecting audio data with a Raspberry Pi

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.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7c625f94-1bf8-458f-98dc-ce1dda554335/Rig-1.jpg

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/10f5cc38-9e0a-4de1-a93e-eb84ce6bfb4e/Untitled.png

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

Powered by Fruition