Dup Goto 📝

PythonSimpleSine1

PT2/aw/audio/dsp 07-31 13:46:45
To Pop
19 lines, 47 words, 348 chars Monday 2023-07-31 13:46:45
import sys
import math
import struct

duration = 10 # seconds

sr = 48000
bs = 48000 # do it as one block
freq = 440

from math import sin

samples = [sin((i/sr)*2*math.pi*freq) for i in range(bs)]
data = struct.pack("<"+("f"*len(samples)),*samples)
with open(f"{sys.argv[0]}_output.pcm","wb") as f:
  f.write(data)