Building an advanced guitar tuner with special features with a seeduino and a grove starter kit

I really like technology and want to start playing the guitar. I would like to make an arduino guitar tuner with some advanced features so as a beginner I don't break strings or mess up like I did yesterday... Anyways, advice on this would be very appreciated and helpful. I'm new to arduino and coding. Right now I only have a seeduino and a grove starter kit. I have ideas of what parts I could use to make this happen, but no idea how to code any of it. I want to use a RGB LCD to display the the UI(which I am not completely sure how the UI will look yet) as well as have a moving RGB background just for funzies. Anyways, I will use the piezo buzzer to give me a pitch to try to tune to and then the sound sensor to find the frequencies that I am playing and tell me how well they correlate with the frequencies of the notes I should be playing. I want to have it be able to switch from standard tunings to alternative tunings for diffirent notes on each string correlating to different frequencies when I hold the standard button piece down for a few seconds and keep scrolling if I hold it there. I will find the frequencies of the notes and standard and alternative frequencies here: https://en.wikipedia.org/wiki/Guitar_tunings
I want to be able to switch strings that I'm tuning when I tap the button as well. I would like it to show me visually how close I am and give me green or red on a bar to see if I'm close to the right frequency but also in text on the screen how close to the frequency I am with numbers and -/+ to show if I'm above or below it by that much. I want it to tell me whether to turn the tuning knob clockwise or counter-clockwise so I don't go the wrong way and break a string. I also want it to flash bright red and give me a warning saying that my string will break soon if I don't stop turning the knob. I would also like the piezo buzzer be able to play coded songs/notes to be played in the background while I play to make a little harmony if possible lol. I would like the piezo buzzer to be adjustable with loudness with the knob and also with the pre-written music to have different dynamics of loudness at different parts of the song. If we could add in some mini-games to this as well, that'd be sick. Like a pitch tester where it gives you a note and you have sing it and it will tell you how close you were to hitting it and what note you actually hit or a mode where it makes a note with the piezo buzzer and you have to play that on the guitar and see if you can remember what each note sounds like. Maybe a game where you try to play the next few notes after hearing the first few of a song or the reverse of that. Maybe A rhythm game where you have to hit the button at the right time and you get a score on how in rhythm you were with the song. Maybe a mode where it gives you random alternative tunings to make songs with. Maybe a mode where the color on the LCD coordinates to a note you have to play or maybe like a mini rock band on the LCD idk lol. So many different things you could do with this so I will stop now haha... Sorry for talking you to sleep but if anybody could help me code this monstrosity of an idea or something similar, I would really appreciate the help. This seems pretty advanced but I really wanna try it even though this code will be huge and take me forever to type haha. I just need some help knowing how to do these various things. Anyways, I appreciate any responses! Thanks so much guys!

Line breaks are free.

1 Like

Not if you get the guitar off of amazon and you don't want to go drive to get it fixed and waste some time. Plus this project would do many other things as well.

Whoooooosh

3 Likes

@typro
Start here: How to get the best out of this forum

Your post is unreadable, too long, no breaks, not clear explanation of what you want, what you've tried and what help you need. The folk here want to help, but you have to show signs of trying to do stuff yourself and you have to be clear about what you want.

Good luck with your project.

The issue is I don't know what to try because I don't know the code for any of these things. Sorry for making it so long by the way, I just wanted to put all of the info of what I might need help learning how to code on there. I'll read the thing but I don't think it will help too much, I already sent this with all my info and if it wasn't completely clear that is because I didn't read over it a bunch of times so it wouldn't take me multiple hours, I just wrote what I was thinking and what I wanted on the project. But I don't understand how I wasn't clear with what I wanted, I specified everything I wanted. I mean most of it was me explaining exactly the features I wanted... I'm sorry I just don't understand what you are saying here. Did I break rules or something? Or do I just have to write a perfect essay if I want to get some help on an online forum?

Line breaks please

