MIDI 2.0 Conformance Checklist (Status Quo)
This document summarizes current implementation state against the MIDI 2.0 specifications. Each item links to concrete code and tests as evidence, and highlights gaps to close.
Property Exchange (MIDI-CI; M2-103-UM)
Negotiation flow: Implemented
- Evidence: Sources/MIDI2/MidiCiPropertyExchangeBody.swift:1, Sources/MIDI2CI/CIHandshake.swift:1, Tests/MIDI2Tests/MidiCiHandshakeIntegrationTests.swift:23
Large data transfer (chunking): Implemented
- Evidence: Sources/MIDI2CI/PropertyExchange.swift:60 (chunked GET/SET/NOTIFY), Tests/MIDI2Tests/PropertyExchangeChunkingTests.swift:1
Encodings: Implemented
- Evidence: zlib (conditional) and mcoded7 helpers in Sources/MIDI2CI/CompressionCodec.swift:1; tests in Tests/MIDI2Tests/PropertyExchangeCompressionTests.swift:1
Profile Inquiry and Enable/Disable: Implemented
- Evidence: Sources/MIDI2/MidiCiProfilesBody.swift:1, Sources/MIDI2CI/ProfileSession.swift:1, Sources/MIDI2CI/CIHandshake.swift:1; tests in Tests/MIDI2Tests/ProfileSessionTests.swift:1
Profile Configuration Details: Implemented for the owned core runtimes
- Evidence: Swift
Sources/MIDI2CI/ProfileSession.swiftand TypeScriptmidi2.js/src/profile-session.ts; lifecycle and negative tests inTests/MIDI2Tests/ProfileDetailsTests.swift,Tests/MIDI2Tests/ProfileDetailsNegativeTests.swift, andmidi2.js/src/__tests__/profile-session.test.ts.
- Evidence: Swift
Function Block discovery: Implemented
- Evidence: Sources/MIDI2/Stream/FunctionBlockMessage.swift:1 (direction/bandwidth/active/uiHints), Sources/MIDI2/Stream/FunctionBlockDiscovery.swift:1, Tests/MIDI2Tests/StreamFunctionBlockDiscoveryTests.swift:1 (roundtrip + errors), Tests/MIDI2Tests/StreamNegotiationTests.swift:1 (profile associations + validation)
UMP Stream Configuration (M2-104-UM §5)
- Endpoint Discovery (Endpoint/Device Info): Implemented
- Evidence: Sources/MIDI2/Stream/EndpointDiscoveryMessage.swift:1 (major/minor/maxGroups mapping, reserved validation), Tests/MIDI2Tests/StreamMappingTests.swift:1
- Stream Configuration Request/Reply: Implemented (JR fallback + mismatch notification policy)
- Evidence: Sources/MIDI2/Stream/StreamConfigurationMessage.swift:1; negotiation state + mismatch reasons in Sources/MIDI2/Stream/NegotiationSession.swift:1; demo in Sources/midi2demo/StreamConfig.swift:252; tests in Tests/MIDI2Tests/StreamNegotiationTests.swift:1
- Group Terminal Blocks (GTB): Implemented
- Evidence: Sources/MIDI2/Stream/GroupTerminalBlocks.swift:1; tests in Tests/MIDI2Tests/GroupTerminalBlocksTests.swift:1; negotiation guards in Sources/MIDI2/Stream/NegotiationSession.swift:1
Jitter Reduction (JR)
- JR Clock (sender): Implemented
- Evidence: Sources/MIDI2/System/Utility.swift:1, Tests/MIDI2Tests/System/JitterReductionTests.swift:1, Sources/jitterdemo/JitterApp.swift:1
- JR Timestamp (receiver offset): Implemented
- Evidence: Sources/MIDI2/System/JitterReductionReceiver.swift:1, Tests/MIDI2Tests/System/JitterReductionTests.swift:1; VRT-Protocol jr/clock_timestamp.json
SysEx8 Packetization
- Basic fragmentation: Implemented
- Evidence: Sources/MIDI2/Data/SysEx8.swift:1, Tests/MIDI2Tests/SysEx8Tests.swift:1
- Continuation/termination flags: Implemented
- Evidence: Strict validation + edge/invalid sequence tests (Tests/MIDI2Tests/SysEx8InvalidSequenceTests.swift:1); VRT-Protocol sysex8/invalid_cases.json
UMP Format Extensions and Reserved IDs
- Utility messages beyond JR: Implemented for the owned core runtimes
- Evidence: DCTPQ and Delta Clockstamp are encoded/decoded in
Sources/MIDI2/System/Utility.swiftandmidi2.js/src/ump.ts, with boundary tests.
- Evidence: DCTPQ and Delta Clockstamp are encoded/decoded in
- Future reserved message IDs: Covered for the declared core decoder surface
- Evidence:
Tests/MIDI2Tests/NegativeTests/,midi2.js/src/__tests__/negative.test.ts, anddocs/negative-test-matrix.md. This is not a claim that every optional or future specification extension is implemented.
- Evidence:
Testing and Validation
- Conformance test coverage: Improved
- Evidence: New negative tests for Stream §5, SysEx8, MDS, profiles reports, PE compression; CI with coverage gate.
- Schema regression (VRT-Protocol): Validation infrastructure, outside runtime completeness
- Evidence:
docs/vrt-protocol/,Scripts/generate_vrt_protocol.py, andmidi2.js/src/__tests__/vrt-protocol.test.ts.
- Evidence:
- Interop with hardware: Explicitly excluded from the software-runtime claim
- Evidence:
docs/runtime-completeness.jsonanddocs/claims.json. - Boundary: No physical MIDI2 devices are available in this repository, so no hardware interoperability result is claimed.
- Evidence:
