在发声边缘:第 24 篇文章
这是我为 LinuxJournal.com 撰写的第 24 篇专栏文章。那已经是
整整两年都在直接处理有关
不断扩展的 Linux 音频软件领域的问题和新闻。
在本月的专栏中,我将关注当今该领域正在进行的一些值得注意的进展。
然后,我将介绍一些关于我最近
使用 LilyPond 的具体新闻。
我必须向期待一篇详细介绍
LilyPond 的读者道歉,这本应在我最近的音乐符号软件系列文章中出现。正如
Heather Mead 在上个月的 Linux Journal 的“网络专栏”中指出的那样,
我已经在一个之前的专栏中评论过该程序。
然而,那篇评论涵盖了
大约两年前的 2.2.0 版本的 LilyPond,而其
稳定版本现在是 2.6.6。您可以阅读
之前的评论 此处 和
此处。
这次,我将重点关注 LilyPond 自 2.2.0 版本以来的一些变化。
Facelift++
以下注释是关于一些
备受瞩目的 Linux 音频应用程序的开发状态的迷你报告。基本的 Linux 声音系统
状况良好,成熟版本的 ALSA、JACK、LADSPA、MidiShare、
libsndfile 和其他中低级系统组件现已可用。Linux 音频应用程序背后的
引擎运行良好,这要归功于
各种内核调整,其中一些应用程序已达到
专业可用性的状态。当然,问题仍然存在。与 Win/Mac 音频
用户可用的硬件支持相比,硬件
支持仍然狭窄。此外,配置困难仍然可能成为
新用户的绊脚石。
此外,GTK1.2 和 Qt3 看起来已经过时,我们一些
最优秀的代表性应用程序也随之显得过时。
幸运的是,新的工具包已经出现,它们看起来好多了,
并且具有超越外观的吸引力。GTK2 和 Qt4 已经解决了
早期版本缺陷的问题,因此程序员应该可以享受
更好的编程资源,用户应该可以在
与程序界面的交互中获得更大的一致性。每个人都受益,因此
最近的大部分开发都与 GUI 的重大更新有关,这不足为奇。
到 GUI 的重大更新有关。
Ardour 开发团队正在将原始程序移植到 GTK2。一个
alpha 版本可供普通用户使用,但像所有 alpha 阶段的
软件一样,该软件包仅用于测试。也就是说,它被公认为
不稳定,发布仅是为了识别需要开发人员
关键响应的领域。目前没有计划发布 beta
版本,但幕后正在进行大量工作。我猜想
Ardour 将在相对较短的
时间内达到其 beta 发布阶段。同时,您仍然可以使用优秀的 Ardour 0.99,
这是基于 GTK1.2 的 Ardour 的最后一个稳定版本。0.99 的错误修复/维护
版本应该在截稿时间前发布。
图 1. Ardour2(截图由 Paul Davis 提供)
Hydrogen 鼓机/节奏编程器正在进行改版,
以将其带入 Qt4 的新世界。然而,Hydrogen 也
正在经历一个重新定义的时期。当尘埃落定时,我们
可能会看到一个非常不同的 Hydrogen,一个远超其原始
用途演变而来的 Hydrogen。开发人员正在努力对该程序进行一些不错的设计改进,
包括用于音高乐器的模式编辑器
和更强大的乐器设计功能。这些和其他
新功能正在 Hydrogen 开发人员
邮件列表中进行热烈讨论。您可以在
列表
存档.
图 2. Hydrogen(截图由 Artemiy
Pavlov 提供)
Csound5 的第一个公开发布版本即将到来;事实上,当您阅读本文时,它可能已经
上线了。为这个版本付出了非凡的努力,其新功能列表
太长了,无法在此处一一列举。有人可能会说,其最突出的新
功能是 Csound API,这是一个程序员接口,可以
更轻松地为 Csound 本身编写前端程序。API 还使
在独立的外部
应用程序中使用 Csound 庞大的信号处理和合成资源变得更加容易。其他值得注意的改进包括大量的错误
修复和底层代码改进、许多新的操作码、更全面的
用户级文档、JACK 支持、Python 接口和
适用于每个受支持平台的易于操作的安装程序。请查看本
专栏,了解未来关于公开发布版本的报告,但 Csound5 现在就可以使用。
专栏,了解未来关于公开发布版本的报告,但 Csound5 现在就可以使用。
因此,请毫不犹豫地尝试当前可用的
版本。
本专栏的常客都知道我是 Rick Taube 的
Common Music 的忠实粉丝。对于那些不熟悉它的人来说,Common Music 是一种用于
生成旨在用于目标(例如
通用合成环境(Csound、Common Lisp Music、
SuperCollider3)、音乐符号程序(Common Music Notation、FOMUS)、
以及通过 MidiShare 和 PortMIDI 系统进行的实时输出。对
FOMUS 的支持尤其令人感兴趣。Common Music 现在与
LilyPond 挂钩,使用户能够利用 Common Music 的生成算法
和 LilyPond 出色的可打印输出。Common Music 中的实时
调度/接收也得到了很大的改进,
并且 PortMIDI 接口的添加扩展了 Common
Music 的实时目标数量。如果我必须选择三个我离不开的计算机音乐应用程序,
其中两个可能会每天都在变化,
但我始终需要 Common Music。
Ardour、Hydrogen、Csound 和 Common Music 都是
多平台设计。由于 JACK,Ardour 和 Hydrogen 可以在 Linux 和 OSX 上运行,
Csound 和 Common Music 始终可用于各种
平台,包括 Windows、Mac 和各种 UNIX 版本。
Linux 音频开发人员和用户将有机会在下一届 Linux 音频会议(又名 LAC2006)上
相遇并互相问候。
本次活动将重返德国卡尔斯鲁厄,并将再次在
美妙的 ZKM(卡尔斯鲁厄艺术与媒体技术中心)举行。本次
会议将于今年 4 月 27 日至 30 日举行。LAC 是 Linux 音频社区的一项重要
活动,所以现在就预订吧。
进入新的池塘
自我在 2.2.0 版本中评论 LilyPond 以来,LilyPond 的基本用法已经发生了一些变化。
现在假定使用默认乐谱布局,包括女高音谱号、
普通拍号(即 4/4 拍号)和 C 大调调号(无
升号或降号)。图 2 中的屏幕截图是通过以下两行
LilyPond 代码生成的
\version "2.6.3" {c'4 e'8 g' bes'4 a'8 g' c'4 e'8 g' bes'4 c''}
图 3. 简单的 LilyPond
“\version”命令不是强制性的,但我包含它是为了避免
LilyPond 编译器警告。
我将代码保存为 ex-1.ly,并仅使用默认
编译器选项对其进行了处理
dlphilp@localdomain:~$ lilypond ex-1.ly GNU LilyPond 2.6.3 Processing `ex-1.ly' Parsing... Interpreting music... [3] Preprocessing graphical objects... Calculating line breaks... Layout output to `ex-1.ps'... Converting to `ex-1.pdf'...
LilyPond 的默认布局输出格式现在是 PostScript,默认
转换格式是 Adobe PDF。TeX/DVI 仍然可用作
选项。PNG 图形格式已作为可选的 LilyPond
输出目标添加,MIDI 文件输出仍然可以通过“\midi”
命令使用。“\layout”命令已取代旧的“\paper”,
如果您想要可打印格式以及 MIDI 文件,则现在是必需的。
随着这些更改的到位,我之前对 LilyPond 的描述中的代码
仍然可以编译并产生该文章的
屏幕截图中所见的结果。对于本次评论,我做了一些不同的事情。我一直在
创作一些古典吉他曲,借助
MIDI 音序器进行创作,并且我一直计划为它们准备 LilyPond 乐谱。
我将本月的专栏作为我开始
该项目的动力。
我的作品以标准 MIDI 文件格式保存,但我决定不使用
LilyPond 的 midi2ly,这是一个将 MIDI 文件转换为 LilyPond
文件的实用程序。我在之前的评论中写过 midi2ly,而且我看不出有任何理由
再次回顾这些内容。相反,我决定手动准备乐谱,
直接将代码写入 LilyPond 文件。自从我上次使用
LilyPond 以来已经过了很长时间,所以我基本上是在重新学习
它。对我来说这很好;我认为这将是一个很好的
方式来深入了解 LilyPond 语言的细节。
首先,我花时间使音乐的第一个小节看起来
完全符合我的要求。我复制了该代码并对其进行了编辑以创建
第二个小节,然后复制这些小节以创建第三个和
第四个小节。第 5 小节只需要对我为第 1 小节创建的代码进行稍微编辑。
第 6 小节引入了新的考虑因素,在掌握了这些因素之后,我
在整首曲子中重复使用了该代码。正如您在图 3 中看到的,这首
曲子非常重复,适合快速编辑/复制/粘贴
循环。我在需要时学习了语言元素,并且很快
就感觉像在池塘里一样自在。
图 4. LilyPond 乐谱摘录
您可以查看此
示例和其他示例的 LilyPond 源代码和完整 PNG 显示
此处。我
应该承认,尽管 LilyPond 代码可能非常优雅,但我的代码
一点也不精细。但是,它很清晰,而且确实完成了工作。我会继续
努力成为更好的 LilyPond 用户,并且随着我的 LilyPond 技巧的提高,我会更新我网站上的
文件。
顺便说一句,我在准备
这首曲子时充分利用了两个 xterm 和 GhostView。我在一个窗口中编辑我的 LilyPond 代码(使用 vi,
自然是 vi),在另一个窗口中编译它,并在
“监视”条件下打开 GhostView
gv --watch prelude.ly &
GhostView 中的显示会在每次编译后立即更新。非常
酷。
我必须赞扬 LilyPond 开发人员对文档的认真
态度。LilyPond 的在线教程和参考
资料旨在清晰简洁地传达信息,并
为读者提供立即可用的示例。示例图像
链接到其生成代码,并鼓励用户根据需要复制和
粘贴示例代码。
图 3 还演示了 LilyPond 对某些布局
注意事项的默认响应。在第 6 小节和所有类似的小节中,八分音符的符干
都会自动反转。请注意,在某些系统(前四行音乐)的末尾添加了
拍号,以提醒
视奏者下一个系统的节拍变化。
另请注意,在旋律和伴奏音符重叠的地方,例如
在第 22 小节中,冲突已自动解决。最后,在
乐曲的最后两个小节(此处未显示)中,琶音符号会自动调整大小
以适应和弦的范围。
在这些和其他不太明显的决策中,我们看到了
LilyPond 设计师的手笔。重要的是要意识到,我与音符之间的间距、
符干的高度和方向、
连音线和延音线的弧形、小节号、
标题区域的字体以及许多其他影响印刷音乐的
外观和可读性的细微因素无关。这些因素绝不是
事后才考虑的。LilyPond 开发人员已经关注了音乐排版的细节,
其程度是其他任何符号
软件都无法比拟的。作为一名视奏者,我必须强调,由此产生的
乐谱不仅美观,而且美妙且完全可读。
当然,我可以随时出于任何
目的覆盖 LilyPond 的默认设置。开发人员在智能默认设置和完全
灵活性之间取得了平衡,我在其他应用程序中很少遇到这种情况。
铜版音乐排版是一门神秘且可能正在消亡的
艺术。几个世纪的实践已将这门艺术带到了
Schirmer 和 Baerenreiter 等出版社出版的优秀乐谱中所见的完美程度。
现在,计算机辅助排版几乎取代了旧的
方式,但符号软件往往未能重现
雕刻师作品质量的因素。LilyPond 的开发人员
认为音乐符号的任何方面都不容忽视,
他们对细节的关注在整个项目中都得以体现。
LilyPond 是可用的最佳开源编程
示例之一,证明了对其开发进行(并将继续进行)的深入研究。
Han-wen Nienhuys 和 Jan Nieuwenhuizen 是 LilyPond 的
核心开发人员,但 LilyPond 现在是一支才华横溢的
开发人员团队关注的焦点,他们致力于制作最好的音乐符号和
出版系统。我见过 Jan 和 Han-wen;他们是杰出而聪明的
人,他们重新定义了“热情”一词。LilyPond 一直是他们
多年来的心血结晶,他们对卓越的热情体现在
该程序的方方面面。同样显而易见的是,LilyPond 的
开发人员和用户社区也分享了他们的奉献精神和热情。
结帐时间
本月的专栏就到这里。下个月我将更新我对 Denemo 和 NoteEdit 音乐符号编辑器的介绍,
它们都支持
为 LilyPond 格式化的输出。下期再见!
资源
Ardour
Dave Phillips 是一位音乐家、教师和作家,居住在
俄亥俄州芬德利。自
1995 年首次接触 Linux 以来,他一直是 Linux 音频社区的积极成员。他是 Linux 音乐与声音之书 的作者,以及
Linux Journal 中的众多文章。可以通过
dlphilp@linux-sound.org 联系他.