如何创造 Hydrogen 鼓组,自娱自乐并从中获利

Hydrogen 多功能、直观的界面让您可以通过录制几乎任何节奏并构建自己的鼓组,立即成为摇滚明星。
312 位读者喜欢这篇文章。
Drums

slgckgc。Opensource.com 修改。CC BY-SA 4.0

鼓机非常有趣。它们可以制造出令人惊叹的节拍,并且往往具有简单的界面。

我使用过的第一台鼓机是 Alesis HR-16。它有 49 个 16 位音色库和一个内置音序器。它不能安装在机架上让我很恼火,但另一方面,它可以放进邮差包里,所以我可以轻松地把它带到录音棚。

HR-16 的界面是最好的之一。它唯一的显示器是一个两行的 LCD 屏幕,它的所有功能都有专用的按钮在机器正面。要建立一条新的鼓线,您需要选择一个模式槽,进入录制模式,然后实时或逐拍地输入节拍。该单元最多可以容纳 100 个模式,您可以将这些模式串联成文件,包含多达 100 首歌曲。

HR-16 user interface

HR-16 鼓组的用户界面简单直观。

今天,我使用 Hydrogen 软件鼓机。其概念基本相同:将节奏输入到活动模式中,并构建一个模式歌曲。它简单直观,让你感觉立刻成为摇滚明星。

Hydrogen 的优点在于它不局限于 49 个 16 位声音的单个芯片。您可以使用自己的声音构建自己的鼓组。这意味着您可以简单地录制任何您想要用来制作节奏的声音,并在 Hydrogen 中对其进行排序。令人惊讶的是,它甚至都不难。

鼓组剖析

一个 Hydrogen 鼓组实际上只是使用 .h2drumkit 作为扩展名的 .tar 文件。

$ file ./mydrumkit.h2drumkit
mydrumkit.h2drumkit: POSIX tar archive (GNU)

TAR 存档中包含您想要用作鼓组的声音以及一个向 Hydrogen 描述鼓组的 XML 文件。 看起来像这样

    <instrument>
        <id>0</id>
	<name>Kick drum</name>
        <volume>1</volume>
        <isMuted>false</isMuted>
        <pan_L>1</pan_L>
        <pan_R>1</pan_R>
        <randomPitchFactor>0</randomPitchFactor>
        <filterActive>false</filterActive>
        <filterCutoff>1</filterCutoff>
        <filterResonance>0</filterResonance>
        <Attack>0</Attack>
        <Decay>0</Decay>
        <Sustain>1</Sustain>
        <Release>1000</Release>
        <exclude />
	<layer>
	    <filename>35kick.flac</filename>
            <min>0</min>
            <max>1</max>
            <gain>1</gain>
            <pitch>0</pitch>
            </layer>
    </instrument>



因此,构建一个鼓组非常简单

  1. 收集您想要的鼓组声音文件
  2. 生成一个描述您鼓组的 XML 文件
  3. 创建一个 tar 文件并将其加载到 Hydrogen 中

1. 声音

您的声音文件可以来自任何地方。您可以录制自己的声乐 Beatbox、卧室里的鼓组或自然的声音,或者您可以掠夺 freesound.org 以及任何您可以想象到的东西。

如果您的声音文件不是 FLAC 格式,请使用像 soxffmpegAudacity 这样的音频转换器将它们转换为 FLAC 格式。

使用 sox

$ sox foo.wav foo.flac

使用 ffmpeg,添加 -vn 标志以确保转换过程中不包含视频

$ ffmpeg -i foo.wav -vn foo.flac

在 Audacity 中,加载源声音文件并使用“文件” > “导出音频”菜单选项。在“导出音频”窗口中,选择 FLAC 作为您的输出格式。

安排声音文件

从技术上讲,您的鼓组可以按您想要的任何顺序拥有声音文件,或者按终端列表排序后的任何顺序。但是,很久以前,一些非常聪明的音乐技术人员提出了一套规范,规定了声音在合成世界中应该如何组织。他们称这个规范为 通用 MIDI,简称 GM

通用 MIDI 的优势在于,音乐家可以使用一个声音库创作歌曲或鼓序列,然后交换声音库(或者在 Hydrogen 的术语中称为“鼓组”),仍然可以获得基本相同的东西,只是声音不同。您的低音鼓仍然是低音鼓,您的小军鼓仍然是小军鼓,您的钹仍然是钹,只是这些声音背后的采样被交换了。您可以编写一个鼓序列,并在同一首歌曲的电子金属 Intro 版本以及精致的原声叙事版本中使用它。

您不必一定遵守 GM,但这并不是一个坏主意。

为了保持我的鼓组声音的井井有条,我根据 GM 规范命名每个鼓组中的声音。

$ ls mydrumkit/
35kick.flac
36kick.flac
37click.flac
38snare.flac
40snare.flac
41tom_low.flac
...

如果我没有 GM 有槽位的声音,我只是跳过该槽位。

这种方法也避免了命名方案的随意变化。我的鼓组中没有 kick drum BIG.flacbass drum deep.flac 文件。

当我制作的鼓组设法完全填充 GM 规范时,我给它 full 称号,这样用户就知道该鼓组是真正与 GM 兼容的。

