Paul Davis:对挑战的热情

作者:Dave Phillips

Paul Davis 的 JACK 音频服务器是现代 Linux 音频系统的基石,他的 Ardour DAW(数字音频工作站)被认为是该系统中的旗舰应用程序。他还为许多其他声音和音乐软件项目做出了重大贡献,包括 ALSA,Linux 内核的默认声音系统。

在以最优等成绩毕业于英国朴茨茅斯理工学院生物分子科学专业后,他开始了作为软件工程师、系统程序员和顾问的职业生涯,为多家技术公司和研究所工作(摘要可在 www.ak.tu-berlin.de/menue/edgard-varese-gastprofessur/paul_davis 在线查阅),专门从事 UNIX C/C++ 环境。1994 年,他成为 Amazon.com 的第二名员工,在那里他为这家新兴的在线书店开发了必要的软件。自 1998 年以来,他一直在运营 Linux Audio Systems,这是一家商业企业,“……专注于使用 Linux 作为音频和 MIDI 应用程序的平台,特别关注实时性能和商业工作室工具”,正如他本人所描述的那样。目前,他居住在柏林,并在柏林工业大学担任 Edgard Varèse 客座教授。

Paul Davis: an Ardour for the Challenge

Paul Davis

除了作为编程大师的声誉外,Paul 在 Linux 音频界还被高度评价为团队领导和大型分布式开发项目实践管理的典范。他为自己的项目吸引了一批非常有才华的开发人员,他的意见和观点经常被新手(和非新手)程序员征求。以下采访揭示了其中一些原因。

编写音频软件

DP: 您的教育和职业经历指向在商业或科学领域担任程序员。您何时以及为何决定以编写音乐和声音软件为生?

PD: 在我离开 Amazon.com 后,我感觉我想永远离开编程。起初这很容易,因为我忙于在家照顾我一岁的女儿。然而,几年后,我开始探索音乐制作作为一种爱好,我立即意识到,对于录音来说,计算机和硬盘录音是未来的发展方向。由于各种原因,我不打算使用 Windows 或 Mac,但我决定利用我对 Linux 和我十年 UNIX 编程的了解,在 Linux 上做一些事情。事实证明,当时(1997 年)Linux 上可用的工具真的无法胜任这项任务,我愚蠢地决定自己编写。这发生在我不需要赚钱的时候,我基本上专注于自己的需求和愿望,最初主要集中在基于模式的作曲和实时合成上。最终,对合理的录音机的需求变得越来越清晰,在 1999 年底,RME 发布了第一张 Hammerfall 卡,具有 26 个输入通道、26 个输出通道和一个现有的 Linux 设备驱动程序(用于 OSS,而不是 ALSA)。在我看来,我需要其中一张卡,我应该更新驱动程序,然后编写一个 HDR 应用程序。驱动程序花了几周时间,一两个月后,我有了可用的录音机。仅仅几个月后,我和其他早期用户/测试人员认识到,仅靠录音机是没用的,我们需要一个编辑器。如果我当时知道现在所知道的关于其中涉及的内容,我想我就会放弃了。

回到问题的重点,我直到大约三年前我的财务状况变得岌岌可危时,才真正尝试从我的音频软件中赚钱。在那之前,这几乎完全是出于热爱和乐趣。从那时起,它变得有点负担——我努力工作合理的时间,因为人们现在实际上是在付钱给我,而且在美国靠免费赠送软件很难谋生!我经常想,我和我的家人应该搬到一个生活成本更低的国家,在那里我从 Ardour 赚到的收入会比在这里走得更远。现在,唉,这对我们来说不是一个选择。而且,虽然我不喜欢过多地谈论它,但收入对我来说确实是一个主要问题,一个孩子即将去电影学院,另一个孩子可能在几年后开始四年制大学。我不清楚我是否可以诚实地说我 正在 靠做这件事谋生,但不知何故,我仍然在这里,而像 BeOS、Creamware 和许多其他公司已经来来去去。这让我感到惊讶!

为音乐家和录音师编写软件重振了我对编程的热爱。帮助人们与他们的创造力联系起来是一种真正的乐趣,而面对巨大的技术障碍是非常令人满意的。我在这之前 15 年所做的编程实际上只是一种热身,无论是在我从中获得的满足感方面,还是在我从我的工作如何影响他人中获得的快乐方面。

DP: 为大型网络业务编写软件与编写音乐和声音软件之间有哪些重要的区别?重要的相似之处是什么?

