summaryrefslogtreecommitdiff
path: root/tools/gen_sine_440.py
blob: 6458dc8cdda77abdb0a7edef4b7f1b847b826dc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python3
import wave, struct, math

SAMPLE_RATE = 32000
FREQ = 440.0
DURATION = 1.0
AMPLITUDE = 32767

samples = [int(AMPLITUDE * math.sin(2 * math.pi * FREQ * i / SAMPLE_RATE))
           for i in range(int(SAMPLE_RATE * DURATION))]

with wave.open("sine_440.wav", "w") as f:
    f.setnchannels(1)
    f.setsampwidth(2)
    f.setframerate(SAMPLE_RATE)
    f.writeframes(struct.pack(f"<{len(samples)}h", *samples))

print(f"Written sine_440.wav: {FREQ}Hz, {DURATION}s, {SAMPLE_RATE}Hz mono")