My Weekend Project: Musical Note Detector Using An Arduino

preview_player
Показать описание
This project shows an Arduino project that displays the approximate frequency as well as the musical note played on an electronic keyboard or piano app. For this project, the analog output from the sound module detector is sent to the A0 analog input of the Arduino Uno. The analog signal is sampled and quantized (digitized). Autocorrelation, weighting and tuning code is used to find fundamental frequency using the first 3 periods. The approximate fundamental frequency is then compared to frequencies in octaves 3, 4, and 5 range to determine the closest musical note frequency. Finally the guessed note for the closest frequency is printed to the screen.

Рекомендации по теме
Комментарии
Автор

I just saw the project on fritzing, I'm not even interested in music but I watched the full video because of the clear explanation. Nice Job

alvarom
Автор

Really happy I found this video and hope you make another one soon. You're probably familiar with the ability of some opera singers to shatter a wine glass by singing a particular note. I thought it would be fun to do something similar, but I would play a particular note on my clarinet and and a hammer would come down and smash the glass. After watching this video, I think I now have the tools to do this, so thanks!

marchelfman
Автор

I think it would be very helpful to make the program take a sound sample during the countdown to determine the ambient noise level, set a volume threshold based on this, and then when cued have it iterate repeatedly through the available sampling memory for even half of a second, sensing for when a sample’s amplitude exceeds the threshold.

ChronoGXay
Автор

This is a very interesting concept! If I were you, I would add an RGB LED that changes color according to the notes that you play!

Mr.Engine
Автор

Dr Clyde, your content is awesome, I hope you keep making more videos. Subscribed.

colinly
Автор

sir i want to ask something
i tried your project for my science experiment and i faced some problems because i change arduino UNO to ESP32
which part of your code should i change into make it works?

revabudiantono
Автор

Dr. Clyde, I want to know where to get the free code. I try looking for it but didn't find it

jephthahgyasi
Автор

Hey Dr.! I have a project at my job i really need help with. Is there a way we can get on a call to help me better understand how to execute it. I would really appreciate it!

justincook
Автор

Hi Doctor Clyde,
I measured the current of a mobile charger with a multimeter and i put a 1 ohm 3 watt resistor in series with the probes and the output of the charger and the output voltage and current is exactly the same as what written on charger.
I tried with other chargers and the results are exactly like what it should be.
Did i measure the current wrong?

mtrltoolman
Автор

Hi, would you be able to explain your code more in depth? I'm working on a school project that is very similar to what you've done here, and I'd love to get a better understanding of your code!

sarenazhang
Автор

Hello. Thanks for the project. I dont know why doesnt works... Would be possible to use MAX 4466 instead of DEVMO? Thanks

ItziarCarpi
Автор

does anyone know how to download the Arduino off his website ?

albertcalderon
Автор

this is useful for approx 1khz frequency detection from mp3 songs?

yourajbadgujar
Автор

In order to make the program display how close the played note was to the closest match in the storedNoteFreq array, I added the following in the section you titled "Find the closest note":

noteLocation = i;
cents = 1200 *
if (cents < 0) {
flatSharp = "flat";
cents = -cents;
} else if (cents > 0) {
flatSharp = "sharp";
} else if (cents = 0) {
flatSharp = "";
}

I then had this display in the printed output as...

Serial.println(octaveRange);
if (cents == 0) {
Serial.println("You nailed it!")
} else if (cents <> 0) {
Serial.print("You were ");
Serial.print(cents);
Serial.print(" cents ");
Serial.print(flatSharp);
Serial.println(".");
}

What do you think?

(NOTE: Don't forget to add "int cents = 0;" and String flatSharp = "";" to the variables at the very beginning.)

ChronoGXay
Автор

I'd change the text "calabration" into "Calibration" in the sketch....The way it is correctly spelled....Seems a bit sloppy this way...

muppetpaster
Автор

dude what's with the "Add to cart" $0.00 whole thing to download the code ? couldn't you just put it on github

errrick
visit shbcf.ru