Linux 音乐符号软件:进展报告,第一部分

作者:Dave Phillips

以下文章介绍了 Linux 上五个最活跃的符号软件项目的开发状态报告。它们大多数都在开发中,但都已在其开发轨道上进展顺利,并处于不同的可用性状态。


LilyPond 连接

在开始我的报告之前,我必须补充几句关于 LilyPond 及其与此处介绍的程序的特殊关系。

我曾在本专栏之前的文章中写过关于令人敬畏的 LilyPond,我很高兴地报告该项目仍然活跃并在其 2.12 稳定分支中蓬勃发展。LilyPond 的开发任务和维护职责由庞大的用户和程序员社区管理,它确实是一项完全成熟的作品。许多用户从其他流行的音乐符号程序切换到它,尽管它具有文本格式界面和命令行操作。LilyPond 的输出质量确实非常吸引人。

由于其纯 ASCII 文本界面,许多用户都在寻找有效的 LilyPond GUI。本文中评测的大多数程序都可以被视为 LilyPond 前端,但它们对 LilyPond 的支持种类和程度各不相同。它们的范围从专门的文本编辑环境到基于符号的音序,但在所有情况下,LilyPond 都是驱动其符号功能的引擎。在某些情况下,需要具备 LilyPond 的工作知识,而其他程序则完全向用户隐藏 LilyPond 的存在。


音乐符号软件:一般评论

音乐符号软件为应用程序开发人员带来了一些相当大的问题。一个功能齐全的符号程序涉及复杂的图形机制、灵活的音频和 MIDI I/O,以及对导入和导出各种文件格式的支持。此外,开发人员必须决定他们的软件属于作曲家的助手还是音乐排版员的类别。这种区别决定了程序基本设计的许多重要方面,尤其是在用户界面级别。

许多软件包或多或少成功地结合了这些设计因素,但专业质量排版的需求需要专门的程序。从通用音序器打印的音乐可能有用,但它不太可能与专用音乐排版员(如 LilyPond)的输出相媲美。

所有音乐符号程序的基本要求包括各种乐谱布局功能、数据输入方法、音乐符号调色板、音频输出支持模式以及打印完成乐谱的选项。基本程序可能只包含可能功能的有限子集,而更专业的软件提供更多功能,以便更好地控制作品的细节。当然,随着更大的控制,复杂性也随之而来。音乐符号程序的设计者努力在易于操作和功能扩展之间取得平衡。

考虑以下用户的需求:桌面作曲家可能只需要一个简单的符号调色板,但他们也可能需要支持 MIDI 输入(文件或实时)以及该输入的准确再现。使用高级音乐(即非编程)语言的作曲家可能根本不需要 MIDI,但他们肯定需要诸如广泛的符号调色板、声部提取,甚至可能需要通过 Python 或另一种通用语言中的例程来支持乐谱操作等功能。商业音乐软件世界提供了涵盖这一系列需求的程序。FinaleSibelius 是 Windows/Mac 世界中最著名的全方位服务符号程序中的两个,并且有许多低成本和功能较少的软件包可用(在 Google 上搜索“music notation software”)。

音乐符号也出现在现代音频/MIDI 音序器中,但实现必然受到限制。功能齐全的符号程序需要是一个独立的应用程序,尽管我必须承认,诸如 CubaseRosegarden 等音序器中的符号工具对于诸如主音谱、和弦指南和相对较短的作品等目的来说当然是足够的。在这些程序中可以完成更雄心勃勃的工作,但它们的符号能力只是多用途设计的一个组成部分。但我必须指出,Rosegarden 的开发人员在其音序器的符号页面上倾注了大量精力,并且还值得注意的是,Rosegarden 包含导出到 LilyPond 功能。


测试平台

我选择了一个纯粹的 Ubuntu 8.10(内核 2.6.27-9)系统作为测试平台。我的决定部分受到 Ubuntu 最新软件包存储库的影响,我在其中找到了任何和所有必需的构建实用程序和其他依赖项。实时音频支持不是绝对必需的,尽管在实时环境中音频输出可能会得到增强。


Denemo