PD: 我认为除了需要编写好的代码之外,没有任何相似之处。在过去七八年中,我的工作方式的乐趣之一是,我的工作首先直接由用户决定,然后由我作为程序员的审美观决定。如果我决定我编写的一些代码不够好,我可以自由地完全重写它以满足我自己的标准。在标准的商业运营中工作,这种自由很难找到,你的优先事项和截止日期是基于营销现实(和营销愿望)。有人可能会说,这会延迟开发和发布,在某种程度上这是真的。但我更感兴趣的是在五年内不面临糟糕的遗留代码问题,而不是满足某人关于发布应该何时完成的想法。Linux 内核也遵循了大致相同的路径,并且获得了巨大的回报。内核代码在很大程度上保持着越来越干净,即使内核变得越来越大和更复杂。我不能说 Ardour 在这方面取得了同样的成功,但存在类似的动机。

有一天,我想更多地了解 Ableton Live 的内部开发方式。我见过 Ableton 的负责人,他对我说的关于他们如何使用许多正式的软件开发方法给我留下了深刻的印象。我对这些技术几乎没有经验,我有时想知道 Live 是一款伟大的程序是因为这些技术还是尽管有这些技术。

DP: 自由软件世界中的项目管理被比作放牧猫。您深受同事的尊敬,很明显您知道如何控制一群非常有才华的猫。那么,您的秘诀是什么?在管理一个国际团队(免费)在一个像 Ardour 这样复杂的项目上工作时,您遇到了哪些重大问题?

PD: 在我们开始添加 MIDI 支持之前,问题并没有真正以很大的方式出现。这需要在代码中进行许多深入的更改,从那时起,我们有两个代码分支正在开发中。我们面临着将 MIDI 分支与非 MIDI 分支(直到最近,大多数开发都在那里进行)保持同步的真正需求。对此没有技巧——只有努力工作和“尽早合并,经常合并”的政策,可悲的是我自己并没有坚持这一政策。更广泛地说,最困难的问题是沟通问题。我们大量使用 IRC,它对我们作为一个松散连接的团队来说非常有效。但这对我个人来说付出了巨大的代价,因为我倾向于感到有必要在一天中的任何时间都可以与芬兰、巴厘岛、澳大利亚和旧金山的人交谈。

话虽如此,正如你所指出的,Ardour 有一些非常有才华的人在为该程序工作,这些人通常不需要太多监督。的确,我现在花在沟通上的时间要多得多,但这真的类似于我读到的关于 Linus 在内核中的作用。我的主要作用是促进新功能的一致性和适当的时机,而不是成为那个想出所有很酷的东西的人(尽管我想认为我有时仍然会想出一些非常酷的东西)。

音乐事项

DP: 您一生中是否曾接受过正规的音乐学习?

PD: 我在初中学习了长笛,在高中时我经常在我们家的钢琴上乱弹。我还做了很多磁带录音机实验音乐——我和几个朋友是 1970 年代后期英国(文化上)非常重要的“磁带交换”网络的一部分,该网络认可各种怪异的实验和噪音制作。我早期的音乐品味主要受到德国电子音乐、实验作曲家和极简主义的影响,这极大地影响了我作为一个十几岁的“噪音”制造者想要尝试的声音。大约 15 年前,我尝试学习塔布拉鼓,但放弃了,意识到我像我担心的那样无望。大约七年前,我开始学习大提琴,但是当我注意到,尽管(相对而言)是一个有相当多空闲时间的人,我仍然没有练习到临近课程时才练习,我就放弃了。让我非常高兴的是,我的女儿(现在 13 岁)已经开始学习大提琴,并且现在正进入一个她开始听起来非常悦耳的阶段。

DP: 对于想要编写音乐和声音软件的程序员来说,正规的音乐背景有多重要?

PD: 嗯,从某种意义上说,几乎没有。编写音频软件时的大多数问题都与音频或音乐无关——它们往往与计算机和编程语言以及您或其他人的错误有关。但在另一个层面上,清楚地了解世界各地各种各样的音乐结构,以及真正了解复调音乐在历史上和今天的创作方式,对于开发对真正音乐家真正有用的软件非常有帮助。

DP: 您目前喜欢什么音乐?

