import audiobusio
import math
import board
import array
import simpleio
import time

def mean(values):
    return sum(values)/len(values)

def normalized_rms(values):
    minbuf=int(mean(values))
    samples_sum=sum(float(sample-minbuf)*(sample-minbuf)
                    for sample in values)
    
    return math.sqrt(samples_sum/len(values))

#mic setup
mic=audiobusio.PDMIn(board.D8,board.D9,sample_rate=16000, bit_depth=16)
samples=array.array('H',[0]*160)

#last_input=0

while True:
    mic.record(samples,len(samples))
    magnitude=normalized_rms(samples)
    #print((magnitude,))
    mapped_value=simpleio.map_range(magnitude, 125, 500, 0, 16)
    input_val=int(mapped_value)
    print(input_val)