schwinn / khtool

Tool to query or change settings of Neumann KH DSP speakers
MIT License
15 stars 2 forks source link

KH 150 shows "[404,{"desc":"address not found"}]" #7

Open fasblom opened 1 month ago

fasblom commented 1 month ago

Hi,

first - thanks for a great application.

I have some issues with some parameters showing 404s:

./khtool.py -i  en0 -q
Used Device:  Right
IPv6 address: [MASKED]
*** query device settings ***
{"device":{"name":"Right"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"[MASKED]"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"ui":{"logo":{"brightness":25}}}
{"osc":{"error":[{"audio":{"in":{"gain":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"in":{"phase_invert":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"level":100.0}}}
{"osc":{"error":[{"audio":{"out":{"dimm":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"osc":{"error":[{"audio":{"out":{"phase_correction":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"limiter_mode":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
schwinn commented 1 month ago

Hi,

can post the output of the commands below?

./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":null}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in":null}}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":null}}]}}'

fasblom commented 1 month ago
% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":null}]}}'

Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in1":{},"in2":{},"out":{},"in":{}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in1":{},"in2":{},"out":{},"in":{}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in":null}}]}}'

Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in":{"interface":null}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in":{"interface":null}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":null}}]}}'

Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq2":{},"eq3":{},"mixer":{},"solo":null,"phaseinversion":null,"mute":null,"level":null,"delay":null}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq2":{},"eq3":{},"mixer":{},"solo":null,"phaseinversion":null,"mute":null,"level":null,"delay":null}}}]}}
schwinn commented 1 month ago

Command structure is different between KH 80 and KH 150. Please post the output of these commands:

./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in1":null}}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in2":null}}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"eq2":null}}}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"eq3":null}}}]}}' ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"mixer":null}}}]}}'

fasblom commented 1 month ago
% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in1":null}}]}}'
Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in1":{"label":null}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in1":{"label":null}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"in2":null}}]}}'
Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in2":{"label":null}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"in2":{"label":null}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"eq2":null}}}]}}'
Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq2":{"type":null,"q":null,"gain":null,"frequency":null,"enabled":null,"desc":null,"boost":null}}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq2":{"type":null,"q":null,"gain":null,"frequency":null,"enabled":null,"desc":null,"boost":null}}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"eq3":null}}}]}}'
Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq3":{"type":null,"q":null,"gain":null,"frequency":null,"enabled":null,"desc":null,"boost":null}}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"eq3":{"type":null,"q":null,"gain":null,"frequency":null,"enabled":null,"desc":null,"boost":null}}}}]}}

% ./khtool.py -i en0 --expert '{"osc":{"schema":[{"audio":{"out":{"mixer":null}}}]}}'
Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"mixer":{"levels":null,"inputs":null}}}}]}}

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"audio":{"out":{"mixer":{"levels":null,"inputs":null}}}}]}}
schwinn commented 1 month ago

Thanks. I will upload a new version in the next days, which should support the readout of KH 150.

schwinn commented 1 month ago

I've uploaded a new version. Please test it and provide me the output.

fasblom commented 1 month ago

Hi,

I ran the new version and it is one defect in the code:

% ./khtool.py -i  en0 -q                                                           

Used Device:  Left
IPv6 address: fe80::[MASKED]
*** query device settings ***
Traceback (most recent call last):
  File "/Users/filip/dev/neumann/khtool/./khtool.py", line 1088, in <module>
    main()
  File "/Users/filip/dev/neumann/khtool/./khtool.py", line 1083, in main
    handle_device(args, device)
  File "/Users/filip/dev/neumann/khtool/./khtool.py", line 828, in handle_device
    query_device(device)
  File "/Users/filip/dev/neumann/khtool/./khtool.py", line 459, in query_device
    if not result:
           ^^^^^^
UnboundLocalError: cannot access local variable 'result' where it is not associated with a value

change

if not result:

to

result = re.match(pattern, version)  # Add this line
if not result:
   send_print(device, '{"device":{"name":null}}')
...

Now running the command start to generate more data:


% ./khtool.py -i  en0 -q

