Там прошивка с преобразованием Фурье, звук получает по аукс и раскладывает на спектры, красный - низы, средние - зелёный и синий вверх соответственно. Вот как раз средние и высокие очень криво распознает, все в каше, но потом оптимизировать код и автоподстройку по громкости написать, будет идеально