音响前沿:Linux 音乐制谱软件

作者:Dave Phillips

当我还是一个未经指导的摇滚音乐人时,我羡慕那些能够读写乐谱的同行。他们可以接触和学习对我来说简直是天书的材料。因此,在我音乐生涯的某个阶段,我致力于掌握乐谱的基础知识。我从不后悔为这项学习付出的努力。我现在建议我的认真学习音乐的学生,如果他们花时间掌握西方标准乐谱的惯例,他们在音乐领域的职业生涯将会更加灵活和有利可图。

使用 Linux 的音乐家们会很高兴地发现,他们最喜欢的操作系统支持一些优秀的音乐制谱软件包。作为 UNIX 高质量打印传统的继承者,特别是基于 TeX 的打印,Linux 可以声称拥有适用于任何平台的一些最强大的制谱软件。这当然是一个大胆的声明,因此在接下来的几个月中,本专栏将推出一系列最佳 Linux 音乐制谱软件的简介。希望您喜欢这次调查。

一些历史和定义

现代西方乐谱是数百年来不断演变实践的成果。从最初作为记录单音素歌咏圣歌的手段开始,该系统已经发展到可以容纳各种令人眼花缭乱的符号、标记和对象。所有这些都旨在传达作曲家对其乐器和人声资源的音乐意图的或多或少准确的描述。学习阅读和书写标准西方乐谱是一项不简单的任务,熟练掌握需要大量的时间和精力。幸运的是,您的计算机可以减轻音乐创作、乐谱准备和乐谱打印的许多繁琐方面。您只需要您的机器和适合这项工作的软件——即合适的 Linux 软件。

音乐制谱软件可以分为音乐记谱和音乐排版这两个重叠的类别。记谱软件可以被认为是作曲家的助手,即虚拟音乐手稿。GUI 通常与此类软件相关联,它通常呈现一个五线谱显示和常用音乐符号调色板的图形表示。界面可以通过鼠标、计算机键盘、外部 MIDI 设备(例如键盘、MIDI 吉他或管乐控制器)或这些控件的任意组合来控制。此外,通常可以导入 MIDI 文件以转换为乐谱。

要使用音乐记谱软件,用户首先从符号调色板中选择乐谱对象,然后将其输入到五线谱显示中。这通常发生在音符放置在五线谱上时,并伴随实时的音频。只要用户希望从乐谱中的任何点试听他的作品,通常都可以进行回放。当乐谱完成时,它可以保存或导出为各种格式,例如 PostScript 和 Adobe PDF,用于打印;MIDI 文件,用于在 MIDI 音序器中播放或编辑;或 MusicXML,用于与其他制谱程序交换。此类别中的 Linux 音乐制谱编辑器包括 NoteEdit、MuseScore 和 Rosegarden 音频/MIDI 音序器。

音乐排版软件准备出版质量的乐谱。用户编写一个规范文件,该文件编码其乐谱的详细信息。然后,该文件由排版程序处理。输出通常以可缩放的图形格式出现,可以使用常见的打印工具和兼容 PostScript 的打印机进行打印。给定足够强大的排版规范语言,乐谱外观的每个细节都可以根据需要进行定义,以实现完美可读且精美印刷的音乐。

Linux 从其 UNIX 血统中继承了强大的文本准备软件,包括 TeX 和 PostScript 格式化和打印环境。这些工具旨在为高分辨率绘图仪和打印机渲染高质量的显示效果。很快,必要的字体、宏、符号和其他元素被组合起来,形成了强大的音乐排版软件包。事实上,TeX 是本文系列中介绍的某些应用程序的必需组件。

