ControlChange in midnam files

I am working on my own midnam file for a a piece of hardware I own, and looking at the ones in the Ardour tree as reference. I found the following couple of ControlChange tags a lot in there, but I don’t understand what they mean or are need for:

<ControlChange Control="0" Value="0"/>
<ControlChange Control="32" Value="0"/>

ControlChange is not in the DTD, which adds to the confusion. And of course there isn’t much documentation on midnam on the internet either.

This also seems different from combinations of Control and Values tags, which are in the DTD and which (I think) I understand: these would be the ones to use for a MIDI CC message.

Can somebody explain these to me?

These are messages are used to set the Bank (if applicable). CC0 is the most significant bit (MSB) and CC32 the LSB. – see also MIDI 1.0 Control Change Messages (Data Bytes)

Follow the includes. MIDINameDocument10.dtd specifies

<!ELEMENT PatchBank (MIDICommands?, (UsesPatchNameList | PatchNameList))>

and later in that document MIDI.dtd is included for MIDICommands:

<!ELEMENT MIDICommands (MIDIDelay | %MIDIChannelMessage; | SysEx)+ >

this in turn references MIDIEvents10.dtd

<!ENTITY % MIDIChannelVoiceMessage "(NoteOn | NoteOff | PolyKeyPressure | ControlChange | ProgramChange | ChannelKeyPressure | PitchBendChange)">
<!ENTITY % MIDIChannelMessage "(%MIDIChannelVoiceMessage; | %MIDIChannelModeMessage;)">
2 Likes

Thank you so much! I don’t have that much experience with DTDs so I missed the include. The link is very valuable.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.