import wave
import math

tablesize=256
samplerate=44100
freq=8000
duration=0.1




sintable=[]

for x in range(tablesize):
    print x
    sintable.append(int(127*math.sin((float(x)*2*math.pi)/tablesize)+127))


w = wave.open("out.wav", 'wb')
w.setnchannels(1)
w.setsampwidth(1)
w.setframerate(samplerate)
datalen=int(duration*samplerate)
w.setnframes(datalen)

reg=0

for x in range(datalen):
    angle = int(tablesize*(x*float(freq)/float(samplerate)))%tablesize
    value=sintable[angle]
#    w.writeframes(chr (sintable[angle]))
    if reg>=127:
        out=255
        reg=reg+(value-255)
    else:
        out=0
        reg=reg+value

    w.writeframes(chr(out))
        
    