2. 创建 drumkit.xml 文件

人们有时会对 XML 感到莫名其妙的恐惧,大概是因为它似乎有无限的标签,而且没有明确定义哪些标签是必需的,甚至不知道它们意味着什么。

Hydrogen 鼓组中的 drumkit.xml 文件大多是重复性的,并且足够简单,可以手动生成。您真正需要的只是一个文本编辑器和复制粘贴的意愿——很多次。

您的鼓组定义的标题部分打开一个 drumkit_info 元素,并提供关于该鼓组的元数据

    <drumkit_info>
        <name>
	  mydrumkit
	</name>
        <author>
          Seth
	</author>
        <info>
          This is my first drumkit. It contains sounds released under
          the CC-0 license.
        </info>
	<license>
	  CC-0
	</license>
	<instrumentList>

每个鼓组只输入一次,且仅在文件的顶部。

对于每个声音文件,假设一个声音文件代表一种乐器,则需要一个 instrument 块。基本的乐器块以以下内容开始

    <instrument>
        <id>0</id>
	<name>Kick drum</name>
        <volume>1</volume>
        <isMuted>false</isMuted>
        <pan_L>1</pan_L>
        <pan_R>1</pan_R>
        <randomPitchFactor>0</randomPitchFactor>
        <filterActive>false</filterActive>
        <filterCutoff>1</filterCutoff>
        <filterResonance>0</filterResonance>
        <Attack>0</Attack>
        <Decay>0</Decay>
        <Sustain>1</Sustain>
        <Release>1000</Release>
        <exclude />

一旦您掌握了创建鼓组的技巧,就可以探索一些使用多个声音文件来对应一种乐器的巧妙技巧。例如,钹在被敲击和用鼓槌敲击时具有独特的声音质量,但它仍然是相同的物理乐器。

不过,现在让您的乐器保持简单,每个乐器只使用一个文件。声音文件在乐器的 layer 块中被引用

    <layer>
      <filename>35kick.flac</filename>
      <min>0</min>
      <max>1</max>
      <gain>1</gain>
      <pitch>0</pitch>
    </layer>
    </instrument>

对每个声音文件重复该过程,然后关闭您的 instrumentListdrumkit_info 标签

</instrumentList>
</drumkit_info>

这就是您需要了解的所有 XML!

3. 创建一个 tar 存档

此过程的最后一步是将您的声音和 XML 包装在一个存档中。

如果您还没有这样做,请将您的声音文件和您的 drumkit.xml 文件放入一个专用目录中。假设该目录被称为 mydrumkit(尽管我希望您想出一个更具创意的东西)。

运行 tar 命令

$ tar cvf mydrumkit.tar mydrumkit

然后重命名您的 TAR 存档,以便 Hydrogen 识别它

$ mv mydrumkit.tar mydrumkit.h2drumkit

您完成了!这就是全部。您刚刚制作了自己的自定义鼓组。

加载您的鼓组

要在 Hydrogen 中使用您的鼓组,您必须导入它。

要导入一个鼓组,打开 Hydrogen 并点击“乐器”菜单,然后选择“导入库

importing drumkit file in hydrogen

要使用您的鼓组,您必须首先将其导入到 Hydrogen 中。

在“声音库导入”窗口中,点击“本地文件”选项卡。点击右侧的“浏览”按钮。

选择您的鼓组文件以加载它。导入过程只需一秒钟,所以如果它发生得太快,请不要感到惊讶。

要使用您的鼓组,在 Hydrogen 窗口的“声音库”选项卡中右键点击您的鼓组,然后选择“加载:

loading your drumkit file into hydrogen

要使用您的鼓组,请将其加载到 Hydrogen 声音库中。

如果您已经将数据输入到 Hydrogen 模式中,您的数据在切换鼓组后仍然存在。如果您遵循 GM,您的序列听起来应该基本相同,只是用不同的鼓组播放!

自动化

几年前,我和一个朋友在几周的时间里创建了 99 个 Hydrogen 鼓组。组织超过 1,000 个声音文件是我们不得不手工(并用耳朵)完成的事情,但在完成所有这些工作之后,我们最不想做的事情就是手动生成 99 个 drumkit.xml 文件。相反,我写了一个简单的 Python 脚本来为我们做重复的事情。

该脚本被称为 genhydro,其唯一目的是从一个装满 FLAC 文件的目录中生成一个 drumkit.xml 文件,并创建该目录的存档。

您可以在 GitLab 上找到该脚本。如果您不想手动生成 XML,请随意使用它。

从他人的辛勤工作中受益

Hydrogen 拥有一个强大且富有创造力的社区。您可以使用“导入库”窗口从其他用户处下载鼓组。

此外,您可以从 Slackermedia 下载我的 99 个鼓组。

现在去制作一些伟大的节拍吧!

Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。 他曾在电影和计算机行业工作,而且经常同时从事这两个行业。

1 条评论

感谢你提供的这些。我喜欢 Hydrogen。你也可以在无头模式(仅命令行)下运行它。 https://vid.me/N3WdL。我一直在考虑制作一个触摸屏,树莓派即插即用的 MIDI 鼓。

Creative Commons 许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.