midi2-dev / MIDI2.0Workbench

MIDI 2.0 Testing Tool
MIT License
41 stars 5 forks source link

The tool treats "x-" named properties as MMA/AMEI defined resource and reports error if it has canSet #4

Closed atsushieno closed 8 months ago

atsushieno commented 8 months ago

I have been implementing MIDI-CI from full scratch, and it now interoperates with MIDI 2.0 Workbench to some extent. Through the development I noticed that MIDI 2.0 Workbench incorrectly rejects x- named properties.

I have X-name1 and x-name2 properties on my device. MIDI 2.0 Workbench reports a Warning with related to x-name2 like:

Do not set x-name2 canSet Property in ResourceList

resulting in reporting it an error as well:

x-name2 is not a valid defined Resource.

Note that X-name1 is regarded as manufacturer-specific resource and canSet (as full or partial) does not trigger any validation error.

The Common Rules for Property Exchange v1.1 (M2-103-UM_v1-1) specification, at section 4.1.4, specifies:

Manufacturers may wish to include their own specific information inside MMA/AMEI defined Resources (see Section 6). This shall be accomplished by including a manufacturer-specific Property with a name prefixed with "x-". Manufacturer-specific properties shall conform to all other format rules defined by Property Exchange specifications.

It treats x- as a manufacturer resource, so this should "also" be allowed.

starfishmod commented 8 months ago

Hmm this might be a misreading of the spec. Properties start with "x-", while Resources start with "X-". See Section 6.4.

i.e. Manufacturer Resource start with "X-" (note the capitalization). It will fail the test if it's "x-". Does "X-name1" work?

I am currently working on an update for the spec - I might add a clarification between the two.

atsushieno commented 8 months ago

Oh, so the "property names" are different from "resources" (top-level entries). I did not notice the difference. Thanks for the clarification.

atsushieno commented 8 months ago

And forgot to mention, yes, X- works as expected.