Open tang158152 opened 1 month ago
Not really sure what you mean by rhythm points, but I'll assume you're asking about BPM detection. I said some stuff about BPM detection in this bug: https://github.com/liamappelbe/fftea/issues/36
Always try to break the problem down into simpler steps. This real time BPM detection on a streaming sound source is a pretty challenging problem, so you should start simpler and build up to that:
This is a hard problem, so no skipping steps. Build up to complex things bit by bit.
Ok, now for the actual beat detection algorithm in step 1, you might not actually need FFT at all. Try running the audio through a low pass filter, then calculate the moving average RMS volume, then look for peaks in that average. As I said in the other bug, there will probably be some noise in the beats you get, so you'll have to experiment with tuning the algorithm and debounce those beats.
I use the microphone to pick up the audio raw data of a song, and return 4100 sample points every 0.1 seconds, how should I get the rhythm point perceived by the human ear of this song, because we need to upload the rhythm point in real time with hardware, I have tried to use the sample point to convert RMS amplitude, or FFT, but there will always be rhythm points that cannot be collected, is there any solution to provide, I am a novice in audio, I can't understand many concepts of audio, I hope to provide an idea, thank you