DSLint - DecentSampler validation tool

Supported DS version: 1.15.0



<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://raw.githubusercontent.com/praashie/DecentSampler-schema/main/DecentSampler.xsd" type="application/xml" schematypens="http://www.w3.org/2001/XMLSchema"?>

<!--
    Boilerplate .dspreset file
    Source: https://www.decentsamples.com/docs/format-documentation.html#appendix-c-boilerplate-dspreset-file
-->

<DecentSampler minVersion="1.0.0">
  <ui width="812" height="375" layoutMode="relative"
      bgMode="top_left">
    <tab name="main">
      <labeled-knob x="445" y="75" width="90" textSize="16" textColor="AA000000"
                    trackForegroundColor="CC000000" trackBackgroundColor="66999999"
                    label="Attack" type="float" minValue="0.0" maxValue="4.0" value="0.01" >
        <binding type="amp" level="instrument" position="0" parameter="ENV_ATTACK" />
      </labeled-knob>
      <labeled-knob x="515" y="75" width="90" textSize="16" textColor="AA000000"
                    trackForegroundColor="CC000000" trackBackgroundColor="66999999"
                    label="Release" type="float" minValue="0.0" maxValue="20.0" value="1" >
        <binding type="amp" level="instrument" position="0" parameter="ENV_RELEASE" />
      </labeled-knob>
      <labeled-knob x="585" y="75" width="90" textSize="16" textColor="AA000000"
                    trackForegroundColor="CC000000" trackBackgroundColor="66999999"
                    label="Chorus" type="float" minValue="0.0" maxValue="1" value="0" >
        <binding type="effect" level="instrument" position="1" parameter="FX_MIX" />
      </labeled-knob>
      <labeled-knob x="655" y="75" width="90" textSize="16" textColor="FF000000"
                    trackForegroundColor="CC000000" trackBackgroundColor="66999999"
                    label="Tone" type="float" minValue="0" maxValue="1" value="1">
        <binding type="effect" level="instrument" position="0" parameter="FX_FILTER_FREQUENCY"
                 translation="table"
                 translationTable="0,33;0.3,150;0.4,450;0.5,1100;0.7,4100;0.9,11000;1.0001,22000"/>
      </labeled-knob>
      <labeled-knob x="725" y="75" width="90" textSize="16" textColor="AA000000"
                    trackForegroundColor="CC000000" trackBackgroundColor="66999999"
                    label="Reverb" type="percent" minValue="0" maxValue="100"
                    textColor="FF000000" value="50">
        <binding type="effect" level="instrument" position="2"
                 parameter="FX_REVERB_WET_LEVEL" translation="linear"
                 translationOutputMin="0" translationOutputMax="1" />
      </labeled-knob>
    </tab>
  </ui>
  <groups attack="0.000" decay="25" sustain="1.0" release="0.430" volume="-3dB">
    <group>
      <sample loNote="21" hiNote="21" rootNote="21" path="DefaultPiano-21.aif"
              length="805888"/>
      <sample loNote="22" hiNote="33" rootNote="33" path="DefaultPiano-33.aif"
              length="807552"/>
      <sample loNote="34" hiNote="45" rootNote="45" path="DefaultPiano-45.aif"
              length="759168"/>
      <sample loNote="46" hiNote="57" rootNote="57" path="DefaultPiano-57.aif"
              length="756480"/>
      <sample loNote="58" hiNote="69" rootNote="69" path="DefaultPiano-69.aif"
              length="758656"/>
      <sample loNote="70" hiNote="77" rootNote="77" path="DefaultPiano-77.aif"
              length="595328"/>
      <sample loNote="78" hiNote="89" rootNote="89" path="DefaultPiano-89.aif"
              length="457600"/>
      <sample loNote="90" hiNote="96" rootNote="96" path="DefaultPiano-96.aif"
              length="469888"/>
      <sample loNote="94" hiNote="108" rootNote="108" path="DefaultPiano-108.aif"
              length="75264"/>
    </group>
  </groups>
  <effects>
    <effect type="lowpass" frequency="22000.0"/>
    <effect type="chorus"  mix="0.0" modDepth="0.2" modRate="0.2" />
    <effect type="reverb" wetLevel="0.5"/>
  </effects>
  <midi>
    <!-- This causes MIDI CC 1 to control the 4th knob (cutoff) -->
    <cc number="1">
      <binding level="ui" type="control" parameter="VALUE" position="3"
               translation="linear" translationOutputMin="0"
               translationOutputMax="1" />
    </cc>
  </midi>
</DecentSampler>

WARNING: Clicking "Validate!" will send all content to an external server.
Don't get me into trouble by entering personal details.
I'm not trying to save your crap, but it might still be logged somewhere.

Validation output


About

This is a tool for developing sampler instruments for DecentSampler. Just load a .dspreset from your computer, or paste a snippet in the editor.

This isn't a generic XML syntax checker - we're looking for true DecentSampler preset compliance through DecentSampler-schema!

Schema version

DSLint is currently supporting DecentSampler 1.15.0.
The schema has been updated on Wed, 17 Dec 2025 03:01:27 GMT.

Credits

Quickly hacked together by Praash.

Embedded code editor: Ace
Deployment platform: Fly.io
XML schema validation: lxml (Python bindings for libxml2)