Denemo 具有双重身份,既是用于创作和编辑 LilyPond 乐谱的带 GUI 的编辑器,又是基于符号的 MIDI 作曲环境。最近在 Denemo 上的工作大大改进了 GUI 和程序的整体稳定性,并且在 0.8.0 公开发行版中添加了许多新功能。目前的开发非常紧张,开发团队对新功能甚至是不寻常的功能的建议持开放态度。

Denemo 的 UI 选择使用菜单系统而不是保存符号集合的图形调色板显示。乍一看,这种设计似乎不利于快速工作流程,但 Denemo 提高效率的关键在于其广泛使用键盘快捷键。几乎程序的每个方面都可以通过计算机键盘访问,一旦用户熟悉了键盘分配,工作流程就会快速移动。

图 1. Denemo 0.8.2

数据输入也可以通过 MIDI(实时或文件)、现有的 Denemo 文件或 LilyPond 乐谱以及实时音频 (!) 进行。此外,Denemo 可以通过使用 Scheme 编程语言进行扩展。用户可以为程序定义和显示新的菜单项,这使 Denemo 在本文评测的 LilyPond 助手程序中处于独特的地位。Scheme 不是一种难学的语言(它是 Lisp 的变体),即使学习一点点也可以为您的 Denemo 体验带来相当大的力量。

Denemo 充满了对作曲家来说很酷的功能。您可以在图形和文本编辑模式之间自由切换,支持数字低音和吉他和弦符号,并且其 Scheme 界面增加了算法作曲的潜力。[给 Denemo 开发人员的旁注:这将是一个非常酷的功能!] 您可以为您首选的音频和 MIDI 输出播放应用程序定义,包括使用 Csound 作为其音频渲染引擎的相当非凡的能力。因此,作曲家可以通过标准符号界面访问 Csound 令人难以置信的音色。Rosegarden 音序器可以用作生成 Csound 乐谱的符号前端,但它不提供与 Csound 本身的集成连接。据我所知,只有 Denemo 提供这种连接作为音频输出的选项。

文件可以以 Denemo 自己的 XML 格式或 LilyPond 的原生格式加载和保存。您也可以导出为 PDF。唉,在撰写本文时,MusicXML 不支持导入或导出,但 LilyPond 的 musicxml2ly 实用程序可用于将 MusicXML 文件转换为 LilyPond 文件。

过去版本的 Denemo 曾遭受稳定性问题和学习曲线陡峭的困扰。我很高兴地报告,稳定性似乎不再是问题,并且现在有大量有用的和最新的参考资料、示例文件和用户级文档。


Frescobaldi

Frescobaldi 来自杰出的 lilypond-kde4 软件的开发人员。Frescobaldi 本身不是符号编辑器。相反,它为以 LilyPond 的原生文本文件格式编辑乐谱提供了专门的环境。该程序提供诸如语法高亮、在线帮助(针对 LilyPond 和 Frescobaldi 本身)和乐谱预览等便利功能。其用户界面精美而有吸引力,并且该程序易于掌握。

图 2. Frescobaldi 0.7.7

最新的 Frescobaldi 需要最新的 KDE4,因此它不太可能在较旧的 Linux 系统(例如,64 Studio 2.1 或 JAD 1.0)的软件包存储库中可用。它也从我指定的 Ubuntu 8.10 存储库中消失了,但正如我之前提到的,该系统足够现代,可以容纳足够的构建环境。任何缺少的依赖项都可以通过 Synaptic 快速解决,并且我编译和安装最新版本的程序时没有遇到任何问题。

我对开发人员有一些建议。目前,基本的工作流程要求我在预览编辑之前保存我的编辑。我希望看到一种编辑模式,其中包含一键预览器,如果这种模式可行,则跳过显式保存。我对 Frescobaldi 的打印功能还有另一个抱怨。在撰写本文时,Frescobaldi 仅打印到 PostScript 或 PDF 文件。如果可以从程序本身打印到我的系统打印机,那就太好了。最后,鉴于 LilyPond 能够从其原生文件格式生成 MIDI 文件,也许可以添加一个播放实用程序?

除了那个愿望清单之外,我喜欢 Frescobaldi,并将密切关注它的发展。如果您一直在寻找专用的 LilyPond 编辑器(并且宁愿不学习如何使用 emacs),您应该查看一下 Frescobaldi。


Canorus

