<?xml version="1.0" encoding="UTF-8"?><controller width="-1" height="-1" orientation="2">
   <info>Sample for control actions, list messages and sysexgroups. This is not a usefull controller but just playfully showing how things can be used in combination.</info>
   <control type="group" weight=".125">
      <!-- Different ways in which a control can be hidden. The 'Replace' button uses two visibility messages in a list to fully hide the button and make an initially 'gone' encoder visible instead. -->
      <control type="button" midi="0xB0,0x07,0x13" title="▰"/>
      <control type="encoder" midi="0xB0,0x07,0x01" visibility="0x2"/>
      <control type="button" midi="0xFF,0x24,0x06,0x00,0x23,0x00,0x00,0x0A" title="Hide"/>
      <control type="button" midi="0xFF,0x24,0x06,0x00,0x23,0x00,0x00,0x02" title="Collapse"/>
      <control type="button" midi="0xFF,0x1C,0xFF,0x24,0x06,0x00,0x23,0x00,0x00,0x02,0x0D,0x24,0xFF,0xFF,0x24,0x06,0x00,0x23,0x00,0x01,0x03,0x0D,0x24,0xFF" mode="0x80000000" title="Replace"/>
   </control>
   <control type="sysexgroup" weight="0.125" midi="0xFF,0x24,0x08,0x00,0x40,0x73,0x79,0x78,0x30,0x00,0x00,0x35,0x35,0x35,0xFE" id="syx0" padding="0,4" mode="0x300800">
      <!-- A sysexgroup not working on sysex. Encoders set RGBA values in the group's color message and the group then changes it's own background. Encoders react to external MIDI (CCs 11 - 14). -->
      <control type="encoder" midi="0xB0,0x0B,0x7F" title="R" color="0,0xfffc0303,0xafa3a3a3"/>
      <control type="encoder" midi="0xB0,0x0C,0x7F" color="0,0xff00ff00,0xafa3a3a3" title="G"/>
      <control type="encoder" midi="0xB0,0x0D,0x7F" color="0,0xff0000ff,0xafa3a3a3" title="B"/>
      <control type="encoder" midi="0xB0,0x0E,0x7F" title="A" color="0,0xff999999,0xafa3a3a3"/>
   </control>
   <control type="group" weight="0.07">
      <control type="button" midi="0xFF,0x24,0x02,0x00,0x23,0x00,0x00,0x02" title="Disable"/>
      <control type="button" midi="0xFF,0x24,0x08,0x00,0x23,0x00,0x00,0x24,0x45,0xA3,0x33,0xFD" title="Color" mode="0x1"/>
      <control type="button" midi="0xFF,0x24,0x00,0x00,0x23,0x00,0x00,0x4E,0x65,0x77,0x20,0x74,0x65,0x78,0x74,0x00,0x04" title="Text" mode="0x1"/>
      <control type="button" midi="0xFF,0x24,0x04,0x00,0x40,0x74,0x67,0x31,0x00,0x80,0x01" title="Index"/>
   </control>
   <control type="group" weight="0.07">
      <control type="button" midi="0xFF,0x24,0x02,0x00,0x23,0x00,0x05,0x05" title="Enable" mode="0x1"/>
      <!-- change colors on two controls simultanously -->
      <control type="button" midi="0xFF,0x1C,0xFF,0x24,0x08,0x00,0x40,0x74,0x67,0x31,0x00,0x24,0x29,0x60,0x1E,0xFD,0x0D,0x24,0xFF,0xFF,0x24,0x08,0x00,0x40,0x74,0x67,0x30,0x00,0x44,0x29,0xFF,0x1E,0xFD,0x0D,0x24,0xFF" title="Dbl.Color" mode="0x1"/>
      <control type="button" midi="0xFF,0x20,0x08" title="Monitor"/>
      <!-- steps through both the tabbed groups in opposing directions -->
      <control type="button" midi="0xFF,0x1C,0xFF,0x24,0x04,0x00,0x40,0x74,0x67,0x31,0x00,0x81,0x01,0x0D,0x24,0xFF,0xFF,0x24,0x04,0x00,0x40,0x74,0x67,0x30,0x00,0x80,0x00,0x0D,0x24,0xFF" title="Dbl.Index"/>
   </control>
   <control type="tabbedgroup" weight="0.2" title="1,2,3" id="tg0" mode="0x5">
      <!-- Another non-sysex sysexgroup used to build something like MIDI Ox's 'Control Panel'. -->
      <control type="sysexgroup" width="-1" orientation="1" midi="0xB0,0x00,0x7F" title="@sfcc" color="0xff161c2a" margin="4" padding="4">
         <control type="group" visibility="0x8">
            <control type="label" title="Controller" tf="0x51"/>
            <control type="label" title="Channel" tf="0x51"/>
         </control>
         <control type="group" width="-1" orientation="3">
            <!-- The dropdowns set CC number and MIDI channel in the group's message but only the fader fires the message (trigger is set to the fader's id in the group's title attribute) -->
            <control type="dropdown" midi="0xB0,0x01,0x7F" color="0,0,0xf5c6a001" title="%s/CC"/>
            <control type="dropdown" midi="0xB3,0x00,0x0F" color="0,0,0xf5c6a001" title="%d/+1"/>
         </control>
         <control type="small_fader" midi="0xB0,0x02,0x7F" margin="4,8" id="sfcc" color="0xff303030,0,0"/>
      </control>
      <!-- Tab 2, just a label to step over -->
      <control type="label" title="2"/>
      <!-- Tab 3 with a fader sending volume controllers and showing a message at a non-default threshold -->
      <control type="group" width="-1">
         <control type="label" title="Volume: %03d/@sfvol" weight=".25" font="Monospace Bold"/>
         <control type="label" weight=".25" id="lnh"/>
         <control type="small_fader" midi="0xFF,0x1C,0xB0,0x07,0x7F,0xFF,0x24,0x00,0x0E,0x40,0x6C,0x6E,0x68,0x00,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x74,0x20,0x6E,0x6F,0x74,0x20,0x68,0x65,0x61,0x6C,0x74,0x68,0x79,0x00,0x04,0x0D,0x24,0xFF" margin="8" weight=".5" id="sfvol"/>
      </control>
      <!--fader on tab 4 performs a colorfade on the lower tabbed group. -->
      <control type="small_fader" midi="0xFF,0x24,0x08,0x0F,0x40,0x74,0x67,0x31,0x00,0x04,0xFD,0xAB,0x31,0xD8"/>
   </control>
   <!-- Lower tabbed group. Mostly used as an action target here. The group has a 'midi' attribute and will send program changes both when the tab is changed manually and via the 'Index' buttons.
   The encoder disables some other control and relabels itself using a string formatter -->
   <control type="tabbedgroup" weight="0.2" title="1,2,3" id="tg1" mode="0x5" midi="0xC0,0x02">
      <control type="label" title="1"/>
      <control type="encoder" title="%02d%%/@enc4" midi="0xFF,0x24,0x02,0x00,0x23,0x00,0x00,0x04" id="enc4"/>
      <control type="label" title="3"/>
   </control>
</controller>