对于熟悉 Windows 和 Mac 流行制谱编辑器的图形显示的用户来说,规范语言可能看起来像是处理音乐乐谱这种视觉事物的一种糟糕方式。通常,Win/Mac 制谱编辑器属于记谱软件类别,对乐谱准备的精细细节的控制相对较少。准备用于打印的音乐手稿不一定是一个简单的过程。音符分组、变音记号的位置、连线要求、符干方向和许多其他因素都会影响印刷乐谱的外观和可用性。这些因素的变化无法轻松预测和适应,即使是计算机也无法做到。在最灵活的基于 GUI 的记谱软件中,底层程序逻辑必须做出影响输出的决策。相比之下,规范语言允许在依赖图形界面的程序中不常见的输出自定义程度。正如我们将看到的,诸如 LilyPond 或 Mup 之类的音乐排版语言很容易学习,并且通过一点练习,您就可以快速输入复杂的乐谱指示。

音乐乐谱文件格式

MIDI 和音频应用程序享有广泛接受的标准文件格式的便利。大多数音频软件可以加载和保存在常见的 WAV 和 AIFF 格式的文件,并且大多数 MIDI 应用程序都支持导入和导出标准 MIDI 文件格式(也称为 MIDI 文件)的文件。唉,直到最近,还没有出现用于在音乐记谱和排版应用程序之间交换音乐乐谱数据的标准格式。许多制谱程序导入和导出 MIDI 文件,但这种支持的程度各不相同。尽管读取和写入 MIDI 文件的能力是制谱软件中的一个很大的便利,但 MIDI 文件格式根本无法替代用于显示音乐乐谱符号的全功能交换格式。

最近,MusicXML 格式已被推广为通用的音乐乐谱文件格式。MusicXML 有很多值得推荐的地方。它是一种开放且人类可读的格式,基于流行的 XML 标记语言;它没有繁琐的专利和版税问题;并且它已经被数十种商业和免费音乐制谱程序支持。如果您需要在应用程序或平台之间移动您的音乐乐谱,请考虑将其保存为 MusicXML 格式。

像 abc 一样简单...

我在本系列中的第一篇简介专门介绍精彩的 abc 乐谱系统。abc 是一种免费开源的乐谱规范语言,最初旨在提供一种在简单的 ACSII 文本中记录单音旋律的方法。它已经发展成为一个灵活的环境,能够表示复调作品,并提供处理扩展以添加多格式输出和 MIDI 实现。一个庞大的用户社区围绕 abc 软件家族发展壮大,现在可以在网上找到许多示例乐谱,这些乐谱展示了这种简单但有用的语言的力量。abc 在 Creative Commons 许可证下获得许可。

构建 abc

没有所谓的 abc 软件包。设置完整的基本 abc 系统所需的只是对该语言的一些了解、一个文本编辑器以及一个或多个可用的 abc 文件格式转换工具。语言细节在 abc 标准中描述,该标准可从主要的 abc 网站获得(请参阅“资源”)。诸如 vi 或 emacs 之类的常用编辑器是编写 abc 文件所需的全部。写入文件后,可以使用以下命令将其转换为标准 MIDI 文件abc2mid或使用以下命令转换为可打印格式abc2mtex(MusicTeX),abc2ps(PostScript) 或abc2pdf(Adobe PDF)。本地 abc 格式播放器 (playabc) 也可用。这些应用程序可以从主要的 abc 网站下载。您需要从其源代码构建和安装它们,但大多数都遵循这个简单的命令序列

	gcc -o progname progname.c

abc 支持实用程序是简单的程序,没有不寻常的依赖项。如果在编译它们时收到致命错误消息,则您可能没有安装完整的 C 编程开发系统。有关安装 C 开发包(通常称为 devel 包)的详细信息,请查阅您发行版的软件包管理系统。完整的 AGNULA/Demudi 和 Planet CCRMA 系统包括这些必需的软件包。

使用 abc

