<?xml version="1.0" encoding="UTF-8"?>
<controller width="-1" height="-1" orientation="2" xgf="1">
	<info>
		Shows some more complex control and group types new in 2.4.0. Hopefully also a fun little synthesizer interface.
		This does not implement any predefined protocol and will mostly need to be user-mapped.
		An example VCV-Rack patch (free stock modules only) with most controls premapped is available for download. See https://xmmc.de/touchdaw/ws#sc for details. 
	</info>
	<control type="group" weight="0.5" orientation="1">
		<control type="group" weight="0.2">
			<control type="encoder" mode="0x04" title="PWM 1" midi="0xB0,0x14,0x7F"/>
			<control type="encoder" mode="0x04" title="PWM 2" midi="0xB0,0x15,0x7F"/>
			<control type="encoder" mode="0x04" title="LFO Freq." midi="0xB0,0x16,0x7F"/>
			<control type="encoder" mode="0x04" title="LFO PW" midi="0xB0,0x17,0x7F"/>		</control>
		<control type="group" weight="0.1">
			<control type="crossfader" weight=".5" midi="0xB0,0x4,0x7F" midi_1="0xB0,0x5,0x7F"/>
			<!-- Fixed value CC stepping example. Buttons are in an exclusive group set to not send off states ('xgf' attribute on the controller node has the group's bit set) -->
			<control type="group" weight=".5" orientation="0">
				<control type="button" grp="1" midi="0xB0,0x6,0x20" title="25%"/>
				<control type="button" grp="1" midi="0xB0,0x6,0x40" title="50%"/>
				<control type="button" grp="1" midi="0xB0,0x6,0x60" title="75%"/>
				<control type="button" grp="1" midi="0xB0,0x6,0x7f" title="100%"/>			</control>		</control>
		<!-- Tabbed or 'multipage' group new in 2.4.0. Every direct child to the group creates a new tab. Children will usually be groups again, but can equally be single controls directly as shown with the XY-Pad in tab 2. Tab titles can be given as a comma separated list and would default to numbers. --> 
		<control type="tabbedgroup" weight="0.7" mode="0x05" title="ADSR,XY,Faders" color="0,0xFF222222,0xFFB07900">
			<control type="group" width="-1" height="-1" orientation="0">
				<control type="pitchwheel" weight=".135" midi="0xE0,0x7F,0x7F"/>
				<control type="adsr" weight=".865" midi="0xB0,0x10,0x7F" midi_1="0xB0,0x11,0x7F" midi_2="0xB0,0x12,0x7F" midi_3="0xB0,0x13,0x7F"/>			</control>
			<control type="xypad" midi="0xB0,0x47,0x7F" midi_1="0xB0,0x4A,0x7F" midi_2="0xB0,0x4B,0x7F"/>
			<control type="group" width="-1" height="-1" orientation="1" color="0xFF282828" padding="4">
				<control type="group" weight=".08">
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="Vol"/>
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="Pan"/>
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="Bal"/>
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="Expr"/>
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="FX1"/>
					<control type="label" color="0xFF181818,0xFF888888" tf="0x1" margin="2,0" title="FX2"/>
				</control>
				<control type="group" weight=".92">
					<control type="small_fader" midi="0xB0,0x07,0x7F" color="0xFF181818"/>
					<control type="small_fader" midi="0xB0,0x0A,0x7F" color="0xFF181818"/>
					<control type="small_fader" midi="0xB0,0x08,0x7F" color="0xFF181818"/>
					<control type="small_fader" midi="0xB0,0x0B,0x7F" color="0xFF181818"/>
					<control type="small_fader" midi="0xB0,0x0C,0x7F" color="0xFF181818"/>
					<control type="small_fader" midi="0xB0,0x0D,0x7F" color="0xFF181818"/>
				</control>			</control>		</control>	</control>
	<control type="group" weight="0.5" orientation="1">
		<control type="group" weight="0.2">
		<control type="encoder" mode="0x04" title="Detune" midi="0xB0,0x18,0x7F"/>
		<control type="encoder" mode="0x04" title="LFO -&gt; VCF" midi="0xB0,0x19,0x7F"/>
		<control type="encoder" mode="0x04" title="Drive" midi="0xB0,0x1a,0x7F"/>
		<control type="encoder" mode="0x04" title="Env -&gt; VCF" midi="0xB0,0x1b,0x7F"/>	</control>
	<control type="group" weight="0.1">
		<!-- Octave and channel steppers use standard java string formating templates in their title attributes to display the current value (%02d will be replaced with by a minimum two character long decimal representation of the value, %02x or %x would print hex values). An initial value can be given after the separating slash. -->
		<control type="stepper" weight="0.333" margin="2,0" title="Oct.%02d/1" midi="0xFF,0x22,0x0C,0x18"/>
		<!-- Central stepper sends program changes 0 - 3. The length of the title array combined with the range defining last MIDI byte determines what value will be send on each step: A full 7bit 0x7F value in the MIDI attribute combined with 4 entries in 'title' would for example result in program numbers 0, 42, 84, 127. -->
		<control type="stepper" weight="0.333" margin="2,0" title="Program Changes,Prg 1,Prg 2,Prg 3,Prg 4" midi="0xC0,0x03"/>
		<control type="stepper" weight="0.333" margin="2,0" title="Ch.%02d/1" midi="0xFF,0x21,0x11,0x00"/>		</control>
		<control type="keyboard" weight="0.7" margin="4" midi="0x90,0x24,0x7F"/>	</control></controller>
