Я бы предложил написать фрагментный шейдер, в котором используются синусоидальные волны разной частоты, фазовых сдвигов и цветов (т. Е. Комбинируются x и y и время по-разному, смешайте их вместе, и вы должны что-то получить).
Чтобы цвета соответствовали музыке, попробуйте отфильтровать некоторые полосы частот, соедините интенсивность каждой полосы с цветовыми волнами выше и используйте некоторую фильтрацию по времени для интенсивности для каждой полосы.(то есть так, чтобы пиковая частота давала высокий выходной сигнал, который медленно снижается в течение 0,2-5 секунд.)