from connection import * from audioHandler import Listener import numpy as np import time matrix = SerialConnection() matrix.open() pitches = [(2**(1/12))**(n/11*12*7-24) * 220 for n in range(11)] audio = Listener(1/30, 30) audio.start() nFFT = audio.buffersize audio.fftSetLimits(nFFT, min(pitches), max(pitches)) audio.agcFftSetLimits(60/60, 300/60) while True: if audio.hasNewData(): left, right, fft = np.copy(audio.left), np.copy(audio.right), np.copy(audio.fft) sums = audio.fftGroup(fft, pitches) data = [0] * 50 for row in range(N_ROWS): for col in range(N_COLS): val = 15 if sums[col] > ((N_ROWS-row)/N_COLS/2) else 0 data[row*N_COLS+col]= val print(data) matrix.send(b'A' + bytes(data)) time.sleep(1/40)