No, but a line break here and there helps with readability. And structuring your text instead of writing stream of consciousness does help to get your message across. Ever tried to read Finnegan's Wake, or Ulysses?

That's nice. So now get started making it, and when you get stuck, report back and ask your questions.
Just to be perfectly clear on this: this forum is not an online shop for free code.

sp. "Finnegans Wake"

I've never tried but it seems that most people trying to build a guitar tuner with an Arduino fail. :frowning:

As you may already know, musical instruments don't put-out a "pure" single-frequency tone. There are harmonics & overtones and that's what makes a guitar sound different from a trumpet and it's what makes two singers sound different when they are singing the same notes. That's ONE of the factors that makes it tricky to detect a note or the fundamental frequency.

From what I've read the autocorrelation method works better than FFT or FHT. And you might get better results with one of the faster versions of the Arduino.

Realistically, you are probably better-off buying a tuner or looking for a phone or computer application. Maybe you want to build your own with some "fancy features" or maybe you'll want to write your own computer application, but that's probably going to take a few weeks or longer (and it may never work perfectly) and I assume you want to start learning the guitar NOW?

Apologies.
Apologie's.

I don't even know how to start writing the code yet, I just want understanding of how this works so I can start figuring out how to make it all work together.

Just like a baby can't walk at birth because you tell it to walk, I can't just type random letters, symbols and numbers and then say "now work!" and have it do my code. I have to understand how this stuff even works in general first.

Like I said I have almost no coding experience. This is my first project I'm trying to do without complete guidance.

Please don't be so harsh, I'm trying to get help and I do not know what to do at all right now.

I do not wish for free code, just for an understanding of how coding works and what types of lines I should put in by myself to make this.

I just don't even know how to start...

Ah. I have two suggestions:
1: Buy a book. There are several, some even come as kits with some components to experiment with. They tend to contain examples for different kinds of tasks that you can re-create by yourself and gain knowledge that way.
2: If you're not into books, get an Arduino of your choice and start with making it do simple things. Make the onboard LED blink, have it write text to the Serial port that you can read on your computer, etc. Use Google a lot for examples, and YouTube if you're into that.

In both cases: start simple. Forget about your big project for now. Start with getting an LED to blink, then take it from there.

For clarity's sake: this is also not an online school. Sorry to be harsh again, but there seems to be a mismatch between your expectations and what this forum is.

Thanks for the response, I really appreciate it.

I want to learn now, yes, but I already have a cheap tuner that works for now that I can use, but I want one that has more details and more options for things to do.

An even larger part of the reason I want to do this is because I want to code something awesome. Not because it won't take me a while.

I was already expecting this to take months to finish.

Oh and if I remember correctly, the link I sent is specifically for guitar, if it sounds wrong though, I can try some adjusting and trial and error of the frequencies.

Ok, thanks.

That's a good starting point. I'd propose to actually change it into this:

Oh and also another reason I looked here is because when I search online, they use arduinos without the kit where you just snap on the parts.

I have that kit and the coding is a bit different. You don't use the breadboard when you are using he kit so it was just a bit different and that confused me a bit, I couldn't figure out how to edit the code to make it compatible with the kit I was using.

Who are they? What do you mean by 'snap on the parts?

Ok...different kits for different folks I suppose. In the end it doesn't matter if you're using a breadboard or not, as long as the connections you make are reliable enough.

Just people online trying to give tutorials and stuff.

I guess I just mean instead of connecting the small wires individually you just kinda connect the wires in a simpler and more organized way to a little board that connects to the top of the arduino.

This is what I have: grove starter kit
grove kit

It's like a breadboard technically but just different and when you specify where you plugged in the components it is written in the code differently.

Ok, well, a microcontroller doesn't care how the physical connections are made, as long as it's told correctly how everything is connected. I'm not familiar with any custom Grove libraries and if/how they differ from other libraries. It doesn't matter either, though; to get your feet wet, all you need is an Arduino board (no Grove stuff, breadboard etc.) and make that onboard led go on and off all by itself.