Electric Viola Update 1 (09/13/2024)
This is a quick sketch of what I imagine the design of the electric viola to look like as well as a todo list for the week.
Concerns:
I think that the modular tuner will be challenging to successfully implement. Detecting frequencies and outputting accurate results I think will be the most difficult part of this project.
Electric Viola Update 2 (09/22/2024)
This week I have put my focus towards determining what the best frequency detection algorithm will be for the modular tuning circuit. There are several ways to determine the frequency of an analog signal. Some of the factors that need to be taken into account for each algorithm: Accuracy, performance, and complexity. I will now cover some methods that I have researched and give some insights into each.
FFT (Fast Fourier Transform):
- There are several Arduino libraries that include this method of frequency detection so implementation shouldn’t be difficult
- Accuracy is a problem… especially when when the signal is not ideal and has noise
- In a non-ideal signal, harmonics are picked up and output as the fundamental frequency
Autocorrelation:
- This is probably the best option for non-ideal signals that have noise
- There is less documentation for this method than FFT, harder to implement
- Solves the harmonics problem!
Zero-Crossing:
- Easiest method to understand
- Computationally cheap
- This method falls apart when the input signal is not ideal, bad accuracy
After reviewing these methods of frequency detection I believe that the best choice will be Autocorrelation. Although there is less documentation on using this method for a tuning device, using autocorrelation will provide the best accuracy out of these options. Accuracy is critical for a tuning device and we want to maximize our resolution. The problem of harmonics is the pitfall of the FFT method. Harmonics are signals that are some multiple of the fundamental signal (see image below). When the signal is not perfectly ideal like a sin wave, the FFT method picks up some of the harmonics and displays them as the fundamental signal. Autocorrelation does not have this issue because of how the frequency is calculated.
Image Source: https://en.wikipedia.org/wiki/Harmonic
Reflecting on the past week:
I was able to complete each of the tasks I set out for myself last week. Looking towards this next week I have a few goals:
- Begin creating an autocorrelation algorithm for the tuner
- Redesign the tuner circuit with Lauren
- Order components for tuner circuit
I still have some concerns with the tuner. I am hoping we are not in over our heads as the tuner has been the most difficult part of this project to get right. Tuning to a specific note accurately is hard. I will continue to try my hardest and will make the most accurate tuner that we can.
Electric Viola Update 3 (09/29/2024)
Electric Viola State Diagram:
Review of past week:
I completed every task except for completing the autocorrelation algorithm. That will have to be pushed into this week.
To Do List:
* Continue to work on autocorrelation algorithm
* Preform more tests on the metronome circuit and adjust code as needed
* Get at least a prototype of the tuner circuit up and running