#!/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")