From d68fa4782e971b8ea41204ef5898141efcb243af Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 18 Feb 2026 05:36:49 +0100 Subject: test(mq_editor): add isolated FFT test page and sine generator - tools/mq_editor/test_fft.html: browser test for fft.js (12 tests: DC impulse, single tone, STFT magnitude, pairs, triplets) - tools/gen_sine_440.py: generate 1s 440Hz WAV at 32kHz for manual testing handoff(Gemini): FFT isolation tests added, all passing in browser. --- tools/gen_sine_440.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tools/gen_sine_440.py (limited to 'tools/gen_sine_440.py') diff --git a/tools/gen_sine_440.py b/tools/gen_sine_440.py new file mode 100644 index 0000000..6458dc8 --- /dev/null +++ b/tools/gen_sine_440.py @@ -0,0 +1,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") -- cgit v1.2.3