Studio Dave 的随想

作者:Dave Phillips
所以现在我也是博主了。嗯,无论如何,这个专栏一直都像是一本日记,记录我在 Linux 音频和音乐软件世界中的生活和时代,如果你们觉得读起来和我写起来一样愉快,我就很欣慰了。尽管我即将成为博主,但我的文章风格和内容与之前的文章相比不会有太大变化,但为了符合大众对博客的定义,我会稍微不那么正式,有时也会更加个人化。Linux 音频和音乐软件的世界里并没有太多激烈的争议,但偶尔也会出现一些问题,我想就这些问题坦诚地表达我的看法。

我在 Studio Dave 完全使用 Linux。我有一个简陋的家庭工作室,用于音乐创作和录音,但它也是我教学实践的核心组成部分。学生们通过 Tom Cato 精彩的 Solfege 软件进行练耳训练,学习如何使用 Audacity 音频文件编辑器捕获和处理音频,并阅读由 LilyPond 乐谱排版软件精美呈现的标准乐谱。他们还可以看到和听到我用来播放他们的 CD、DVD 和 MP3 收藏的复杂控制系统(例如 XMMSMPlayerxine)。

我热情地推广使用计算机作为强大的学习辅助工具。我的大多数学生都使用运行 Windows 的电脑,所以我向他们推荐适用于该系统的软件。令人高兴的是,我最喜欢的一些工具是跨平台应用程序(例如 Solfege、Audacity、LilyPond),并且我尽可能推荐 FSF 认可的自由软件。我并不是特别热衷于宣传 Linux,但我很乐意与任何对此感兴趣的人谈论它。然而,学生们来找我主要是为了学习音乐,而不是计算机操作系统。

高级作曲专业的学生更有可能接触到 Linux,特别是如果他们打算上大学或音乐学院。这些学生很可能会遇到像 CsoundSuperCollider 这样的程序,我喜欢演示这些程序在 Linux 下运行得有多好。对于这些学生来说,系统的经济性也是一个额外的吸引力。对于普通学生来说,购买一台完全配备 Max/MSP、Pro Tools 和 Cubase 的 Mac 或 WinXP 系统是一笔相当昂贵的开销,我喜欢建议这些学生,除了昂贵的软件和供应商锁定之外,还有其他选择。

我最近的一个项目结合了 MIDI 音序、多通道音频录音和乐谱,所有这些都在 Linux 下完成。顺便说一下,该系统是基于 Debian Etch 的 Demudi 1.3,所以有点前沿,但这里展示的例子应该可以在任何类似的、具有优化音频/视频环境的 Linux 发行版下完成。

我的学生 Sam 正在练习古典吉他技巧。最近我们一直在演奏我从各种独奏作品改编而成的二重奏,当然,我的改编乐谱的打印页是由 LilyPond 排版的。Sam 的母亲演奏长笛,他的妹妹演奏竖琴,所以我决定为长笛、竖琴和吉他三重奏写一首简单的曲子。我启动了我值得信赖的 Linux MIDI 音序环境,开始工作。

图 1:Studio Dave 的 MIDI 作曲

图 1 展示了我典型的 MIDI 工作区,其中 Voyetra 古老的 Sequencer Plus GoldDOSemu 下运行。Josep Andreu 的 midirgui 将 Sequencer Plus Gold 的 MIDI 输出路由到出色的 QSynth 音色库合成器,该合成器运行着三个合成引擎实例。合成器的音频输出通过出色的 Jack Rack 效果处理器,QJackCtl 管理音频和 MIDI 连接。

QSynth 的用户可能会注意到,我当然不需要运行三个引擎,一个引擎就足以处理仅仅三个通道的 MIDI 数据,这种数据的纹理相对较轻,并且只有少量的连续控制器事件。啊,但我还有进一步的计划。我想将每种乐器录制到自己的通道,所以我用 midirgui 分离(重新通道化)了 MIDI 输出,以驱动三个 QSynth 引擎,每个引擎都有自己的音频输出端口。酷。

顺便说一下,我当前的台式机是一台低端的 800 MHz 机器,它实际上可以很好地运行 Ardour,但如果我只需要一个快速简便的多通道录音机,我只需启动 ecasound。我喜欢 ecasound,它工作完美,并且完全按照我的指示执行。

	ecasound -c -f:s16_le,3,44100 -i:jack -o:gfhtrio2.wav
这个调用启动了交互式工作会话(-c 选项),指示文件格式(-f 开关),并设置 I/O 选项(JACK 输入,WAV 输出)。启动 ecasound 后,我在 QJackCtl 中进行必要的连接,然后启动音序器。当我完成时,我点击 QJackCtl 中的“停止”按钮以结束 ecasound 会话。简洁明了。

请注意,文件格式定义转换为“有符号,16 位,小端,3 通道,44.1 KHz 采样率”,即一个 3 通道 WAV 文件。

偶尔有人问我,为什么我使用如此古老的 MIDI 音序器,而不是使用优秀的本地 Linux MIDI 音序器。嗯,Sequencer Plus 是一个功能强大的程序,用于录制和编辑 MIDI 数据,我花了很多年时间掌握它。这个程序非常以键盘为中心,经过二十年的自学练习,我可以像打字一样快速地使用 Sequencer Plus Gold 进行作曲。我也很高兴地报告,Sequencer Plus 在 DOSemu 下完美运行。

尽管我很热情,但我并不向现代 Linux MIDI 音乐家推荐 Sequencer Plus Gold。它没有撤消/重做功能,没有音频文件音序功能,没有制造商的支持,也没有源代码。它现在是免费软件,但除非你已经像我一样投入了大量时间,否则你很可能最好学习如何使用 Linux-sound.org MIDI 页面上列出的优秀的本地 Linux 音序器之一。