Used Device:  Left
IPv6 address: fe80::[MASKED]
*** query device settings ***
{"device":{"name":"Left"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"MASKED"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[0.0,-100.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}
{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["HISHELF","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,400.000,40.000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,1.000,0.500,0.700,0.700,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,-1.500,-4.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"desc":"post EQ"}}}}
{"audio":{"out":{"eq3":{"enabled":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]}}}}
{"audio":{"out":{"eq3":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq3":{"frequency":[45.961,62.121,117.911,141.972,355.576,36.698,835.079,95.061,77.711,40.297,86.408,122.744,29.536,1839.173,154.128,233.273,184.378,1175.337,108.975,36.242]}}}}
{"audio":{"out":{"eq3":{"q":[2.540,15.858,15.995,15.860,1.030,5.418,2.312,15.995,10.884,11.775,15.969,15.818,4.111,3.055,15.999,8.394,11.710,4.465,15.997,15.758]}}}}
{"audio":{"out":{"eq3":{"gain":[1.760,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq3":{"boost":[-17.159,-3.062,-5.474,-9.136,-6.189,10.894,-1.700,-11.374,-6.402,5.984,8.316,3.014,1.908,0.826,1.711,-2.067,2.968,-0.885,2.762,-2.997]}}}}
{"audio":{"out":{"eq3":{"desc":"calibration EQ"}}}}
{"device":{"name":"Left"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"MASKED"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"ui":{"logo":{"brightness":25}}}
{"osc":{"error":[{"audio":{"in":{"gain":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"in":{"phase_invert":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"level":100.0}}}
{"osc":{"error":[{"audio":{"out":{"dimm":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"osc":{"error":[{"audio":{"out":{"phase_correction":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"limiter_mode":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}

Used Device:  Right
IPv6 address: fe80::[MASKED]
*** query device settings ***
{"device":{"name":"Right"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"MASKED"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[-100.0,0.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}
{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"desc":"post EQ"}}}}
{"audio":{"out":{"eq3":{"enabled":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]}}}}
{"audio":{"out":{"eq3":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq3":{"frequency":[83.535,71.168,128.932,150.467,193.361,435.707,36.310,93.581,46.866,236.244,138.009,81.716,1678.511,942.918,66.353,124.155,40.945,290.743,104.377,54.612]}}}}
{"audio":{"out":{"eq3":{"q":[0.116,15.845,16.000,15.982,12.468,1.852,2.602,9.442,10.559,7.269,15.394,15.701,2.950,2.664,15.991,15.997,15.313,6.725,15.995,15.980]}}}}
{"audio":{"out":{"eq3":{"gain":[1.587,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq3":{"boost":[-3.073,-3.089,-3.054,-3.134,-5.180,-3.714,5.505,-7.459,-12.167,4.327,6.289,-5.866,0.861,-0.976,3.702,4.453,2.829,1.139,3.302,2.221]}}}}
{"audio":{"out":{"eq3":{"desc":"calibration EQ"}}}}
{"device":{"name":"Right"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"MASKED"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"ui":{"logo":{"brightness":25}}}
{"osc":{"error":[{"audio":{"in":{"gain":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"in":{"phase_invert":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"level":100.0}}}
{"osc":{"error":[{"audio":{"out":{"dimm":[404,{"desc":"address not found"}]}}}]}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"osc":{"error":[{"audio":{"out":{"phase_correction":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"limiter_mode":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
{"osc":{"error":[{"audio":{"out":{"equalizer":[404,{"desc":"address not found"}]}}}]}}
`
schwinn commented 1 month ago

Thanks! I've just uploaded the fixed version. There was also a "return" missing.

schwinn commented 1 month ago

Is it working now?

Can you provide me the output of the command below? ./khtool.py -i en0 --expert '{"osc":{"schema":[{"device":null}]}}'

fasblom commented 1 month ago

It is almost working. For some reason I don't get the eq3 values readout as I got before, not sure why though. Also it seems to linebreak a bit differently on the output.

% ./khtool.py -i  en0 -q

Used Device:  Left
IPv6 address: fe80::[MASKED]
*** query device settings ***
{"device":{"name":"Left"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"[MASKED]"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[0.0,-100.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}

{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false
,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["HISHELF","PARAMETRIC","PARAMETR
IC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMET
RIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,400.000,40.
000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,1.000,0.500,0.700,0.700
,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.
000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,-1.500,-4.000,0.000
,0.000,0.000,0.000,0.000,0.000]}}}}

Used Device:  Right
IPv6 address: fe80::[MASKED]
*** query device settings ***
{"device":{"name":"Right"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"[MASKED]"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[-100.0,0.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}

{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false
,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["PARAMETRIC","PARAMETRIC","PARAM
ETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARA
METRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,100.000,100
.000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,0.700,0.700,0.700,0.700
,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.
000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,0.000,0.000,0.000,0
.000,0.000,0.000,0.000,0.000]}}}}
 % ./khtool.py -i en0 --expert '{"osc":{"schema":[{"device":null}]}}'

Used Device:  Left
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"device":{"auth":{},"identification":{},"iden

Used Device:  Right
IPv6 address: fe80::[MASKED]
{"osc":{"schema":[{"device":{"auth":{},"identification":{},"iden
schwinn commented 1 month ago

Hmm, strange. The output of the second command is truncated. Are you still on the same machine? Do you use my fork of the pyssc library?

fasblom commented 1 month ago

I think it was a virtual python environment with the wrong pyssc installed.

This worked better:

% pip3 install https://github.com/schwinn/pyssc/archive/master.zip#egg=pyssc

Collecting pyssc
  Using cached https://github.com/schwinn/pyssc/archive/master.zip
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting zeroconf (from pyssc)
  Using cached zeroconf-0.135.0-cp312-cp312-macosx_14_0_arm64.whl.metadata (6.1 kB)
Collecting ifaddr>=0.1.7 (from zeroconf->pyssc)
  Using cached ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
Using cached zeroconf-0.135.0-cp312-cp312-macosx_14_0_arm64.whl (4.8 MB)
Using cached ifaddr-0.2.0-py3-none-any.whl (12 kB)
Building wheels for collected packages: pyssc
  Building wheel for pyssc (pyproject.toml) ... done
  Created wheel for pyssc: filename=pyssc-0.0.3-py3-none-any.whl size=5625 sha256=ff80b638622aa04619f74139f80ac1dcdda4512d88bba06b9bb8b794607edec8
  Stored in directory: /private/var/folders/sk/mtcgys5n1d5cv14zpgnqrr280000gn/T/pip-ephem-wheel-cache-25wqnafg/wheels/b3/44/2e/5e5a9164e53aa6980eea16cb93bee6b95780ed0d813c6b4760
Successfully built pyssc
Installing collected packages: ifaddr, zeroconf, pyssc
Successfully installed ifaddr-0.2.0 pyssc-0.0.3 zeroconf-0.135.0

[notice] A new release of pip is available: 24.0 -> 24.2
[notice] To update, run: pip install --upgrade pip
(env) filip@mymac khtool % ./khtool.py -i  en0 -q
Used Device:  Left
IPv6 address: fe80:[MASKED]
*** query device settings ***
{"device":{"name":"Left"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"[MASKED]"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[0.0,-100.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}
{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["HISHELF","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,400.000,40.000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,1.000,0.500,0.700,0.700,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,-1.500,-4.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"desc":"post EQ"}}}}
{"audio":{"out":{"eq3":{"enabled":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]}}}}
{"audio":{"out":{"eq3":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq3":{"frequency":[45.775,49.390,62.472,77.266,94.209,32.654,733.430,87.970,182.772,334.486,38.132,45.152,126.447,1710.173,27.070,53.941,107.698,245.017,32.150,140.069]}}}}
{"audio":{"out":{"eq3":{"q":[0.115,15.998,16.000,16.000,15.991,4.289,1.635,10.559,5.230,2.393,9.719,11.053,13.212,2.000,7.631,11.935,15.989,5.990,14.336,14.523]}}}}
{"audio":{"out":{"eq3":{"gain":[1.760,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq3":{"boost":[-6.473,-9.477,-3.128,-4.285,-3.025,8.924,-2.159,10.663,4.249,-1.509,5.670,-5.947,3.931,0.654,3.725,-2.802,3.451,-1.419,-2.593,-2.375]}}}}
{"audio":{"out":{"eq3":{"desc":"calibration EQ"}}}}

Used Device:  Right
IPv6 address: fe80:[MASKED]
*** query device settings ***
{"device":{"name":"Right"}}
{"device":{"identity":{"vendor":"Georg Neumann GmbH"}}}
{"device":{"identity":{"product":"KH 150"}}}
{"device":{"identity":{"serial":"[MASKED]"}}}
{"device":{"identity":{"version":"1_1_11"}}}
{"device":{"standby":{"enabled":true}}}
{"device":{"standby":{"auto_standby_time":90}}}
{"device":{"standby":{"level":-65}}}
{"device":{"standby":{"countdown":90}}}
{"audio":{"in":{"interface":"ANALOG ONLY"}}}
{"audio":{"in1":{"label":"ANALOG LEFT/A INPUT"}}}
{"audio":{"in2":{"label":"ANALOG RIGHT/B INPUT"}}}
{"audio":{"out":{"level":100.0}}}
{"audio":{"out":{"mute":false}}}
{"audio":{"out":{"delay":0}}}
{"audio":{"out":{"solo":false}}}
{"audio":{"out":{"phaseinversion":false}}}
{"audio":{"out":{"mixer":{"levels":[-100.0,0.0]}}}}
{"audio":{"out":{"mixer":{"inputs":["../../in1","../../in2"]}}}}
{"audio":{"out":{"eq2":{"enabled":[false,false,false,false,false,false,false,false,false,false]}}}}
{"audio":{"out":{"eq2":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq2":{"frequency":[100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000,100.000]}}}}
{"audio":{"out":{"eq2":{"q":[0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700,0.700]}}}}
{"audio":{"out":{"eq2":{"gain":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"boost":[0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq2":{"desc":"post EQ"}}}}
{"audio":{"out":{"eq3":{"enabled":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]}}}}
{"audio":{"out":{"eq3":{"type":["PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC","PARAMETRIC"]}}}}
{"audio":{"out":{"eq3":{"frequency":[45.814,94.586,77.661,117.824,150.054,193.998,420.971,38.049,942.254,88.656,122.483,1732.822,83.429,130.196,102.637,88.596,61.261,122.694,111.971,164.266]}}}}
{"audio":{"out":{"eq3":{"q":[5.979,15.947,8.235,16.000,15.778,6.945,1.557,5.716,2.506,16.000,16.000,2.766,16.000,15.995,16.000,16.000,16.000,16.000,15.993,15.984]}}}}
{"audio":{"out":{"eq3":{"gain":[1.077,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000,0.000]}}}}
{"audio":{"out":{"eq3":{"boost":[-11.536,-7.858,-7.917,-3.657,-5.339,-5.548,-4.984,5.465,-2.093,4.965,3.024,0.416,-1.985,-3.316,1.948,1.365,-2.072,2.264,-2.333,-0.574]}}}}
{"audio":{"out":{"eq3":{"desc":"calibration EQ"}}}}

(env) filip@mymac khtool % ./khtool.py -i en0 --expert '{"osc":{"schema":[{"device":null}]}}'

Used Device:  Left
IPv6 address: fe80:[MASKED]
{"osc":{"schema":[{"device":{"auth":{},"identification":{},"identity":{},"network":{},"standby":{},"update":{},"timeprecision":null,"time":null,"system":null,"restore":null,"name":null}}]}}

Used Device:  Right
IPv6 address: fe80:[MASKED]
{"osc":{"schema":[{"device":{"auth":{},"identification":{},"identity":{},"network":{},"standby":{},"update":{},"timeprecision":null,"time":null,"system":null,"restore":null,"name":null}}]}}
schwinn commented 1 month ago

It looks fine. Thanks