chore: add rt-capture artifacts (rtobj/rtsnap scripts, rwin_*.npy tables, dsp grep dumps, rpp param decoders)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import base64, re
|
||||
def decode(path):
|
||||
txt=open(path).read()
|
||||
lines=txt.split('\n')
|
||||
for i,l in enumerate(lines):
|
||||
if 'soothe2_x64.vst3' in l:
|
||||
b=[]
|
||||
j=i+1
|
||||
while j<len(lines):
|
||||
t=lines[j].strip()
|
||||
if t=='}': break
|
||||
b.append(t); j+=1
|
||||
raw=re.sub(r'\s','',''.join(b))
|
||||
raw=raw.rstrip('=')
|
||||
raw+='='*((-len(raw))%4)
|
||||
dec=base64.b64decode(raw)
|
||||
# dec is nested: outer base64 blob contains an inner chunked-xml whose first child is another base64 or actual xml
|
||||
# find '<PARAM ...' anywhere after utf8 decode of inner
|
||||
# Look for actual XML PARAM tags embedded (they are inside processorStateData attribute - base64 too)
|
||||
# Simplest: find 'band1 mode' bytes
|
||||
for pidname in [b'band1 mode', b'band1 q', b'band1 sens', b'band1 freq', b'band1 on']:
|
||||
i2=dec.find(pidname)
|
||||
if i2>=0:
|
||||
seg=dec[i2-60:i2+80]
|
||||
m=re.search(rb'<PARAM id="([^"]+)" value="([^"]+)"', seg)
|
||||
if m:
|
||||
print(f" {m.group(1).decode():16s} = {m.group(2).decode()}")
|
||||
return
|
||||
for f in ['/home/m/soothe-bt/t1kq_b1f_800.rpp','/home/m/soothe-bt/dual_b1q_0.1.rpp','/home/m/soothe-bt/dual_b1q_10.0.rpp','/home/m/soothe-bt/dual_b1q_1.0.rpp','/home/m/soothe-bt/t1k_b1f_1100.rpp']:
|
||||
print("=== ",f.split('/')[-1]); decode(f)
|
||||
Reference in New Issue
Block a user