24kk3: SLOT 540668 IS POLYMORPHIC — holds two float scalars (~0.43,2.0) between processing phases, pointer-to-FIR during callbacks; explains missing 668 in all new captures; GUI-curve slot 540678 matches audio ±5%
This commit is contained in:
@@ -517,3 +517,22 @@ R@5407f8 = единичная нормировка (все 1.0000 в этом п
|
||||
Объясняет ВСЕ аномалии дальних бинов разом: наши дальние res слишком
|
||||
велики (нет спада), их lvl занижен, каты недобираются. Формула ВЕСА —
|
||||
ключ к кросс-конфиг параметризации.
|
||||
|
||||
## ДОПОЛНЕНИЕ 24kk3: слот [ctx+0x540668] ПОЛИМОРФНЫЙ!
|
||||
|
||||
Прямой проб во время рендера: [ctx+0x540668] содержит
|
||||
`3fdbcd8940000000` = ДВА FLOAT (~0.434, 2.0), НЕ указатель!
|
||||
(пробник probe_668.py; EIO на части чтений — слот мигрирует).
|
||||
|
||||
### Следствия:
|
||||
1. rendersnap2 пропускает слот 668 (ptr<0x10000 или мусорный ptr) ⇒
|
||||
во ВСЕХ новых захватах (sc_multi4b, sc_tt*, sc_q*, ...) НЕТ FIR-массивов.
|
||||
2. Старые захваты rendersnap.py v1 ИМЕЛИ валидный FIR-указатель в эти
|
||||
моменты (ловили фазу обработки). Данные старых phase*.npz про FIR —
|
||||
валидны для своих моментов, но смешивать с новыми нельзя.
|
||||
3. Все «FIR mag» анализы через этот слот зависят от ТОГО, в какой фазе
|
||||
слот был пойман: указатель-на-буфер vs скаляры vs сброс.
|
||||
4. Значения скаляров (~0.43, 2.0) — кандидаты: att/rel? dry/wet? g-компоненты?
|
||||
### Статус
|
||||
Канонический путь чтения ПРИМЕНЁННОЙ маски: слот [ctx+0x540678] (кривая
|
||||
банды) — он стабилен и МАТЧИТ АУДИО в deep-фазах (±5%).
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
import struct, subprocess, time, os, glob
|
||||
def find_host():
|
||||
for p in glob.glob('/proc/[0-9]*'):
|
||||
pid=int(os.path.basename(p))
|
||||
try:
|
||||
cmd=open('/proc/%d/cmdline'%pid,'rb').read().replace(b'\0',b' ').decode('utf8','replace')
|
||||
maps=open('/proc/%d/maps'%pid).read()
|
||||
except Exception: continue
|
||||
if 'soothe2' in maps and 'reaper' not in cmd: return pid
|
||||
return None
|
||||
subprocess.run("pkill -9 -x reaper; sleep 1; rm -rf /run/user/1000/yabridge-soothe2_x64-*",shell=True)
|
||||
proc=subprocess.Popen(['/usr/bin/reaper','-nosplash','-ignoreerrors','-renderproject','/tmp/opencode/multi.rpp'],
|
||||
stdout=subprocess.DEVNULL,stderr=subprocess.STDOUT)
|
||||
t0=time.time();host=None
|
||||
while time.time()-t0<30 and not host: host=find_host();time.sleep(0.002)
|
||||
print('host',host,flush=True)
|
||||
fd=os.open('/proc/%d/mem'%host,os.O_RDONLY)
|
||||
ctx=0x2370040
|
||||
for k in range(40):
|
||||
try:
|
||||
b=os.pread(fd,8,ctx+0x540668)
|
||||
v=struct.unpack('<Q',b)[0]
|
||||
print('t=%.1f [ctx+540668]=%x' % (time.time()-t0,v), flush=True)
|
||||
except OSError as e:
|
||||
print('read fail',e)
|
||||
time.sleep(0.3)
|
||||
Reference in New Issue
Block a user