Validating midnam files

I have created a midname file for my Simmons SD500 electronic drum kit. I’d like to share it with the world by adding it to the share/patches directory. I am having trouble and could use some help.

I’ve read the instructions for forking the Ardour github repository. These instructions also indicate that I should read the README file in the share/patches directory. It contains these instructions:

To validate a document, run:

xmllint --dtdvalid MIDINameDocument10.dtd Acme_Synthomatic.midnam > /dev/null

It does not work, as I keep getting several errors. Here is the first one.

xmllint --dtdvalid MIDINameDocument10.dtd Simmons_SD500.midnam > /dev/null
error : Unknown IO error
Simmons_SD500.midnam:2: warning: failed to load external entity “http://www.midi.org/dtds/MIDINameDocument10.dtd
/DTD MIDINameDocument 1.0//EN" “http://www.midi.org/dtds/MIDINameDocument10.dtd

To verify that it’s not my midnam file, I downloaded the Alesis_DM5.midnam file from the Ardour repository and I get the same messages.

xmllint --dtdvalid MIDINameDocument10.dtd Alesis_DM5.midnam > /dev/null
error : Unknown IO error
Alesis_DM5.midnam:2: warning: failed to load external entity “http://www.midi.org/dtds/MIDINameDocument10.dtd
/DTD MIDINameDocument 1.0//EN" “http://www.midi.org/dtds/MIDINameDocument10.dtd

The MIDI Manufacturers Association appears to have reorganized their website such that the canonical Document Type Definitions (DTDs) have moved or are now missing. Until someone finds them again, you can’t validate.

Thanks for the quick reply.
Do you think it makes sense for me to go ahead and issue the pull request to merge my midinam file into Ardour?

If Ardour can load it without errors, then it’s fine.

Take a look at @tseaver 's excellent fix for validating midnams

Last time I looked on the MIDI website, They were not publicly visible without a login. X42 had mentioned they are also in the midnam directory in ardour source.

xmllint --nonet --noout --path </path/to/ardour/source>/share/patchfiles/ --dtdvalid MIDINameDocument10.dtd </path/to/MyInstrument>.midnam && echo VALID

1 Like