PD: 我的数字音乐收藏中有近 10,000 首歌曲,我还有 800-1,000 张黑胶唱片专辑。很难用特定的风格来标记它,但在检查后,我发现我拥有的环境电子音乐家 Steve Roach 的音乐比任何人都多,而且出于某种奇怪的名称相似的巧合,极简主义作曲家 Steve Reich 位居第二(尽管远远落后)。当我工作时,我经常倾向于听漂流的电子音景,尽管几乎同样频繁地我收听 SomaFM 的 Groove Salad 或 Secret Agent 电台。在其他时候,我可能会听重型 dub 雷鬼、Kurt Elling 撕裂爵士标准、卡纳提克印度古典音乐或灵魂咳嗽。

关于 Ardour 和 JACK

DP: Ardour 2 进展顺利。Ardour 项目的该分支还剩下哪些重要的开发?

PD: 目前没有计划太多。我认为在不久的将来会发布 2.5.1 版本[它在 2008 年 9 月发布],之后,它将主要是错误修复。我们可能会添加一些新功能以达到 2.6,但我不认为 2.x 系列会超出这个范围。

DP: Ardour 3 当然是自由音乐和声音软件世界中最受期待的软件包之一。它目前的状况如何?在计划发布之前还剩下哪些主要挑战?

PD: 有一个直接的挑战,那就是合并 2.4 和 2.5 之间的更改到 3.0 树。已经做了很多工作,涉及在 3.0 树中独立更改的许多内容,因此,合并带来了一些重大挑战。当 3.0 发布时,它将具有最新 2.x 版本的所有功能。

比完成此合并更长远的是,我们有三个主要领域需要关注。首先是让 3.0 实际工作在与 2.x 相同的功能级别。这将需要大量持续和小的错误修复,以纠正沿途损坏的小东西。我们还需要确保 3.0 可以处理使用 2.x 创建的会话——目前情况并非如此。最后,我们需要确保我们的初始版本对于进行 MIDI 音序的人来说实际上是有用的。我设想我们的 MIDI 工作流程会发生很多演变,这已经与大多数 DAW 非常不同,但我们需要从一些实际有用而不是仅仅是一个预告片的东西开始。从我们的早期测试人员来看,我们似乎拥有了这一点,但仍然需要解决相当多的粗糙边缘和小错误。

DP: 除了当之无愧的假期之外,您对 Ardour 3 之后的自己有什么设想?

PD: 我们已经在 Ardour 4 及以后的待办事项清单上列出了项目。老实说,想到那么远让我头疼。我现在主要关心的是将 Ardour 朝着我可以获得合理(美国)收入的方向发展,并将 3.0 发布给公众。

DP: JACK 也发展良好,我了解到 jackdmp 项目最终将取代当前的 jackd。程序员级别和普通用户将看到哪些改进?

PD: 对于程序员来说,几乎没有任何改进。Jackdmp 在 ABI 和 API 上都与 jackd 兼容,因此您可以针对其中一个编译 JACK 客户端,并针对另一个运行它们。这完全是出于设计——这不是偶然,也不会改变。对于 JACK 的开发人员来说,jackdmp(在 C++ 中)是一个比 jackd 更干净的代码库,这是未来切换到它的主要动机之一。JACK 在设计上是相当复杂的软件,但 jackd 代码库(在 C 中)有太多的黑客行为,没有足够清晰的设计,无法成为我们前进的良好基础。Jackdmp 的内部代码设计,除了支持多处理器之外,更加模块化,更加面向对象,并且基本上更容易扩展甚至理解。

对于用户来说,jackdmp 为并行音频处理配置(实际上相当不常见)提供多处理器支持,并且在未来,它可能会为用户提供使所有处理器都被 JACK 利用的方法,即使音频处理配置没有固有的并行性。除此之外,我们希望用户不会看到基本功能的差异。也就是说,jackdmp 代码库中快速发展的其他领域是启动、停止和以其他方式控制 JACK 的方法,一旦我们发布它,这将对许多桌面用户大有裨益。

DP: 对于程序员和新 JACK MIDI 功能的用户来说,最重要的方面是什么?

PD: 对于程序员来说,主要好处首先是以样本精确的时序在应用程序之间发送 MIDI 数据的方式,其次是音频和 MIDI 的一致 API。有一种效果可能有点复杂——一致的 API 意味着音频和 MIDI 数据在同一个线程中到达。这与其他系统相比是一个相当根本的变化,在其他系统中,音频和 MIDI API 完全不同,并且往往导致应用程序在一个线程中处理音频数据,而在另一个线程中处理 MIDI 数据。这是我们仍在 Ardour 3.0 中努力解决的问题。

