Аудио визуализация: отправка аудиоданных для визуализации в Pygame - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь сделать аудио-визуализатор, используя pygame, и я довольно застрял.У меня следующие недоразумения:

  1. Как правильно анализировать аудиоданные?

    В моем текущем подходе я сделал следующее:

    • Считать файл .wav
    • Сделал БПФ на выборке данных
    • Сортировать выходные данные
    • Передать минимальное, среднее и максимальное значения, нормализовав их какрадиус круга, который нужно нарисовать
  2. Как отправить данные, если я хочу создать различные прямоугольные блоки на их основе?

    В моем подходе1, так как я отсортировал данные, на самом деле это не дает мне необходимой визуализации.Если я хочу нарисовать 60 прямоугольников (скажем), какую часть списка я должен нарезать?

Мой текущий код:

def analyze(a,b):
rate,audData = scipy.io.wavfile.read("songs/wav/second.wav")
channel = audData[:,0] #left channel

CHUNK = 1024

a += CHUNK
b += CHUNK

print(len(channel))

fft_data = np.fft.fft(channel[a:b])
freq = np.absolute(fft_data)
freq = freq[freq <= 25000]
sorted_freq = np.sort(freq)
#print(sorted_freq)
#sorted_freq = sorted_freq
#print(sorted_freq)

r1 = int(( sorted_freq[0] / 22000 ) * 100)
r2 = int(( sorted_freq[int(len(sorted_freq)/2)+50] / 22000 ) * 100)
r3 = int(( sorted_freq.max()/ 22000) * 100)

return r1,r2,r3

Это действительно мой первый опыт работы с аудиоданными, я был бы очень признателен, если бы вы также могли дать общий обзор аудиовизуализация в целом.Я прочитал довольно много статей, но не смог понять концепцию.

...