<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
  <xs:element name="RenoiseSong" type="RenoiseSong"/>
  <xs:complexType name="RenoiseSong">
    <xs:all>
      <xs:element name="GlobalSongData" minOccurs="0" type="GlobalSongData"/>
      <xs:element name="RecordManager" minOccurs="0" type="RecordManager"/>
      <xs:element name="Instruments" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Instrument" minOccurs="0" maxOccurs="unbounded" type="RenoiseInstrument"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="SelectedInstrumentIndex" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="SelectedSampleIndex" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="Tracks" minOccurs="0">
        <xs:complexType>
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element name="SequencerTrack" minOccurs="0" maxOccurs="unbounded" type="SequencerTrack"/>
            <xs:element name="SequencerMasterTrack" minOccurs="0" maxOccurs="unbounded" type="SequencerMasterTrack"/>
            <xs:element name="SequencerSendTrack" minOccurs="0" maxOccurs="unbounded" type="SequencerSendTrack"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="SelectedTrackIndex" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="PatternPool" minOccurs="0" type="PatternPool"/>
      <xs:element name="PatternSequence" minOccurs="0" type="PatternSequence"/>
    </xs:all>
    <xs:attribute name="doc_version" use="required" type="xs:int" fixed="15"/>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="GlobalSongData">
    <xs:all>
      <xs:element name="Octave" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="EditStep" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="RecordQuantizationEnabled" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RecordQuantizationAmount" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="LoopCoeff" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="BeatsPerMin" type="xs:float" default="128" minOccurs="0"/>
      <xs:element name="LinesPerBeat" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="TicksPerLine" type="xs:int" default="12" minOccurs="0"/>
      <xs:element name="SignatureNumerator" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="SignatureDenominator" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="ShuffleIsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="ShuffleAmounts" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ShuffleAmount" type="xs:int" default="0" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SongName" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="Artist" type="xs:string" default="By Somebody" minOccurs="0"/>
      <xs:element name="SongComments" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SongComment" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ShowSongCommentsAfterLoading" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="ShowUsedAutomationsOnly" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SampleOffsetCompatibilityMode" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="PitchEffectsCompatibilityMode" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="PlaybackEngineVersion" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="RenderSelectionNameCounter" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="RecordSampleNameCounter" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="NewSampleNameCounter" type="xs:int" default="0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="RecordManager">
    <xs:all>
      <xs:element name="LinkedTrackIndex" type="xs:int" default="-1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="RenoiseInstrument">
    <xs:all>
      <xs:element name="Name" type="xs:string" minOccurs="0"/>
      <xs:element name="SplitMap" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Split" type="xs:int" default="0" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CopyIntoNewSampleNameCounter" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="CopyIntoNewInstrumentNameCounter" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="Samples" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Sample" minOccurs="0" maxOccurs="unbounded" type="InstrumentSample"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="Envelopes" minOccurs="0" type="InstrumentEnvelopes"/>
      <xs:element name="MidiProperties" minOccurs="0" type="InstrumentMidiProperties"/>
      <xs:element name="PluginProperties" minOccurs="0" type="InstrumentPluginProperties"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentSample">
    <xs:all>
      <xs:element name="Name" type="xs:string" minOccurs="0"/>
      <xs:element name="FileName" type="xs:string" minOccurs="0"/>
      <xs:element name="FileModificationDate" type="xs:date" minOccurs="0"/>
      <xs:element name="FileModificationDayTime" type="xs:time" minOccurs="0"/>
      <xs:element name="Volume" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="Panning" type="xs:float" default="0.5" minOccurs="0"/>
      <xs:element name="Finetune" type="xs:byte" default="0" minOccurs="0"/>
      <xs:element name="BaseNote" type="xs:byte" default="48" minOccurs="0"/>
      <xs:element name="BeatSyncIsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="BeatSyncLines" type="xs:short" default="16" minOccurs="0"/>
      <xs:element name="NewNoteAction" default="Cut" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Cut"/>
            <xs:enumeration value="NoteOff"/>
            <xs:enumeration value="None"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="InterpolationMode" default="Cubic" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="None"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Cubic"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LoopMode" default="Off" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Forward"/>
            <xs:enumeration value="Backward"/>
            <xs:enumeration value="PingPong"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LoopStart" type="xs:unsignedInt" default="0" minOccurs="0"/>
      <xs:element name="LoopEnd" type="xs:unsignedInt" default="0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentEnvelopes">
    <xs:all>
      <xs:element name="Volume" minOccurs="0" type="InstrumentPlayerEnvelope"/>
      <xs:element name="Pan" minOccurs="0" type="InstrumentPlayerEnvelope"/>
      <xs:element name="Pitch" minOccurs="0" type="InstrumentPlayerEnvelope"/>
      <xs:element name="FilterType" type="xs:int" default="3" minOccurs="0"/>
      <xs:element name="Cutoff" minOccurs="0" type="InstrumentFilterEnvelope"/>
      <xs:element name="Resonance" minOccurs="0" type="InstrumentFilterEnvelope"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentPlayerEnvelope">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="InterpolationMode" default="Curve" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Curve"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SustainIsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SustainPos" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="LoopStart" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="LoopEnd" type="xs:int" default="71" minOccurs="0"/>
      <xs:element name="LoopMode" default="Off" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Forward"/>
            <xs:enumeration value="Backward"/>
            <xs:enumeration value="PingPong"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Decay" type="xs:int" default="128" minOccurs="0"/>
      <xs:element name="Nodes" minOccurs="0" type="Envelope"/>
      <xs:element name="Lfo1" minOccurs="0" type="InstrumentEnvelopeLfo"/>
      <xs:element name="Lfo2" minOccurs="0" type="InstrumentEnvelopeLfo"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="Envelope">
    <xs:all>
      <xs:element name="PlayMode" default="Curve" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Points"/>
            <xs:enumeration value="Curve"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Length" type="xs:int" default="72" minOccurs="0"/>
      <xs:element name="ValueQuantum" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="Points" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Point" type="xs:string" default="0,0.99000000953674316" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentEnvelopeLfo">
    <xs:all>
      <xs:element name="Mode" default="Off" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Sin"/>
            <xs:enumeration value="Saw"/>
            <xs:enumeration value="Pulse"/>
            <xs:enumeration value="Random"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Frequency" type="xs:int" default="3" minOccurs="0"/>
      <xs:element name="Amplitude" type="xs:int" default="27" minOccurs="0"/>
      <xs:element name="Dephase" type="xs:int" default="0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentFilterEnvelope">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="InterpolationMode" default="Curve" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Curve"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SustainIsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SustainPos" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="LoopStart" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="LoopEnd" type="xs:int" default="71" minOccurs="0"/>
      <xs:element name="LoopMode" default="Off" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Forward"/>
            <xs:enumeration value="Backward"/>
            <xs:enumeration value="PingPong"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Decay" type="xs:int" default="128" minOccurs="0"/>
      <xs:element name="Nodes" minOccurs="0" type="Envelope"/>
      <xs:element name="Lfo" minOccurs="0" type="InstrumentEnvelopeLfo"/>
      <xs:element name="AutoAmp" minOccurs="0" type="InstrumentEnvelopeAutoAmp"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentEnvelopeAutoAmp">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="Attack" type="xs:int" default="100" minOccurs="0"/>
      <xs:element name="Release" type="xs:int" default="70" minOccurs="0"/>
      <xs:element name="Amount" type="xs:int" default="60" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentMidiProperties">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="Channel" type="xs:byte" default="1" minOccurs="0"/>
      <xs:element name="DeviceName" type="xs:string" minOccurs="0"/>
      <xs:element name="InstrumentType" default="ext. MIDI" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="ext. MIDI"/>
            <xs:enumeration value="LineIn Ret"/>
            <xs:enumeration value="int. MIDI"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Delay" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="Program" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="Bank" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="BaseNote" type="xs:int" default="48" minOccurs="0"/>
      <xs:element name="Length" type="xs:int" default="8000" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentPluginProperties">
    <xs:all>
      <xs:element name="Channel" type="xs:byte" default="1" minOccurs="0"/>
      <xs:element name="BaseNote" type="xs:int" default="48" minOccurs="0"/>
      <xs:element name="Volume" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="OutputRoutings" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="OutputRouting" minOccurs="0" maxOccurs="unbounded" type="InstrumentPluginRouting"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="AutoSuspend" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="AliasInstrumentIndex" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="AliasFxIndices" type="xs:string" default="-1,-1" minOccurs="0"/>
      <xs:element name="PluginDevice" minOccurs="0" type="AudioPluginDevice"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="InstrumentPluginRouting">
    <xs:all>
      <xs:element name="Enabled" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="Name" type="xs:string" default="Bus #01" minOccurs="0"/>
      <xs:element name="MixMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AutoAssign" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="AssignedTrack" type="xs:int" default="-1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="AudioPluginDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="ActiveProgram" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="PluginType" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="AU"/>
            <xs:enumeration value="VST"/>
            <xs:enumeration value="LADSAP"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PluginIdentifier" type="xs:string" minOccurs="0"/>
      <xs:element name="PluginDisplayName" type="xs:string" minOccurs="0"/>
      <xs:element name="PluginShortDisplayName" type="xs:string" minOccurs="0"/>
      <xs:element name="PluginEditorWindowPosition" type="xs:string" default="-1,-1" minOccurs="0"/>
      <xs:element name="ParameterChunkType" default="Chunk" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Chunk"/>
            <xs:enumeration value="ParameterBag"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ParameterChunk" type="xs:string"/>
      <xs:element name="Parameters" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded" type="AudioPluginDeviceParameter"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="AudioPluginDevice"/>
  </xs:complexType>
  <xs:complexType name="FilterDevicePreset">
    <xs:all>
      <xs:element name="DeviceSlot" minOccurs="0" type="AudioPluginDevice"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="FilterDevicePreset"/>
  </xs:complexType>
  <xs:complexType name="AudioPluginDeviceParameter">
    <xs:all>
      <xs:element name="Value" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="Visualization" default="Device only" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Dont Show"/>
            <xs:enumeration value="Device only"/>
            <xs:enumeration value="Mixer and Device"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MidiMappings" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MidiMapping" minOccurs="0" maxOccurs="unbounded" type="CCMappingDocument"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="CCMappingDocument">
    <xs:all>
      <xs:element name="Channel" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="CCNumber" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="Mode" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="Min" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="Max" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="Inverse" type="xs:boolean" default="false" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="SequencerTrack">
    <xs:all>
      <xs:element name="Name" type="xs:string" default="Track 01" minOccurs="0"/>
      <xs:element name="State" default="Active" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Active"/>
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Mute"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NoteColumnStates" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NoteColumnState" default="Active" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:enumeration value="Active"/>
                  <xs:enumeration value="Off"/>
                  <xs:enumeration value="Mute"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NumberOfVisibleNoteColumns" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="NumberOfVisibleEffectColumns" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="VolumeColumnIsVisible" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="PanningColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="DelayColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="TrackRouting" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="TrackDelay" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="FilterDevices" minOccurs="0" type="SequencerTrackDeviceChain"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerTrack"/>
  </xs:complexType>
  <xs:complexType name="SequencerTrackDeviceChain">
    <xs:all>
      <xs:element name="Devices" minOccurs="0">
        <xs:complexType>
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element name="AudioPluginDevice" minOccurs="0" maxOccurs="unbounded" type="AudioPluginDevice"/>
            <xs:element name="BusCompressorDevice" minOccurs="0" maxOccurs="unbounded" type="BusCompressorDevice"/>
            <xs:element name="ChorusDevice" minOccurs="0" maxOccurs="unbounded" type="ChorusDevice"/>
            <xs:element name="CompressorDevice" minOccurs="0" maxOccurs="unbounded" type="CompressorDevice"/>
            <xs:element name="DcOffsetDevice" minOccurs="0" maxOccurs="unbounded" type="DcOffsetDevice"/>
            <xs:element name="DelayDevice" minOccurs="0" maxOccurs="unbounded" type="DelayDevice"/>
            <xs:element name="Distortion2Device" minOccurs="0" maxOccurs="unbounded" type="Distortion2Device"/>
            <xs:element name="DistortionDevice" minOccurs="0" maxOccurs="unbounded" type="DistortionDevice"/>
            <xs:element name="Eq10Device" minOccurs="0" maxOccurs="unbounded" type="Eq10Device"/>
            <xs:element name="Eq5Device" minOccurs="0" maxOccurs="unbounded" type="Eq5Device"/>
            <xs:element name="Filter1Device" minOccurs="0" maxOccurs="unbounded" type="Filter1Device"/>
            <xs:element name="Filter2Device" minOccurs="0" maxOccurs="unbounded" type="Filter2Device"/>
            <xs:element name="Filter3Device" minOccurs="0" maxOccurs="unbounded" type="Filter3Device"/>
            <xs:element name="FilterDistortionDevice" minOccurs="0" maxOccurs="unbounded" type="FilterDistortionDevice"/>
            <xs:element name="FlangerDevice" minOccurs="0" maxOccurs="unbounded" type="FlangerDevice"/>
            <xs:element name="GainerDevice" minOccurs="0" maxOccurs="unbounded" type="GainerDevice"/>
            <xs:element name="Gate2Device" minOccurs="0" maxOccurs="unbounded" type="Gate2Device"/>
            <xs:element name="GateDevice" minOccurs="0" maxOccurs="unbounded" type="GateDevice"/>
            <xs:element name="HydraDevice" minOccurs="0" maxOccurs="unbounded" type="HydraDevice"/>
            <xs:element name="InstrumentAutomationDevice" minOccurs="0" maxOccurs="unbounded" type="InstrumentAutomationDevice"/>
            <xs:element name="KeyTrackingDevice" minOccurs="0" maxOccurs="unbounded" type="KeyTrackingDevice"/>
            <xs:element name="LfoDevice" minOccurs="0" maxOccurs="unbounded" type="LfoDevice"/>
            <xs:element name="LineInDevice" minOccurs="0" maxOccurs="unbounded" type="LineInDevice"/>
            <xs:element name="Lofi2Device" minOccurs="0" maxOccurs="unbounded" type="Lofi2Device"/>
            <xs:element name="LofiDevice" minOccurs="0" maxOccurs="unbounded" type="LofiDevice"/>
            <xs:element name="MaximizerDevice" minOccurs="0" maxOccurs="unbounded" type="MaximizerDevice"/>
            <xs:element name="MidiCCDevice" minOccurs="0" maxOccurs="unbounded" type="MidiCCDevice"/>
            <xs:element name="MidiControlDevice" minOccurs="0" maxOccurs="unbounded" type="MidiControlDevice"/>
            <xs:element name="MixerEqDevice" minOccurs="0" maxOccurs="unbounded" type="MixerEqDevice"/>
            <xs:element name="PdcTestDelayDevice" minOccurs="0" maxOccurs="unbounded" type="PdcTestDelayDevice"/>
            <xs:element name="PhaserDevice" minOccurs="0" maxOccurs="unbounded" type="PhaserDevice"/>
            <xs:element name="Reverb2Device" minOccurs="0" maxOccurs="unbounded" type="Reverb2Device"/>
            <xs:element name="Reverb3Device" minOccurs="0" maxOccurs="unbounded" type="Reverb3Device"/>
            <xs:element name="ReverbDevice" minOccurs="0" maxOccurs="unbounded" type="ReverbDevice"/>
            <xs:element name="RewireInDevice" minOccurs="0" maxOccurs="unbounded" type="RewireInDevice"/>
            <xs:element name="RingModDevice" minOccurs="0" maxOccurs="unbounded" type="RingModDevice"/>
            <xs:element name="SendDevice" minOccurs="0" maxOccurs="unbounded" type="SendDevice"/>
            <xs:element name="SequencerMasterTrackDevice" minOccurs="0" maxOccurs="unbounded" type="SequencerMasterTrackDevice"/>
            <xs:element name="SequencerSendTrackDevice" minOccurs="0" maxOccurs="unbounded" type="SequencerSendTrackDevice"/>
            <xs:element name="SequencerTrackDevice" minOccurs="0" maxOccurs="unbounded" type="SequencerTrackDevice"/>
            <xs:element name="ShaperDevice" minOccurs="0" maxOccurs="unbounded" type="ShaperDevice"/>
            <xs:element name="StereoExpanderDevice" minOccurs="0" maxOccurs="unbounded" type="StereoExpanderDevice"/>
            <xs:element name="VelocityDevice" minOccurs="0" maxOccurs="unbounded" type="VelocityDevice"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="BusCompressorDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Ratio" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Attack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Release" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MakeUp" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Knee" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="BusCompressorDevice"/>
  </xs:complexType>
  <xs:complexType name="FilterDeviceParameter">
    <xs:all>
      <xs:element name="Value" type="xs:float" default="-12" minOccurs="0"/>
      <xs:element name="Visualization" default="Device only" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Dont Show"/>
            <xs:enumeration value="Device only"/>
            <xs:enumeration value="Mixer and Device"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MidiMappings" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MidiMapping" minOccurs="0" maxOccurs="unbounded" type="CCMappingDocument"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="ChorusDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="LfoRate" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LfoDepth" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Feedback" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Delay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryWetMix" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Phase" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterType" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterFreq" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterResonance" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="ChorusDevice"/>
  </xs:complexType>
  <xs:complexType name="CompressorDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="LogThreshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Ratio" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Attack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Release" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="CompressorDevice"/>
  </xs:complexType>
  <xs:complexType name="DcOffsetDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="DCOffset" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="AutoDC" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="DcOffsetDevice"/>
  </xs:complexType>
  <xs:complexType name="DelayDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="TrackSend" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LDelay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RDelay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LFeedback" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RFeedback" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MuteDrySignal" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LTapPan" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RTapPan" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LineSync" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LSyncTime" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RSyncTime" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LSyncOffset" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RSyncOffset" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="DelayDevice"/>
  </xs:complexType>
  <xs:complexType name="Distortion2Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Drive" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Tone" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="WetOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryOut" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Distortion2Device"/>
  </xs:complexType>
  <xs:complexType name="DistortionDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LpOrClamp" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="WetOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="GateOrFilter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="DistortionDevice"/>
  </xs:complexType>
  <xs:complexType name="Eq10Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="InputMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L-R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MaxVisualizedGain" type="xs:float" default="20" minOccurs="0"/>
      <xs:element name="Gain0" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain1" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain2" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain3" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain4" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain5" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain6" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain7" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain8" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain9" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Frequency0" type="xs:float" default="50" minOccurs="0"/>
      <xs:element name="Frequency1" type="xs:float" default="100" minOccurs="0"/>
      <xs:element name="Frequency2" type="xs:float" default="300" minOccurs="0"/>
      <xs:element name="Frequency3" type="xs:float" default="600" minOccurs="0"/>
      <xs:element name="Frequency4" type="xs:float" default="1200" minOccurs="0"/>
      <xs:element name="Frequency5" type="xs:float" default="2000" minOccurs="0"/>
      <xs:element name="Frequency6" type="xs:float" default="3000.25" minOccurs="0"/>
      <xs:element name="Frequency7" type="xs:float" default="5000" minOccurs="0"/>
      <xs:element name="Frequency8" type="xs:float" default="10000" minOccurs="0"/>
      <xs:element name="Frequency9" type="xs:float" default="15000" minOccurs="0"/>
      <xs:element name="BandWidth0" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="BandWidth1" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth2" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth3" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth4" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth5" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth6" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth7" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth8" type="xs:float" default="2" minOccurs="0"/>
      <xs:element name="BandWidth9" type="xs:float" default="1.0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Eq10Device"/>
  </xs:complexType>
  <xs:complexType name="Eq5Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="InputMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L-R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MaxVisualizedGain" type="xs:float" default="20" minOccurs="0"/>
      <xs:element name="Gain0" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain1" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain2" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain3" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain4" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Frequency0" type="xs:float" default="100" minOccurs="0"/>
      <xs:element name="Frequency1" type="xs:float" default="1000" minOccurs="0"/>
      <xs:element name="Frequency2" type="xs:float" default="4000" minOccurs="0"/>
      <xs:element name="Frequency3" type="xs:float" default="8000" minOccurs="0"/>
      <xs:element name="Frequency4" type="xs:float" default="12000" minOccurs="0"/>
      <xs:element name="BandWidth0" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="BandWidth1" type="xs:float" default="4" minOccurs="0"/>
      <xs:element name="BandWidth2" type="xs:float" default="4" minOccurs="0"/>
      <xs:element name="BandWidth3" type="xs:float" default="4" minOccurs="0"/>
      <xs:element name="BandWidth4" type="xs:float" default="1.0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Eq5Device"/>
  </xs:complexType>
  <xs:complexType name="Filter1Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Cutoff" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Resonance" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Innertia" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Filter1Device"/>
  </xs:complexType>
  <xs:complexType name="Filter2Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Cutoff" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Resonance" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Innertia" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LimitMoogFilterOutput" type="xs:boolean" default="true" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Filter2Device"/>
  </xs:complexType>
  <xs:complexType name="Filter3Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Frequency" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Q" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Inertia" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Model" default="24dB 4Pole" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="24dB 4Pole"/>
            <xs:enumeration value="24dB Moog"/>
            <xs:enumeration value="Butterworth 4n"/>
            <xs:enumeration value="Butterworth 8n"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Filter3Device"/>
  </xs:complexType>
  <xs:complexType name="FilterDistortionDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="FilterType" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Drive" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Cutoff" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Resonance" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Inertia" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="FilterDistortionDevice"/>
  </xs:complexType>
  <xs:complexType name="FlangerDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Amount" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Rate" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Amplitude" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FeedBack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Delay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Dephase" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterType" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterFreq" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="FilterResonance" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="FlangerDevice"/>
  </xs:complexType>
  <xs:complexType name="GainerDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Volume" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LPhaseInvert" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RPhaseInvert" type="xs:boolean" default="false" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="GainerDevice"/>
  </xs:complexType>
  <xs:complexType name="Gate2Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Attack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Hold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Release" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Floor" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ListenToSideChain" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SideChainHpFreq" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="SideChainLpFreq" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Gate2Device"/>
  </xs:complexType>
  <xs:complexType name="GateDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="AttackInMs" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="HoldInMs" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ReleaseInMs" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="GatedVolume" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="GateDevice"/>
  </xs:complexType>
  <xs:complexType name="HydraDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="VisiblePages" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="InputValue" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out1DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out1DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out1Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out1Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out1Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out2DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out2DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out2Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out2Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out2Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out3DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out3DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out3Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out3Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out3Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out4DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out4DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out4Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out4Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out4Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out5DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out5DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out5Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out5Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out5Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out6DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out6DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out6Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out6Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out6Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out7DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out7DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out7Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out7Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out7Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out8DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out8DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out8Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out8Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out8Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Out9DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out9DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out9Min" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out9Max" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Out9Scaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="HydraDevice"/>
  </xs:complexType>
  <xs:complexType name="InstrumentAutomationDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="ParameterValue0" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber0" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="ParameterValue1" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber1" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="ParameterValue2" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber2" type="xs:int" default="2" minOccurs="0"/>
      <xs:element name="ParameterValue3" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber3" type="xs:int" default="3" minOccurs="0"/>
      <xs:element name="ParameterValue4" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber4" type="xs:int" default="4" minOccurs="0"/>
      <xs:element name="ParameterValue5" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber5" type="xs:int" default="5" minOccurs="0"/>
      <xs:element name="ParameterValue6" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber6" type="xs:int" default="6" minOccurs="0"/>
      <xs:element name="ParameterValue7" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber7" type="xs:int" default="7" minOccurs="0"/>
      <xs:element name="ParameterValue8" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber8" type="xs:int" default="8" minOccurs="0"/>
      <xs:element name="ParameterValue9" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber9" type="xs:int" default="9" minOccurs="0"/>
      <xs:element name="ParameterValue10" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber10" type="xs:int" default="10" minOccurs="0"/>
      <xs:element name="ParameterValue11" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber11" type="xs:int" default="11" minOccurs="0"/>
      <xs:element name="ParameterValue12" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber12" type="xs:int" default="12" minOccurs="0"/>
      <xs:element name="ParameterValue13" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ParameterNumber13" type="xs:int" default="13" minOccurs="0"/>
      <xs:element name="LinkedInstrument" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="VisiblePages" type="xs:int" default="1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="InstrumentAutomationDevice"/>
  </xs:complexType>
  <xs:complexType name="KeyTrackingDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="SrcInstrument" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="KeyTrackingScaling" default="Linear" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="KeyTrackingMode" default="Clamp" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Clamp"/>
            <xs:enumeration value="Soft"/>
            <xs:enumeration value="Octave"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="KeyTrackingMin" type="xs:int" default="36" minOccurs="0"/>
      <xs:element name="KeyTrackingMax" type="xs:int" default="72" minOccurs="0"/>
      <xs:element name="DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestMin" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestMax" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="KeyTrackingDevice"/>
  </xs:complexType>
  <xs:complexType name="LfoDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Amplitude" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Offset" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Frequency" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Type" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="CustomEnvelope" minOccurs="0" type="Envelope"/>
      <xs:element name="CustomEnvelopeOneShot" type="xs:boolean" default="false" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="LfoDevice"/>
  </xs:complexType>
  <xs:complexType name="LineInDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="InputChannel" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="InputChannelMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="InputLatencyMode" default="Live Recording Mode" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Live Recording Mode"/>
            <xs:enumeration value="MIDI Return Mode"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Volume" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="LineInDevice"/>
  </xs:complexType>
  <xs:complexType name="Lofi2Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Bits" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Rate" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Noise" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="WetOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Interpolate" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Lofi2Device"/>
  </xs:complexType>
  <xs:complexType name="LofiDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="BitCrunsh" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Quality" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Noise" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="WetOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryOut" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Interpolate" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="LofiDevice"/>
  </xs:complexType>
  <xs:complexType name="MaximizerDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="InputGain" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="TransientRelease" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LongTermRelease" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Ceiling" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="MaximizerDevice"/>
  </xs:complexType>
  <xs:complexType name="MidiCCDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="ControllerValue0" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber0" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName0" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue1" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber1" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName1" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue2" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber2" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName2" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue3" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber3" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName3" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue4" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber4" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName4" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue5" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber5" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName5" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue6" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber6" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName6" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue7" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber7" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName7" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue8" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber8" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName8" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue9" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber9" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName9" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue10" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber10" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName10" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue11" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber11" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName11" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue12" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber12" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName12" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerValue13" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ControllerNumber13" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName13" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="LinkedInstrument" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="VisiblePages" type="xs:int" default="1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="MidiCCDevice"/>
  </xs:complexType>
  <xs:complexType name="MidiControlDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="ControllerValue0" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber0" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName0" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType0" default="PB" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue1" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber1" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName1" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType1" default="CP" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue2" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber2" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName2" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType2" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue3" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber3" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName3" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType3" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue4" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber4" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName4" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType4" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue5" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber5" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName5" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType5" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue6" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber6" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName6" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType6" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue7" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber7" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName7" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType7" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue8" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber8" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName8" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType8" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue9" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber9" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName9" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType9" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue10" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber10" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName10" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType10" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue11" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber11" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName11" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType11" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue12" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber12" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName12" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType12" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ControllerValue13" minOccurs="0" type="MidiControlDeviceFilterDeviceParameter"/>
      <xs:element name="ControllerNumber13" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ControllerName13" type="xs:string" default="Untitled" minOccurs="0"/>
      <xs:element name="ControllerType13" default="CC" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PB"/>
            <xs:enumeration value="CP"/>
            <xs:enumeration value="CC"/>
            <xs:enumeration value="Prg"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="LinkedInstrument" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="VisiblePages" type="xs:int" default="1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="MidiControlDevice"/>
  </xs:complexType>
  <xs:complexType name="MidiControlDeviceFilterDeviceParameter">
    <xs:all>
      <xs:element name="Value" type="xs:float" default="63.5" minOccurs="0"/>
      <xs:element name="Visualization" default="Device only" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Dont Show"/>
            <xs:enumeration value="Device only"/>
            <xs:enumeration value="Mixer and Device"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MidiMappings" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MidiMapping" minOccurs="0" maxOccurs="unbounded" type="CCMappingDocument"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="MixerEqDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="InputMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MaxVisualizedGain" type="xs:float" default="20" minOccurs="0"/>
      <xs:element name="LowGain" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MidGain" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MidFreq" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MidQ" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="HiGain" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="MixerEqDevice"/>
  </xs:complexType>
  <xs:complexType name="PdcTestDelayDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="DelayInMs" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="ReportLatency" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="PdcTestDelayDevice"/>
  </xs:complexType>
  <xs:complexType name="PhaserDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Ceilling" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Floor" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LFORate" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Depth" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Feedback" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Phase" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Stages" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="PhaserDevice"/>
  </xs:complexType>
  <xs:complexType name="Reverb2Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="QualitySetup" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="ReverbTime" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LPFilter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PreDelay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryMix" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Send" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Reverb2Device"/>
  </xs:complexType>
  <xs:complexType name="Reverb3Device">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="ReverbTime" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PreDelay" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LPFilter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="LPGain" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Color" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Width" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Pan" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="WetMix" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryMix" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="Reverb3Device"/>
  </xs:complexType>
  <xs:complexType name="ReverbDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Send" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="RoomSize" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Width" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Damp" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DryMix" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="ReverbDevice"/>
  </xs:complexType>
  <xs:complexType name="RewireInDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="DeviceName" type="xs:string" minOccurs="0"/>
      <xs:element name="ChannelIndex" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="ChannelMode" default="L+R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Volume" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="RewireInDevice"/>
  </xs:complexType>
  <xs:complexType name="RingModDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="OscillatorType" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Frequency" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Amount" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Phase" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Inertia" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="RingModDevice"/>
  </xs:complexType>
  <xs:complexType name="SendDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="SendAmount" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestSendTrack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="MuteSource" type="xs:boolean" default="true" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SendDevice"/>
  </xs:complexType>
  <xs:complexType name="SequencerMasterTrackDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Volume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
      <xs:element name="Surround" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostPanning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostVolume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
      <xs:element name="AutoDcCorrection" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SoftClipping" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="AutoGain" type="xs:boolean" default="false" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerMasterTrackDevice"/>
  </xs:complexType>
  <xs:complexType name="VolumeFilterDeviceParameter">
    <xs:all>
      <xs:element name="Value" type="xs:float" default="1.0" minOccurs="0"/>
      <xs:element name="Visualization" default="Device only" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Dont Show"/>
            <xs:enumeration value="Device only"/>
            <xs:enumeration value="Mixer and Device"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="MidiMappings" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MidiMapping" minOccurs="0" maxOccurs="unbounded" type="CCMappingDocument"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="SequencerSendTrackDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Volume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
      <xs:element name="Surround" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostPanning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostVolume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerSendTrackDevice"/>
  </xs:complexType>
  <xs:complexType name="SequencerTrackDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Panning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Volume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
      <xs:element name="Surround" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostPanning" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="PostVolume" minOccurs="0" type="VolumeFilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerTrackDevice"/>
  </xs:complexType>
  <xs:complexType name="ShaperDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="Threshold" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Ratio" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Attack" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Release" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="Gain" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="ShaperDevice"/>
  </xs:complexType>
  <xs:complexType name="StereoExpanderDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="MonoMixMode" default="R" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="L"/>
            <xs:enumeration value="R"/>
            <xs:enumeration value="L+R"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="StereoWidth" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="SurroundWidth" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="StereoExpanderDevice"/>
  </xs:complexType>
  <xs:complexType name="VelocityDevice">
    <xs:all>
      <xs:element name="IsActive" type="xs:boolean" default="true" minOccurs="0"/>
      <xs:element name="IsSelected" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="SelectedPresetName" type="xs:string" default="Init" minOccurs="0"/>
      <xs:element name="SelectedPresetIsModified" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="RunTimePresetA" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="RunTimePresetB" minOccurs="0" type="FilterDevicePreset"/>
      <xs:element name="SrcInstrument" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="VelocityScaling" default="Log Slow" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Log Fast"/>
            <xs:enumeration value="Log Slow"/>
            <xs:enumeration value="Linear"/>
            <xs:enumeration value="Exp Slow"/>
            <xs:enumeration value="Exp Fast"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="VelocityMin" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="VelocityMax" type="xs:int" default="127" minOccurs="0"/>
      <xs:element name="DestEffect" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestParameter" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestMin" minOccurs="0" type="FilterDeviceParameter"/>
      <xs:element name="DestMax" minOccurs="0" type="FilterDeviceParameter"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="VelocityDevice"/>
  </xs:complexType>
  <xs:complexType name="SequencerMasterTrack">
    <xs:all>
      <xs:element name="Name" type="xs:string" default="Mst" minOccurs="0"/>
      <xs:element name="State" default="Active" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Active"/>
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Mute"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NoteColumnStates" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NoteColumnState" default="Active" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:enumeration value="Active"/>
                  <xs:enumeration value="Off"/>
                  <xs:enumeration value="Mute"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NumberOfVisibleNoteColumns" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="NumberOfVisibleEffectColumns" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="VolumeColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="PanningColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="DelayColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="TrackRouting" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="TrackDelay" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="FilterDevices" minOccurs="0" type="SequencerTrackDeviceChain"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerMasterTrack"/>
  </xs:complexType>
  <xs:complexType name="SequencerSendTrack">
    <xs:all>
      <xs:element name="Name" type="xs:string" default="S01" minOccurs="0"/>
      <xs:element name="State" default="Active" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Active"/>
            <xs:enumeration value="Off"/>
            <xs:enumeration value="Mute"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="NoteColumnStates" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NoteColumnState" default="Active" minOccurs="0" maxOccurs="unbounded">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:enumeration value="Active"/>
                  <xs:enumeration value="Off"/>
                  <xs:enumeration value="Mute"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="NumberOfVisibleNoteColumns" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="NumberOfVisibleEffectColumns" type="xs:int" default="1" minOccurs="0"/>
      <xs:element name="VolumeColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="PanningColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="DelayColumnIsVisible" type="xs:boolean" default="false" minOccurs="0"/>
      <xs:element name="TrackRouting" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="TrackDelay" type="xs:float" default="0.0" minOccurs="0"/>
      <xs:element name="FilterDevices" minOccurs="0" type="SequencerTrackDeviceChain"/>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="SequencerSendTrack"/>
  </xs:complexType>
  <xs:complexType name="PatternPool">
    <xs:all>
      <xs:element name="HighliteStep" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="DefaultPatternLength" type="xs:int" default="64" minOccurs="0"/>
      <xs:element name="Patterns" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Pattern" minOccurs="0" maxOccurs="unbounded" type="Pattern"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="Pattern">
    <xs:all>
      <xs:element name="Name" type="xs:string" minOccurs="0"/>
      <xs:element name="NumberOfLines" type="xs:int" default="64" minOccurs="0"/>
      <xs:element name="Tracks" minOccurs="0">
        <xs:complexType>
          <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <xs:element name="PatternTrack" minOccurs="0" maxOccurs="unbounded" type="PatternTrack"/>
            <xs:element name="PatternMasterTrack" minOccurs="0" maxOccurs="unbounded" type="PatternMasterTrack"/>
            <xs:element name="PatternSendTrack" minOccurs="0" maxOccurs="unbounded" type="PatternSendTrack"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternTrack">
    <xs:all>
      <xs:element name="Automations" minOccurs="0" type="PatternTrackAutomation"/>
      <xs:element name="Lines" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line" minOccurs="0" maxOccurs="unbounded" type="PatternTrackLine"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="PatternTrack"/>
  </xs:complexType>
  <xs:complexType name="PatternTrackAutomation">
    <xs:all>
      <xs:element name="Envelopes" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Envelope" minOccurs="0" maxOccurs="unbounded" type="PatternTrackEnvelope"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternTrackEnvelope">
    <xs:all>
      <xs:element name="DeviceIndex" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="ParameterIndex" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="Envelope" minOccurs="0" type="Envelope"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternTrackLine">
    <xs:all>
      <xs:element name="NoteColumns" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="NoteColumn" minOccurs="0" maxOccurs="unbounded" type="PatternTrackNoteColumn"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="EffectColumns" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="EffectColumn" minOccurs="0" maxOccurs="unbounded" type="PatternTrackEffectColumn"/>
          </xs:sequence>
          <xs:attribute name="type" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="index" use="required" type="xs:int"/>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternTrackNoteColumn">
    <xs:all>
      <xs:element name="Note" type="xs:string" minOccurs="0"/>
      <xs:element name="Instrument" type="xs:string" minOccurs="0"/>
      <xs:element name="Volume" type="xs:string" minOccurs="0"/>
      <xs:element name="Panning" type="xs:string" minOccurs="0"/>
      <xs:element name="Delay" type="xs:string" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternTrackEffectColumn">
    <xs:all>
      <xs:element name="Value" type="xs:string" default="00" minOccurs="0"/>
      <xs:element name="Number" type="xs:string" default="00" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternMasterTrack">
    <xs:all>
      <xs:element name="Automations" minOccurs="0" type="PatternTrackAutomation"/>
      <xs:element name="Lines" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line" minOccurs="0" maxOccurs="unbounded" type="PatternTrackLine"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="PatternMasterTrack"/>
  </xs:complexType>
  <xs:complexType name="PatternSendTrack">
    <xs:all>
      <xs:element name="Automations" minOccurs="0" type="PatternTrackAutomation"/>
      <xs:element name="Lines" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line" minOccurs="0" maxOccurs="unbounded" type="PatternTrackLine"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
    <xs:attribute name="type" use="required" type="xs:string" fixed="PatternSendTrack"/>
  </xs:complexType>
  <xs:complexType name="PatternSequence">
    <xs:all>
      <xs:element name="PatternSequence" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Pattern" type="xs:int" default="0" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoopSelection" minOccurs="0" type="PatternSequenceSelection"/>
      <xs:element name="PatternNameWidth" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="HighliteStep" type="xs:int" default="0" minOccurs="0"/>
      <xs:element name="HighliteOffset" type="xs:int" default="0" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="PatternSequenceSelection">
    <xs:all>
      <xs:element name="CursorPos" type="xs:int" default="-1" minOccurs="0"/>
      <xs:element name="RangePos" type="xs:int" default="-1" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="type" use="optional" type="xs:string"/>
  </xs:complexType>
</xs:schema>
