beat detection with esp32. but how?

dear community,

I'm working on a project that is a LED matrix that reacts to the beat or rhythm of the music that's playing. like this one: https://www.instagram.com/p/B_5ThdBhUNb/?utm_source=ig_web_copy_link

if possible I want to do the audio processing and analysing on an esp32, I want to use an Arduino to send out the data to the LEDs. But I have no experience with programming processing and analysing of audio. The animations don't need to be too hard to make or draw for the Arduino.

so I thought that it was a cool project to learn this "skill". and went up being a rabbit hole of endless searching.

I have ordered and received 4 different microphones: max9814, max4466, SparkFun Sound Detector and an electret microphone with an lm358

what I want it to do or can do: FFT with beat detection, beat timing and silence detection

I already have some ideas on how it can be done. but don't know how I can code it into a functional program.

idea 1: use a low pass filter in combination with an opamp the low pass filter to filter out the higher frequencies and to the opamp to amplify the signal and feed it into the esp32 for filtering, processing and analysing of the signal

idea 2:

still use a low pass filter in combination with an opamp but feed it into an optocoupler. the low pass filter to filter out the higher frequencies and to the opamp to amplify the signal and finally, feed the amplified signal in the optocoupler so the esp32 can detect the signal strength and the frequency.

for the processing and analysing of audio:

https://github.com/Diod-dev/New_Visualizer_Skeleton/blob/master/New_Visualizer_Teensy/DDAudio.h https://github.com/Diod-dev/New_Visualizer_Skeleton/ or https://mathematica.stackexchange.com/questions/158396/detecting-beat-frequency-using-fft

diod-dev uses a teensy in combination with an esp32 or an fft library and do the coding by myself but I don't want to reinvent the wheel.

I hope that someone could help me with this journey and finally get to a working program that works