Since we want to do DESIGN something, idea is very important! Arduino actually is a very powerful software, as long as the idea is appeared , it should be realized by the arduino.
In our group, we are all interested in music. Therefore, we want to do something about music. Since we need to do something better and complex, a Sound checker which can check the whether the key of a sound is standard is suitable.
Firstly, we need to figure out the logic. If we want to check the key of the sound, we need to set a standard key, frequency is the best choice. Thus, we search the standard frequency on the Internet
And we got this! This is a code named "pitches.h", which made by Brett Hagman who is the author of function tone(). It is easy to understand that NOTE_C1 refer to the frequency of C--33. Then if we can match this frequency to the receiving sound, we can get a very good Sound-checker.
However, we found that it is difficult to realize this algorithm.
The problem is that how can we match the frequency to its own frequency range. For example, we have a sound C, its frequency should be 33, but I have an unstabilized sound whose frequency is 34, how can I let the program know it should be corresponded to key C but not C#?The error is only 1 hz, though we have the algorithm, the device might be more exact!
What's more, we actually don't know how to transform the receiving sound into frequency.
The picture above is the existed component called sound sensor which can be bought on TaoBao, but it can only give high and low two output when the volume of the sound is bigger than the threhold. Due to these reasons, we restruct our idea.
Actually, it took us a long time to find the standard frequency of every key. We don't want waste our effort, so we reverse our mind. Since we can't make a sound-checker, we can make a sound-laundry which always gives the standard key.
It starts at the software part, we don't need many devices.
You can main part of the code, it is not difficult. Tune and beat are all list, which contain the freqency of each key, and the beat of each key. The logic is simple,if there is any function you don't understand you can directly search it on the internet.
After finishing the compiling , you can connect the board. Therefore we get a initial mode!