Canorus 最初是本文第 2 部分中描述的 NoteEdit 项目的一个分支。当时,似乎 NoteEdit 的程序员计划放弃该项目,因此 Reinhard Katzmann 组建了一个新的开发人员小组来推进该项目。Canorus 是他们努力提供“一个免费的可扩展音乐乐谱编辑器[,它]支持音符书写、各种文件格式的导入/导出、MIDI 输入和输出、脚本等等”的结果,Canorus 0.7 的 beta 版本是他们为实现该目标的最新成果。

图 3. Canorus 0.7beta

Canorus 网站强调该软件是 beta 质量的。虽然开发版本引入了许多早期版本中没有的功能,但它的运行可能不如公共稳定版本 0.5 那么稳定。简而言之,beta 版本不应被视为现阶段的严肃工作。欢迎您查看它;开发人员希望收到用户的报告,但如果您走在边缘,请注意风险。

稳定版和开发版都可以通过 Canorus 网站上的链接获得。官方可安装软件包适用于 Debian 和 Windows,以及 zip 或 tarball 格式的平台中立源代码包。

完整构建需要在编译源代码之前满足一些依赖项,包括最新的 Qt4 和工具链中的 cmake 实用程序。LaTeXLyX 查看器是构建文档所必需的,但我为 Ubuntu 8.10 找到的版本与 Canorus 不兼容,我无法构建文档。幸运的是,文档构建是可选的,因此如果您的构建也因文档而失败,请不要担心——只需继续执行上面列出的过程步骤即可。唉,您将无法从“帮助”菜单中召唤用户级文档,但这方面的不足在一定程度上可以通过 GUI 的工具提示和程序相对容易操作来弥补。

一点抱怨:我意识到我正在测试 beta 版本,并且文档很可能被编译并构建到最终的公开发行版中,但我认为开发人员最好即使在预发布版本中也以编译格式提供文档。令我惊讶的是,像 Ubuntu 8.10 这样最新的系统没有提供用于构建 Canorus 文档的工作工具链,我很乐意从 Canorus 网站下载用户级文档。无论最终软件包包含哪种格式,网站上的简单 HTML 版本都将是对文档材料的令人愉快的补充。

安装程序没有自动将启动图标添加到我的“应用程序”菜单中,所以我通过在 xterm 提示符下输入 canorus 来启动程序。-h 或 --help 均不可用命令行帮助。当 Canorus 启动时,您会看到它的启动画面几秒钟,然后程序会显示一个带有单个起始小节的画布。

Canorus 已经拥抱并扩展了最初在 NoteEdit 中发现的功能集。突出的功能包括用于复调符号的优秀输入系统、通过 ALSA 音序器(即,多路复用 MIDI I/O)的 MIDI 连接、使用 Python 和/或 Ruby 进行脚本编写、丰富的标准符号选择以及对用户定义事件的支持。

Canorus 在“选择”或“编辑”模式下运行。在后一种模式下,音乐符号使用鼠标和常用的 emacs 键绑定(Del 删除选定的符号,Ctrl-Z 撤消,Ctrl-A 全选等等)输入到谱表(当然是用户可定义的)并从中删除。项目可以分为单独的表(Canorus 术语,表示符号画布),或者单独的表可以容纳不同的项目。每个表都包含用于 MIDI 通道和通用 MIDI 乐器分配的控件。上下文菜单已被避免,取而代之的是下拉菜单,这可能会让一些用户感到沮丧,但我发现这种设计使屏幕相对整洁。

关于文件支持:您可以导入 MIDI 文件和 MusicXML 格式的文件。您可以将您的工作保存为 Canorus 项目存档格式 (*.can) 或其基于 XML 的文档格式,或者您可以选择将其导出为 LilyPond 或 MusicXML 文件。您也可以将您的工作导出为 MIDI 文件或 PDF 或 SVG 格式的图形文件。Canorus 通过 LilyPond 过滤来打印您的符号。您可以在“工具/设置”菜单中指定您的 LilyPond 二进制文件,您还可以在其中选择您首选的 PDF 查看器(LilyPond 的默认输出格式)。

Canorus 与其出色的前身非常相似,其清晰的呈现方式和整体易用性。正如我之前提到的,beta 版本需要测试人员,因此如果您愿意承担一些风险,您可以帮助开发这个出色的程序。

加载 Disqus 评论