В данной статье покажу как можно получить данные из аудио файла и подключить их к чему либо.
В моем случае я рисую вот такой график:
Создаем сцену. Добавляем в проект AudioStreamPlayer2D и подключаем скрипт.
(незабываем подключить в плеер звуковой файл)
В скрипте я вывел плеер в переменную, и подключил старт проигрывания по клику.
Метод который позволяет нам получить доступ к данным звукового файла называется get_magnitude_for_frequency_range(hz,hz)
Принимает в себя в качестве аргумента начальный и конечный диапазон в герцах. Возвращает при этом вектор !
Собственно чтобы получить доступ к этому методу нам надо сделать ровно две вещи :
1) Получить инстанс шины (bus) через get_bus_effect_instance
2) С настройках шины добавить эффект SpectrumAnalyzer (без этого вы не получите собственно сам выход на эффект в методе get_bus_effect_instance)
Ну а дальше всё просто.
Берем данные из get_magnitude_for_frequency_range и прикручиваем куда хотим. В моем случае я рисую линии через _draw.
Стартую цикл для того чтобы отделить разные диапазоны частот. В итоге у меня выходит 30 блоков (0-50, 50-100, 100-150, 150-200 и так далее), в итоге данные из каждого блока я подаю в данные длины линии.
Для красоты я добавил второй слой , который рисует кружочки над основным графиком в случае если звук достаточно «громкий».
На этом наверное и всё. Думаю вы уловили общий смысл.
Ставьте лайк, подписывайтесь на канал, вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !