Skip to content

gen3: never let the walk reclassify a catalog-known param - #87

Open
ptn wants to merge 1 commit into
sKuhLight:mainfrom
ptn:fix/walk-kind-reclassification
Open

gen3: never let the walk reclassify a catalog-known param#87
ptn wants to merge 1 commit into
sKuhLight:mainfrom
ptn:fix/walk-kind-reclassification

Conversation

@ptn

@ptn ptn commented Aug 30, 2026

Copy link
Copy Markdown

The on-connect self-describe walk's enum/float split is a numeric heuristic
(integral bounds + step/scale shape gated on a label-list probe) and it is not
reliable in either direction. On an FM3 fw13.0, DISTORT_INPUTSELECT (paramId 21)
walks as 'float' while the byte-identical REVERB selector (paramId 47) walks as
'enum' on the same device/build, and CABINET_LOCUT1/2 (paramId 62/63) walk as
'enum' despite being continuous Hz knobs.

The device-cache-over-static range merge let the walk's row win unconditionally,
so the bad classification silently overwrote the good one — INPUTSELECT reached
Axis as a bare numeric value instead of its LEFT/RIGHT/SUM L+R dropdown, and the
Cabinet Low Cut knobs rendered as dropdowns.

The static catalog's 'kind' is mined offline from the editor's own cache, so when
the walk disagrees on a pid the static table already classifies, trust the static
classification. The walk still wins everywhere else, including proving a NEW pid
the static table lacks, and still refines a same-kind float's display range.

The on-connect self-describe walk's enum/float split is a numeric heuristic
(integral bounds + step/scale shape gated on a label-list probe) and it is not
reliable in either direction. On an FM3 fw13.0, DISTORT_INPUTSELECT (paramId 21)
walks as 'float' while the byte-identical REVERB selector (paramId 47) walks as
'enum' on the same device/build, and CABINET_LOCUT1/2 (paramId 62/63) walk as
'enum' despite being continuous Hz knobs.

The device-cache-over-static range merge let the walk's row win unconditionally,
so the bad classification silently overwrote the good one — INPUTSELECT reached
Axis as a bare numeric value instead of its LEFT/RIGHT/SUM L+R dropdown, and the
Cabinet Low Cut knobs rendered as dropdowns.

The static catalog's 'kind' is mined offline from the editor's own cache, so when
the walk disagrees on a pid the static table already classifies, trust the static
classification. The walk still wins everywhere else, including proving a NEW pid
the static table lacks, and still refines a same-kind float's display range.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant