Buzztard 项目,第 1 部分
2008 年 11 月,Buzztard 项目维护者宣布公开发布其旗舰应用程序的 0.4.0 版本。此版本的 Buzztard 带来了新功能和性能增强,包括扩展了对原始 Buzz 歌曲和机器的支持,以及对其 GUI 的令人印象深刻的改造。
在本文中,我将介绍全新改进的 Buzztard(图 1)。如果您使用过以前的版本,您会想要查看 0.4.0 版本(甚至可能还有 Subversion 源代码中的 0.5.0 开发版本),如果您是 Buzztard 和 Tracker 的新手,那就一起来体验吧。Tracker 是使用计算机制作音乐的一种很酷的方式,而 Buzztard 是目前最酷的 Tracker 之一。

Buzztard 是现代音乐 tracker 设计的一个很好的例子。该程序提供了音乐制作所需的各种元素,包括作曲界面、乐器设计工具、内部音频效果处理等等。Buzztard 遵循著名的 Windows Buzz tracker 的设计考虑因素。Tracker 作曲界面类似于大多数 tracker 的标准 UI,包括用于 pattern 和歌曲创建的页面。Buzz(以及 Buzztard)添加了更多的制作便利设施,最值得注意的是“机器”的部署,这是 Buzz 术语,指的是在 tracker 内部和为 tracker 本身设计的乐器。稍后我将详细介绍机器,但现在让我们看看构建和安装最新 Buzztard 需要什么。
获取、构建、配置
如前所述,Buzztard 当前的公开发布版本是 0.4.0。遗憾的是,Buzztard 可能未包含在您的发行版软件仓库中,即使列出了,也不太可能是最新版本。例如,我的 Ubuntu 8.10 和 64 Studio 系统的主仓库都没有列出 Buzztard,我的 JAD 1.0 系统只有 0.3.1 版本可用。要获得最新和最好的版本,您需要从公共 tarball 或 SVN 源代码编译和安装它。幸运的是,构建过程相对简单,Buzztard 主页上提供了完整的说明。
Buzztard 的音频功能依赖于最新安装的 GStreamer 软件。GStreamer 将在未来的文章中单独介绍,所以现在我们只需要知道它为 Buzztard 提供了媒体处理机制,并且您需要最新的 GStreamer 才能构建最新版本的 Buzztard。
根据首席开发人员 Stefan Kost 的说法,Buzztard 的组件应按以下顺序编译和安装
- bml - Buzz 机器加载器。
- gst-buzztard - Buzztard/GStreamer 连接。
- buzzmachines.com - 下载 Buzz 机器集合,用于 Buzztard。
- buzztard - Buzztard 主程序。
- bsl - Buzz 歌曲加载器。
项目 1、3 和 5 表明 Buzztard 致力于支持原始 Buzz tracker 用户制作的机器和歌曲文件。还有其他原始 Buzz 机器软件包可用,但列出的组件是 Buzztard 的关键部分。
每个组件都使用以下命令序列构建和安装。对于公开发布的软件包
./configure make sudo make install
对于本文中评测的 Buzztard 0.5.0 SVN 源代码
./autogen.sh make sudo make install
测试人员应将 --enable-debug 选项添加到 autogen 命令。如果出现问题,Buzztard 将发出有用的错误报告发送给开发人员。如果您不理解报告的含义,请不要担心,开发人员会知道该怎么做(希望如此)。
安装前三个组件后,最好检查一下安装情况。首先,您需要设置一个重要的环境变量,以便 Buzztard 可以找到其所需的 GStreamer 插件
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10:$GST_PLUGIN_PATH
接下来,您需要运行 gst-inspect 实用程序来检查您的机器集合的有效性
gst-inspect bml
如果一切都在正确的位置,您将收到机器列表
dlphilp@maximus:~$ gst-inspect bml Plugin Details: Name: bml Description: buzz machine loader - all buzz machines Filename: /usr/local/lib/gstreamer-0.10/libgstbml.so Version: 0.5.0 License: LGPL Source module: gst-buzztard Binary package: gst-buzztard Origin URL: http://www.buzztard.org bml-Rout-Vibrato: Vibrato bml-Jeskola-Filter: Filter bml-Rymix-FlaserBox: FlasBox bml-WhiteNoise-s-Fuzzbox: Fuzzbox bml-Geonik-s-Overdrive: Overdrive et cetera...
上面显示的列表表示包含在测试包(buzz4buzztard)中的机器。这些机器位于 /usr/local/lib/Gear 中,分别在 Effects 和 Generators 目录下。Stefan Kost 建议下载 buzzmachines.com 上的 官方免费机器,而不是测试包。
如果您没有收到这样的列表,请仔细检查您的安装,并确保您从设置 GStreamer 插件路径变量的同一终端运行测试实用程序。
当所有部件都已编译和安装后,您就可以运行 Buzztard 了。再次强调,在运行程序之前,请确保插件路径环境变量已正确设置(将变量声明添加到您的 ~/.bashrc shell 配置文件中,以便在不每次设置的情况下运行 Buzztard)。公共软件包将自动设置此变量和其他变量,但如果您想要最前沿的 Buzztard(即从 SVN 源代码构建的),您必须手动设置这些变量。
使用 Buzztard:第一阶段
Buzztard 仍在开发中,但项目目标明确,开发人员在每个版本中都取得了持续的进步。然而,新用户和以前的 Buzz 用户应该知道,该程序可能无法完全像其前身那样运行,并且该项目的工作仍在继续。非常欢迎错误报告,因此如果您尝试了该程序并有话要说,请务必告诉 Buzztard 开发人员。
如果声明了 GST_PLUGIN_PATH,您可以通过在终端提示符下输入以下命令来启动程序
buzztard-edit
顺便说一句,Buzztard 可以带或不带 GUI 运行。此处仅描述 GUI 版本。
当程序初始化自身后,您应该看到类似于图 1 中屏幕截图的显示,但主显示中只有主机器。此时,最好运行另一个测试。
打开文件对话框,从 /usr/local/share/buzztard/songs/ 目录中的示例中加载歌曲。首先加载一个简单的演示歌曲,例如 buzz1.xml。当文件加载时,您应该看到该乐曲所需的插件及其参数在屏幕上向下滚动。加载过程完成后,单击“播放”传输按钮。如果您播放该文件没有问题,请尝试更复杂的乐曲。请注意,扩展名为 .xml 的文件是 Buzztard 原创的,而扩展名为 .bmw 和 .bmx 的文件是原始 Buzz 格式的作品。
顺便说一句,如果您单击“播放”但听不到任何声音,请检查 Buzztard 和系统混音器的输出音量级别。一些演示和乐曲需要调整音量才能听到,这一事实让这位评论员有些焦虑,直到他意识到发生了什么。
为了压力测试程序,请加载 Aehnatron-noPrimiFun.bmw,即图 1 中显示的文件。这首乐曲使用了大量复杂的机器,播放时长近 11 分钟。我很高兴地报告,它在我的 JAD 1.0 系统上使用 GStreamer jacksink 设备完美运行。QJackCtl 没有报告 xruns。
用户应注意,并非所有包含的演示都能顺利运行。有些会加载但不会播放,另一些可能根本拒绝加载。另请注意,GUI 可能并非总是正确更新,但简单的放大和缩小将正确地重绘显示。其中一些错误与系统相关,可能会在升级图形或音频子系统后消失。
播放演示文件时,请仔细聆听音频输出。如果您听到噼啪声、掉线或任何其他音频不一致,您可能需要切换默认的声音驱动程序。为此,打开“编辑/首选项”对话框,然后选择“音频设备”部分。GStreamer 后端为 ALSA、JACK、PulseAudio、OSS/OSS4(内核模块和来自 4Front Technologies 的软件包)和文件输出提供各种音频“sink”。新设备将在您下次按下“播放”键时激活。
唉,这些 sink 并非都同样有用,至少对于我当前的系统而言是这样。例如,在我的测试中,我发现 JACK sink 在我的 Ubuntu 机器上根本无法工作,但在我的 OpenSUSE 安装上工作正常。alsasink 在两台机器上都运行良好。抱歉,我没有测试 esd 和 PulseAudio sink。再次强调,Buzztard 的音频性能取决于 GStreamer 的功能,因此如果您遇到音频输出问题,您可能需要更新您的 GStreamer 软件包。
用户界面
Buzztard 的 GUI 分为选项卡式工作区,用于机器创建和连接、pattern 作曲、歌曲序列编排、sample 加载器/循环编辑器(又名 Buzztard 术语中的 Wave Table 选项卡)以及用于添加元数据和有关您的作品的其他信息的编辑器。Pattern 和歌曲选项卡遵循旧式 tracker 中的设计,其中音乐 pattern 被编写为事件列表,歌曲被创建为 pattern 序列。Sample 加载器/编辑器是旧式 Tracker 的另一个标准组件,尽管目前其在 Buzztard 中的功能相当有限。支持正向和乒乓循环,并且可以在 sample 编辑器中定义循环开始/结束点,但更广泛的编辑必须在专用 soundfile 编辑器中执行。
传统的 tracker 通常包含一些用于元数据的规定,例如标题、作曲家姓名和杂项注释。Buzztard 的信息选项卡延续了这一传统,提供了一个用于特定元数据的编辑器和一个用于添加自由文本的区域。信息选项卡还在其元数据字段中包含歌曲速度和拍号设置。
机器选项卡代表了从旧式 tracker 设计的演变。原始 tracker 采用简短的音频 sample 作为其主要声音源,这种设计反映在 Buzztard 的 wave table 选项卡中。后来的发展包括 MIDI 输出到外部硬件和软件声音源,将合成器和更强大的采样器添加到 tracker 的作曲目标中。机器结合了这些世界的优点,既可以作为音频处理网络中的简单元素,也可以作为完全独立的模块(图 2)。

现在让我们自己制作一点噪音,看看 Buzztard UI 如何用于原创作品。
使用 Buzztard:第二阶段
在 Buzztard 中制作音乐是一个多阶段的过程。该程序没有规定特定的工作流程,但该过程必须至少包括创建 pattern 事件列表和选择乐器或乐器来演奏列出的事件。在本例中,我将从设置我的乐器开始。
事件可以由机器或 soundfile 演奏。因此,我可以使用合成的低音鼓或采样的低音鼓,或者两者都使用。但是,它们的设置差异很大。机器是通过在机器图中单击鼠标右键并从弹出菜单中选择“添加新机器”来在机器选项卡中调用的。从生成器列表中选择一个机器,它将出现在图上。Shift-单击新机器以激活其布线状态,然后将导线拖到主机器中。现在,添加的机器已准备好用作您的 pattern 事件列表的乐器。以类似的方式,soundfile 成为上述 Wave Table 选项卡中的乐器。与机器一样,soundfile 将连接到 Pattern 选项卡中的特定 pattern。

我们的小例子演示了如何在 Ye Olden Way 中使用 Buzztard,即通过加载 soundfile 并使用 pattern 编辑器中的事件触发其声音。我们将 Matilda Tracker 机器添加到机器图中,将其连接到主机器,我们的音频制作单元几乎可以摇滚了。请记住,旧式 tracking 使用音频文件作为其声音源,因此我们需要在 Wave Table 选项卡中为机器选择并添加一些声音(图 3)。接下来,我们需要给它一些音符来播放。
Buzztard 的 Pattern 编辑器既类似于旧式编辑器,又与之不同。Pattern 以典型方式设计,通过在作曲网格中输入事件,但在 Buzztard 中,它们被分配给每个机器并按机器编号,因此多个机器可能具有完全不同的 pattern,但共享相同的 pattern 编号。Pattern 必须添加到序列选项卡,否则测试 pattern 将不会产生声音。如果选择器组合框(pattern 视图)或 pattern 列表(序列视图)中的 pattern 名称为灰色而不是黑色,则 pattern 尚未添加到序列中,并且不会播放。稍后我们将看到所有这些在 Buzztard 的歌曲序列作曲器中是如何工作的,但现在让我们继续了解 Pattern 编辑器。
传统的 tracker 通常为每个 pattern 提供固定数量的事件字段。机器概念需要更灵活的方法。每个机器都有自己的一组参数,这些参数可以在 pattern 事件列表中控制,因此您会看到 pattern 中字段的数量因机器而异。唉,此处空间有限,无法详细解释各种字段,但程序的工具提示提供了有用的基本描述。
事件使用计算机键盘输入到 pattern 网格中。默认情况下,计算机键盘底行的键将产生与钢琴白键相同的音符,从 C2 开始(实际发声的八度音阶可以在 Pattern 选项卡中设置)。QWERTY 键盘上的整个布局遵循此计划
S D G H J Z X C V B N M
这对应于钢琴的半音阶音符顺序
C# D# F# G# A# C D E F G A B
字母数字键的上行以类似的方式排列,以将音符范围延续到第二个八度音阶。进一步的八度音阶管理在 Pattern 选项卡中进行。
唉,尚不支持 MIDI 输入。但是,以这种方式使用计算机键盘很容易,并且可以成为非常快速的输入方法。
我们的测试将运行一个简短的音阶片段。要创建这样的 pattern,我们将光标定位在音符字段上,然后按下计算机键盘的指定键之一。图 4 显示了输入四个音符事件后的结果。您可以通过在 Pattern 编辑模式下单击“播放”按钮来检查您的 pattern 听起来如何。当您对您的 pattern 工作感到满意时,就该使用歌曲序列编辑器了。