随着我的工作进行,我意识到我花了很多时间为每个会话设置一切。我必须将音频输出从 QSynth 引擎路由到 Jack Rack,并且我必须建立从音序器到 midirgui 以及从通道化器到 QSynth 引擎的 MIDI 连接。我很快意识到,如果我可以自动化信号路由和连接,我将节省时间。

Linux 音频爱好者现在可以使用 LASH 会话管理软件来帮助保存和回忆会话配置,但我的应用程序组合不了解 LASH(Jack Rack 除外)。啊,但 Linux 在命令行中具有魔力,所以我编写了这个小脚本来打开和准备我的会话。

  xdosemu -input \r big.bat &
  midirgui -l /home/dlphilp/gfhtrio.midir &
  qjackctl &
  sleep 7
  qsynth &
  jack-rack /home/dlphilp/racks/plate2x2.rack &
在编写脚本(我将其命名为 sequencer.scr)后,我使用以下命令使其可执行:

	chmod a+x sequencer.scr
该脚本展示了最简单的 shell 编程,但它是一个强大的助手。我将其添加到我的 Fluxbox 菜单中,以便我可以单击一下鼠标即可启动整个会话,在几秒钟内打开我的工作区。我可以进一步修改音序器批处理文件,以便在启动时加载特定的乐曲,但我正在处理三首不同的乐曲,并希望在音序器打开后选择我的文件。可以为其他项目编写类似的脚本,并且可以轻松地想象和实施更多的便利功能。

在脚本中,操作顺序至关重要。必须在 QJackCtl 之前打开 Midirgui 才能获得正确的端口编号,并且 sleep 命令必须持续足够长的时间,以确保 QSynth 和 Jack Rack 在 JACK 启动并运行后打开。打开 DOSemu 的命令接收一个批处理文件,该文件安装 DOS MIDI 驱动程序并打开 Sequencer Plus。脚本的这部分可以放在任何地方。Midirgui 和 Jack Rack 都包含命令行选项来打开特定文件。QSynth 保留其上次设置,因此在打开时即可使用。

QJackCtl 的 Patchbay 在这种安排中是必不可少的。我可以将所有连接(MIDI 和音频)保存为 Patchbay 配置文件,以便即时调用和重新连接,如果我在“设置/选项”选项卡中选择“激活 Patchbay 持久性”,我可以指示在启动时激活哪个配置文件。可以通过单击一下鼠标来激活或停用配置文件,并且可以随时加载新配置文件。

我的“一键式配置管理器”通过消除与必要的设置例程的交互,鼓励了参与。我更愿意在短暂的时间内工作,因为我知道我的工作区可以在瞬间设置和连接。就我而言,即使学习一点点 Linux shell 编程也是非常值得的。

关于音乐:我认为它达到了我想要的效果,它完全是 实用音乐。我用 oggenc 转换了原始 WAV 文件,所以你可以通过收听我的 Trio #2(免费 OGG 压缩音频格式)来判断结果。

下一步:LilyPond。表演者都阅读标准乐谱,包括我用 LilyPond 制作的乐谱。我非常熟悉 LilyPond 的基本功能,可以轻松地制作出可用的乐谱,所以我认为这一步会很顺利和容易。

哎呀,我真是大错特错了。

我应该提到,我最近升级到了 Xorg 7。这本身就是一个悲惨的故事,但现在我将跳过其中的血腥细节。无论升级过程中还发生了什么,都完全搞砸了我的 LilyPond 安装,导致出现与 Guile 相关的错误。我决定走高端路线并重新编译 LilyPond。哦,接踵而至的苦难:首先,我必须解决 LilyPond 的一些 Python 脚本中的一些语法错误。唉,这个修复并没有解决 Guile 错误,所以我决定将 Guile 从 1.6.8 升级到 1.8.0。

更多的苦难。我必须先编译并安装 GNU MP,然后才能编译 Guile 1.8。没什么大不了的,安装 GMP 后,Guile 构建顺利进行。回到 LilyPond,但首先我将 /usr/bin/python2.4 符号链接到 /usr/bin/python,以防我遇到更多 Python 问题。我提到我在构建过程中也收到了一些 Python 语法错误吗?显然它们与版本有关,升级到 2.4 消除了这些错误。

最后,我可以使用 Guile 1.8.0、Python 2.4 和 GCC 4.0.4 开始编译 LilyPond。瞧,LilyPond 2.8.4 构建没有问题,我可以继续我的项目了。我直接从音序器的钢琴卷帘显示上手动将乐谱编码到 LilyPondish 中。我知道这听起来很麻烦,但对我来说既快速又容易。最后,我处理了 LilyPond 项目文件,只在默认选项值中添加了 --png 标志。最后一步在我的 Trio #2 LilyPond 页面创建了 PostScript、PDF 和 PNG 文件。该页面还包括使用 Sequencer Plus 创建的 MIDI 文件。

昨晚,我将三重奏的乐谱以及包含原始 WAV 录音的音频 CD 交给了 Sam。WAV 文件是用 ReZound 编辑的,音频 CD 是用 Gcombust 刻录的。MIDI、音频、乐谱、媒体,全部由 Linux 管理。

即将推出:Studio Dave vs. Xorg 7,linuxaudio.org 的进展,更多喜欢 ecasound 的理由,Studio Dave 的电脑获得重大升级(我加入 AMD64 俱乐部),以及关于一些新的和不太新的 Linux 音频和音乐软件的随机笔记。敬请期待。

加载 Disqus 评论