对于用户来说,主要好处有望只是更好地连接独立的应用程序,并在它们之间获得最大的同步。目前,由于很大程度上超出用户(或程序员)控制的原因,这可能很难做到正确。

建议和考虑

DP: 您通常给想要进入编程音乐和声音自由软件领域的人什么建议?

PD: 请不要开始一个新项目!找到一些对您有用的软件,或者接近您正在考虑的软件,并考虑改进它/更改它/重新设计它。太多新的开发人员大大低估了创建任何音频/音乐软件的有用最终版本所涉及的工作——我知道我低估了,按年计算!有一些例外。Rui Nuno Capela 的 QTractor 项目正在以令我尴尬的速度发展,而像调音器等小工具可以快速开发和完成。但是请,在您在现有程序上做了一些工作并已无可辩驳地确定它们无法屈服于您的意志之前,不要再有更多的 MIDI 跟踪器、MIDI 音序器等等。

DP: 您对音乐和声音自由软件的用户有什么一般性建议吗?

PD: 没有建议,只有对像我这样的开发人员将他们用作豚鼠和测试平台的道歉。哦,要有耐心。哦,还有寄钱!

DP: 您认为 Linux 音频的最大优势和最大劣势是什么?

PD: 我相信从技术角度来看,Linux 仍然是一个比其他任何平台都优越得多的音频平台。它不仅在几乎所有重要方面都具有更好的性能,而且还拥有一套开发工具,使开发人员的生活更加轻松。许多 OS X 开发人员喜欢该平台上的 XCode,这很棒,但被锁定在 Mac 中。而且,当您需要 valgrind 时,它在哪里?当我开始更深入地研究 Ardour 的本机 OS X 版本时,我对 OS X 和 Apple 抱有很高的评价。他们的用户界面工作一直非常出色。可悲的是,我不得不承认,随着我作为开发人员越来越深入地了解 OS X,我对它的印象越来越差。Linux 从开发人员的角度来看真正伟大的东西根本不存在——最重要的是简单性和透明度。这也有助于我帮助设计了 JACK,Linux 上大多数专业音频和音乐应用程序使用的音频 I/O 框架——我正在以一种我可以真正称之为我自己的风格和范例工作(尽管我想指出,许多其他人已经评论了它对开发人员的简单性和对用户的强大功能)。

但是,对非计算机中心用户有用的软件意味着某人要做很多工作。而大量的工作意味着大量的时间。在我们的文化中,大量的时间通常意味着大量的金钱,以一种或另一种方式(继承、意外之财或收入)。Linux 音频生态系统尚未找到产生这笔钱的好方法,因此,我们的软件(我自己的和许多 Linux 音频开发人员的软件)缺乏 Windows 或 OS X 专有软件中的某些功能。我说存在直接关系仅仅是因为时间 = 金钱等式。如果我可以付钱给合适的三个人在 Ardour 上工作,很难想象我们不能做什么。Ableton 雇用了更多的人,这在他们的软件中得到了体现。看看插件或软合成器中像 tempo-sync'ed LFO 这样非常基本的东西。我不知道任何 Linux 音频软件可以做到这一点,但它已经在专有软件中存在至少五六年了。

因此,我们为具有技术/计算机中心视角的用户的用户提供了一套非常非常出色的工具。在为不想了解计算机工作原理的人们提供工具方面,我们尚未达到相同的成就水平。与 GarageBand 这样的工具相比,我们甚至在隐藏关于“专业”音频软件应该如何使用的假设的工具方面做得不好(GarageBand 将其隐藏得非常好,尽管对于那些发展出复杂需求的用户来说,成本相当高)。

DP: 您生活中还有哪些读者想了解的事情?

PD: 在送我们的儿子去洛杉矶上电影学院一周后搬到柏林在工业大学教一个学期,这肯定是我经历过的压力最大的事情之一。

Dave Phillips 是一位居住在俄亥俄州芬德利的专业音乐家和作家。他从 1990 年代中期开始使用 Linux,并且是 Linux 音频开发者小组的最初创始人之一。他是 The Book of Linux Music & Sound(No Starch Press,2000 年)的作者,并为各种期刊和在线新闻网站撰写了许多关于 Linux 音乐和声音问题的文章。当他不玩弄光和声音时,他喜欢阅读拉丁文学、练习太极拳、追逐沙皮幼犬并与他心爱的常春藤共度时光。

加载 Disqus 评论