K7DJ

【干货】拒绝伸手党!手把手教你编写 Decent Sampler XML,自制专属采样音源

12 0 采样捕手

最近发现不少搞电音和配乐的小伙伴开始从 Kontakt 转投 Decent Sampler 的怀抱了。原因很简单:它完全免费、跨平台(甚至能在 iPad 上跑),而且最核心的是,它的格式是基于 XML 的,这意味着你不需要昂贵的开发工具,用记事本就能撸出一个音色库。

很多哥们儿录了一堆 WAV 采样却不知道怎么封装,今天楼主就花点时间,把 Decent Sampler 的映射逻辑给哥几个拆解清楚。

一、 准备工作

在动笔写代码之前,你的文件夹结构建议长这样:

  • MyInstrument/ (根目录)
    • Samples/ (放所有的 .wav 文件)
    • MyInstrument.dspreset (这就是我们要写的 XML 文件,后缀改掉即可)

二、 XML 核心骨架

一个最基本的 .dspreset 文件结构如下,大家可以先看框架:

<?xml version="1.0" encoding="UTF-8"?>
<DecentSampler minVersion="1.0.0">
  <!-- 界面设置 -->
  <ui width="812" height="375" layoutMode="fixed">
    <tab name="main">
      <!-- 这里以后可以放旋钮 -->
    </tab>
  </ui>

  <!-- 采样映射 -->
  <groups>
    <group>
      <sample loKey="36" hiKey="48" rootNote="42" path="Samples/Kick_01.wav" />
      <sample loKey="49" hiKey="60" rootNote="54" path="Samples/Snare_01.wav" />
    </group>
  </groups>
</DecentSampler>

三、 必须掌握的核心参数

要把 WAV 变成音色,<sample> 标签里的这几个属性是你的“命根子”:

  1. path: 采样文件的路径。记住,是相对于 .dspreset 文件的路径。
  2. rootNote: 这个采样的“原音”所在的 MIDI 键位。比如你录了一个 C3 的钢琴,那这里就写 60
  3. loKey / hiKey: 采样覆盖的响应区间。比如你想让一个采样负责 C3 到 B3 这一组键位,那就设置 loKey="60" hiKey="71"。Decent Sampler 会根据 rootNote 自动帮你做重采样变调。
  4. loVel / hiVel: 力度分层。如果你录了轻重不同的采样,可以通过这个参数实现“重敲音色亮,轻敲音色柔”。例如:loVel="0" hiVel="64" 对应轻敲采样。

四、 进阶:如何添加界面控制(UI)

光有声音不行,还得能调。比如你想加个 ADSR 释放时间 或者 低通滤波 的旋钮。在 <ui> 标签里加入以下内容:

<control x="100" y="50" parameterName="Release" type="float" minValue="0.0" maxValue="10.0" value="0.1">
  <binding type="amp" level="group" position="0" parameter="ENV_RELEASE" />
</control>

这里的 binding 是灵魂,它把界面上的旋钮和引擎内部的参数(如 ENV_RELEASE)连在了一起。


五、 避坑指南(楼主血泪史)

  1. 大小写敏感:XML 对标签极其挑剔。<Sample><sample> 是不一样的,写错一个字母音色库就挂掉。
  2. 采样格式:建议统一使用 44.1kHz 或 48kHz 的 24bit WAV。别搞那些乱七八糟的压缩格式,容易报错。
  3. 路径符号:在 Windows 上虽然路径喜欢用斜杠 \,但在 XML 里为了兼容 Mac 和 iOS,请一律使用正斜杠 /
  4. 文件后缀:记得保存时把 .txt 改成 .dspreset

六、 总结

Decent Sampler 的强大之处在于它把复杂的采样逻辑回归到了代码本质。如果你有一堆珍藏的合成器采样或者是自己录的环境音,花半小时写个 XML 映射,它就能变成一个在任何 DAW 里都能用的插件。

有不懂的哥们在评论区留言,看到会回。觉得有用记得顶一下!

评论