24mm: distance series captured (cuts depend on 2nd-tone distance, confirming local mixing); w(d) inversion needs cleaner methodology (peak-window/domain issues documented); raw data preserved
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env python3
|
||||
"""mk_dist.py — two-tone spacing series: 500Hz + (500+d)Hz, equal amps."""
|
||||
import wave, numpy as np
|
||||
sr=44100; T=4.0; n=int(sr*T); t=np.arange(n)/sr
|
||||
ph=np.random.default_rng(31).uniform(0,2*np.pi,4)
|
||||
for d_hz in (200,400,750,1500):
|
||||
nm='d%d'%d_hz
|
||||
A=0.4248
|
||||
y=A*np.sin(2*np.pi*500*t+ph[0])+A*np.sin(2*np.pi*(500+d_hz)*t+ph[1])
|
||||
y=np.clip(y,-0.999,0.999)
|
||||
w=wave.open('/tmp/opencode/%s_in.wav'%nm,'wb'); w.setnchannels(1); w.setsampwidth(2); w.setframerate(sr)
|
||||
w.writeframes((y*32767).astype(np.int16).tobytes()); w.close()
|
||||
import re
|
||||
src=open('/tmp/opencode/f0.rpp').read()
|
||||
src=re.sub(r'RENDER_FILE "[^"]*"','RENDER_FILE "/tmp/opencode/%s_ref.wav"'%nm,src)
|
||||
src=src.replace('FILE "/tmp/opencode/f0_in.wav"','FILE "/tmp/opencode/%s_in.wav"'%nm)
|
||||
open('/tmp/opencode/%s.rpp'%nm,'w').write(src)
|
||||
print('distance series ready')
|
||||
Reference in New Issue
Block a user