在我们的第一个示例中,我们在文本编辑器中输入一些简单的 abc 代码,将其转换为 PostScript 和 MIDI 文件,并使用 playabc 播放器播放本地 abc 文件。我们首先以 4/4 拍输入一个简单的音阶,从中央 C 开始。音阶播放一次,然后重复。打开您的文本编辑器并输入以下代码

  X:1
  T:A Scale In C
  C:DLP
  M:4/4
  L:1/4
  K:C
  C D E F | G A B c |1 c/2B/2A/2G/2 | F/2E/2D/2C/2 :|2 c4 ||

以下是这段代码中发生的事情。首先,我们有一个标头,提供各种信息性和特定于乐谱的详细信息

  X A reference number
  T Title
  C Composer's name
  M Meter
  L Default rhythmic unit
  K Key signature

一系列乐谱音高和节奏紧随标头之后,小节线用 | 和 || 符号表示。重复符号用 |: 和 :| 标记表示。音符从中央 C (C) 延伸到高八度 (c),第一和第二结尾用 |1 和 :|2 符号表示。默认的节奏单位 (L:1/4) 是稳定的四分音符,直到结尾。八分音符在此处用 /2 标记表示,连音线通过对音符进行分组而不留空格来实现。打印时,这段代码

	c/2 B/2 A/2 G/2

将产生一系列未连线的单个八分音符。这个分组

	c/2B/2A/2G/2

表示相同的音符已连线(参见图 1)。

将此文件另存为 first-test.abc,然后使用 abc2ps 程序将其格式化为 PostScript 输出。以下命令处理 first-test.abc 并生成名为 first-test.ps 的 PostScript 文件

	abc2ps first-test.abc -o -O first-test.ps

图 1 说明了在 GhostView PostScript 文件查看器中看到的输出。

At the Sounding Edge: Music Notation Software For Linux

图 1. 来自 abc 的简单音阶

现在,让我们从同一个 abc 文件创建一个 MIDI 文件。我们需要 Jim Allwright 的 abcMIDI 软件包中的 abc2midi 实用程序,我们以这种方式使用它

	abc2midi first-test.abc -o first-test.mid

我们的新 MIDI 文件现在可以在任何 MIDI 作曲和编辑环境中使用,例如 MusE 或 Rosegarden。顺便说一句,abcMIDI 软件包还包括一个用于将 MIDI 文件转换为 abc 文件的实用程序。

您可以使用诸如 TiMidity、pmidi 或 ALSA 的 aplaymidi 之类的播放器播放您的新 MIDI 文件。如果您非常缺乏资源,可以使用 Don Ward 的 playabc 程序播放本地 abc 文件 (first-test.abc)。playabc 的输出仅发送到 PC 扬声器,但在没有任何其他声音产生硬件的情况下,playabc 可以是一个受欢迎的实用程序。

到现在为止,应该很明显,使用 abc 涉及许多单独的程序。幸运的是,有 GUI 前端可用于简化各个工具的配置和使用。图 2 和图 3 分别展示了 Wil Macaulay 的 Skink GUI(需要 Java)和 Jean-Francois Moine 的 tkabc GUI(需要 Tcl/Tk)。这些程序将完整系统所需的组件组合在一起,以编辑、显示和渲染 abc 文件,并将所有需要的工具放入一个容器中。

At the Sounding Edge: Music Notation Software For Linux

图 2. Skink abc 编辑器

At the Sounding Edge: Music Notation Software For Linux

图 3. Tkabc

结束语

abc 可以用于几乎任何需要标准乐谱的目的。其活跃的社区已经扩展了原始实用程序,以记录不寻常的乐器,例如风笛或扬琴,处理 MIDI 文件 I/O 并适应复杂的复调发声。互联网上有许多优秀的 abc 乐谱,以至于出现了用于索引和在线定位它们的工具。该语言易于学习和使用,支持的输出格式提供高质量的可打印乐谱,并且规范不断发展。abc 是分布式开发的典范,并且强烈推荐将其添加到 Linux 声音和音乐软件集合中。我期待它的持续发展。

加载 Disqus 评论