I recently had the idea for a project that would involve analyzing the frequency coming from a microphone input that would light up an LED strip that corresponds to the notes being played on a piano. Ideally, it would be portable and usable on acoustic pianos or keyboards. I have very little experience with using audio signals and Arduino together so I'm not quite sure how to go about doing it.
My LED strip is a WS2812B and the microphone is a KY-038. I know of the fft and fht libraries exist but I am also very confused on how they work. I'm also not sure if they're exactly what I need for this project.
That is tough. You need very skinny "bins" in the FFT to identify individual notes. Unfortunately or fortunately a real piano does not produce a single fundamental tone from each key. It would be very boring 'beep boop' music if it did. So every note has some energy in other frequency bands. Play more than one note at a time and it gets exponentially more complex.
If you can forget portable then you can put a detector (a switch) under each key and do it that way.
That makes sense, that's kinda what I expected. Would it be possible to just have it react to the rhythms instead of the pitches i.e. lighting up with the attack of each of note?
Sure. The most-commonly-used Arduino library for FFT comes from a music guy who had that exact same idea. Download the library and search the examples to find what you want.