图 5 显示了创建 pattern 后序列编辑器的默认外观。要创建序列,只需选择一个乐器列,然后输入特定机器的 pattern 编号即可。如果您每个机器有多个 pattern,您将使用单独的 pattern 编号(例如 00、01、02 等)。每个机器的 pattern 编号或名称都列在选项卡右侧的窗口中。

在歌曲选项卡中,单击“播放”传输按钮以收听您的 pattern 序列。恭喜,您已经在 Buzztard 中写下了您的第一首乐曲。很酷,不是吗?此时,您可以为您的新歌曲添加新的机器和 pattern,或者您可以决定停止并保存您的杰作以供后人瞻仰。
很高兴看到支持旧式方法,但 Buzztard 提供了使用 tracker 的全新方式。唉,我没有更多空间来描述其对作曲家的用途。演示文件将带您进一步了解该程序的巨大可能性,我建议新用户弯曲、折叠、纺锤和破坏这些演示,以更深入地了解 Buzztard 之道。
您可以将您的作品以 Buzztard 格式(.bzt 或 .xml)保存,无论是否包含外部文件,或者您可以选择以原始 Buzz 歌曲文件格式(.bmw 或 .bmx)保存,无论是否包含 wave 文件。抱歉,Buzztard 无法加载或保存流行的 MOD 或 IT 格式的音乐模块。该程序还包括一个录制实用程序,用于以各种压缩和未压缩的 soundfile 格式保存您的作品,并且作为进一步的便利,您可以选择混音到单个轨道或混音到每个声音源在您的乐曲中的单独轨道。
文档
程序的在线文档位于 /usr/local/share/gnome/help/buzztard-edit/C/buzztard-edit.xml。帮助按钮应调用此文件,但由于 GNOME 帮助系统中的错误,它在我的 OpenSUSE 10.2 和 Ubuntu 8.10 系统上不起作用。在非损坏的系统上,此命令将调用 GNOME 的默认帮助浏览器 (yelp) 并打开 Buzztard 帮助
yelp file:///usr/local/share/gnome/help/buzztard-edit/C/buzztard-edit.xml
幸运的是,buzz、combi 和 melo 演示文件提供了一系列渐进式的练习曲,用于构建您自己的杰作,如果所有其他方法都失败了,您可以向 Freenode 上的 #buzztard IRC 频道上的开发人员本人寻求帮助。
还提供了一个有用的 Buzztard 中的键盘快捷键列表供下载。
印象和展望未来
Buzztard 的设计与旧式 tracker 不同,足以在我的初始探索中给我带来一些问题。然而,在开发人员 Stefan Kost 的大力帮助下,我对该程序更加熟悉。新用户可能会发现 Buzztard 更容易学习,如果他们没有旧式包袱,即使像我这样更有经验的人也会发现 Buzztard 令人愉快地学习和使用。作为 Buzz 项目的延续,Buzztard 值得称赞,但其未来的发展在于其独特的开发。Buzztard 的 路线图 为该项目规划了一条雄心勃勃的道路。0.5.0 版本的公开发布旨在完成原始 Buzz tracker 的主要功能的包含,随后的版本将带来 MIDI I/O、OSC 支持以及与 Buzz 文件的进一步兼容性。确实雄心勃勃,但项目团队已经证明了他们对事业的奉献精神。我期待 Buzztard 革命的下一阶段。
在本文的第 2 部分中,我将采访 Buzztard 项目负责人 Stefan Kost。在那之前,保持良好的音调。