Files

17 lines
926 B
Python

#!/usr/bin/env python3
"""mk_multi6.py — 6-tone multitone input + rpp clone."""
import wave, numpy as np, re
sr=44100; T=4.0; n=int(sr*T); t=np.arange(n)/sr
tones=(200.,500.,1000.,2000.,4000.,8000.)
ph=np.random.default_rng(51).uniform(0,2*np.pi,len(tones))
A=0.30 # per-tone amplitude (avoid clip: sum ~0.9 worst case)
y=sum(A*np.sin(2*np.pi*f*t+p) for f,p in zip(tones,ph))
y=np.clip(y,-0.999,0.999)
w=wave.open('/tmp/opencode/multi6_in.wav','wb'); w.setnchannels(1); w.setsampwidth(2); w.setframerate(sr)
w.writeframes((y*32767).astype(np.int16).tobytes()); w.close()
src=open('/tmp/opencode/t1k_base.rpp').read() # band1 freq will be patched to 500
src=re.sub(r'RENDER_FILE "[^"]*"','RENDER_FILE "/tmp/opencode/multi6_ref.wav"',src)
src=src.replace('FILE "/home/m/soothe-bt/tone1k.wav"','FILE "/tmp/opencode/multi6_in.wav"')
open('/tmp/opencode/multi6.rpp','w').write(src)
print('multi6 ready: tones',tones,'amp',A)