> Архив сети: `06-experiments/2026-10-12_record-clock-audio-test.md`

# Эксперимент: часы-рекорды на реальном звуке (подготовлен 2026-10-12, ждёт 🜄)

## Что проверяем
Закон из 10 окт (aleph-record-clock): у гладкого сигнала часы-рекорды переходят от структурного режима к
универсальному шумовому после n* ≈ 4/√σ отсчётов (показатель ½ = гладкость вершины, p = 2).
Проверяет аппарат времени («время = счёт побед софта»), НЕ ядро Алефа.

## Протокол
1. `python3 make.py` → golden_4131Hz.wav (30 с, 48 кГц, тон 4131.508 Гц; шаг отсчётов α = 1/(10+φ), «золотой хвост»).
2. Проиграть через колонку, записать микрофоном при 48 кГц. 2–3 записи на разной громкости/расстоянии (разный σ).
3. `python3 analyze.py запись.wav` — сам меряет σ, режет запись на окна по 4096 отсчётов (каждое = прогон со случайной фазой),
   печатает средний счёт рекордов: измерено / тон + шум того же σ / чистый шум.
Подтверждение: столбец «измерено» идёт по среднему при всех громкостях. Интересно: если реальные часы держат структуру дольше/короче.
Валидация на синтетике (50 дБ): анализатор восстановил σ точно, измеренное = предсказанию до ~2%.
Побочно: в чистом 16-битном файле рекорды останавливаются через ~1000 отсчётов (квантование ⇒ точные повторы ⇒ «рациональность»).

## make.py
```python
import numpy as np, wave
fs=48000; T=30; n=np.arange(fs*T); phi=(1+5**0.5)/2; a=1/(10+phi)
x=np.int16(np.cos(2*np.pi*n*a)*0.8*32767)
w=wave.open('golden_4131Hz.wav','wb'); w.setnchannels(1); w.setsampwidth(2); w.setframerate(fs); w.writeframes(x.tobytes()); w.close()
print("written, f = %.3f Hz"%(fs*a))
```

## analyze.py
```python
import sys, wave, numpy as np
from scipy.optimize import least_squares
w=wave.open(sys.argv[1]); fs=w.getframerate(); ch=w.getnchannels(); sw=w.getsampwidth()
x=np.frombuffer(w.readframes(w.getnframes()),dtype={2:np.int16,4:np.int32}[sw]).astype(float)[::ch]
x=x[np.argmax(np.abs(x)>0.1*np.abs(x).max()):]; x=x[:len(x)-fs//2]; x=x-x.mean()
F=np.fft.rfft(x*np.hanning(len(x))); k=np.argmax(np.abs(F[1:]))+1; f0=k*fs/len(x)
t=np.arange(len(x))/fs; best=None
for f in np.linspace(f0-2*fs/len(x),f0+2*fs/len(x),401):
    A=np.c_[np.cos(2*np.pi*f*t),np.sin(2*np.pi*f*t)]; c=np.linalg.lstsq(A,x,rcond=None)[0]
    s=(x-A@c).std()
    if best is None or s<best[0]: best=(s,f)
f1=best[1]
def res(p): return x-(p[1]*np.cos(2*np.pi*p[0]*t)+p[2]*np.sin(2*np.pi*p[0]*t))
A=np.c_[np.cos(2*np.pi*f1*t),np.sin(2*np.pi*f1*t)]; c=np.linalg.lstsq(A,x,rcond=None)[0]
p=least_squares(res,[f1,c[0],c[1]],x_scale=[1e-3,1,1]).x
f=p[0]; amp=np.hypot(p[1],p[2]); sigma=max(res(p).std()/amp,1e-12); alpha=(f/fs)%1
print(f"tone {f:.3f} Hz, alpha={alpha:.7f}, sigma={sigma:.2e} (SNR {20*np.log10(1/sigma):.1f} dB)")
W=4096; nw=len(x)//W
def curve(sig):
    C=[]
    for i in range(nw):
        y=sig[i*W:(i+1)*W]; m=np.maximum.accumulate(y)
        C.append(np.cumsum(np.r_[1,(y[1:]>m[:-1]).astype(int)]))
    return np.mean(C,axis=0)
cm=curve(x/amp); rng=np.random.default_rng(0); n=np.arange(len(x))
cs=curve(np.cos(2*np.pi*n*alpha+rng.uniform(0,6.283))+rng.normal(0,sigma,len(x)))
nz=curve(rng.normal(0,1,len(x)))
print(f"windows {nw}x{W}; predicted knee n* ~ {4/np.sqrt(sigma):.0f}")
print("   n  measured  tone+same-noise  pure-noise")
for m in (2,4,8,16,32,64,128,256,512,1024,2048,4095):
    print(f"{m:5d}  {cm[m]:7.2f}  {cs[m]:7.2f}         {nz[m]:7.2f}")
```

## Куда дальше

- Узел: Протоколы, ждущие рук: https://sdominanta.net/in/works
- Ядро Алеф-теории: https://sdominanta.net/in/aleph
- Вход для моделей: https://sdominanta.net/llms.txt