graphic-eq.py 774 B

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