Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation
 [image of a Brave GNU World]
《勇敢 GNU 世界》 - 〈第五十期〉
Copyright © 2003 Georg C. F. Greve <>
中文翻译:刘 昭宏 <>
许可声明 如下

[CN | DE | EN | FR | JA | ES | KO | PT | ZH]

Welcome back to another issue of the Brave GNU World. This issue continues where the last has stopped, in the large field of audio applications.

欢迎来到又一期的《勇敢 GNU 世界》。本期将接续地上一期〔起了头,但〕还没结束的音效应用程序的这个大项目。

LAoE (图形化声音编辑器)

LAoE [5] is a graphical sound editor by Olivier Gäumann. After working on it since July 2000, he recently made it available under the GNU General Public License (GPL).

LAoE [5] 是由 Olivier Gäumann 所完成的图形化声音编辑器( graphical sound editor )。在二○○○年开始致力於它之后,他最近让它可以在 GNU General Public License (GPL) 下取得。

Prior to starting this project, Olivier has been looking for an appropriate application that would fit his needs since January 2000. Unfortunately without success. So he decided to scratch his own itch and began developing. Lacking experience in professional music, development encountered some dead ends and difficulties, but these were resolved over time.

在开始这项工程之前, Olivier 从二○○○年一月开始寻找一个符合他的需求的适当应用程序。不幸的是并没有成功。所以他决定搔他自己的痒处,并且开始开发。由於缺乏专业音乐的经验,开发〔过程中〕遇到了些死胡同和困难,但这些都随著时间〔推演〕而获得解决。

The design of LAoE has taken inspiration from the Free Software graphics application GIMP [6] from which it adopted the layer-based concept with numerous plugins and effects. Oliviers hopes to create a sound editor that is about as complete as state-of-the-art graphical programs.

LAoE 的设计从自由软件图形应用程序 GIMP [6] 中获得灵感, GIMP 采用了搭配许多插接( plugins )以及效果( effects )的以层次作为基础( layer-based )的概念。 Oliviers 希望能够建立一个尽可能地完全的尖端声音编辑器。

LAoE can read mp3, wav, au, aiff and gsm files and supports output in wav and aiff formats. The implementation of a native laoe-format, in which the different layers and settings will be preserved, is planned.

LAoE 可以读取 mp3 、 wav 、 au 、 aiff 以及 gsm 档案,并且支持 wav 和 aiff 格式的输出。原生的( native )可以保存不同层次以及设定( settings )的「laoe-格式」的实现也在计划中。

Although the performance of the hardware puts a practical limit to the number of channels and layers, LAoE theoretically supports an unlimited number. To ensure maximum precision, all operations are floating-point based.

虽然硬件的性能( performance )使得频道( channels )以及层次的数目有著实用上的限制,〔不过〕 LAoE 理论上支持一个没有上限的数目。为了保证最大的精确度( precision ),所有的操作都以浮点数( floating-point )作为基础。

Besides standard functions like copy, paste, cut and move, LAoE also provides a rather sophisticated and unlimited undo system that allows going back to any former state. Selecting and modifying areas for editing is possible in multiple ways and with different functions.

除了像是 copy 、 paste 、 cut 以及 move 等标准的函数〔之外〕, LAoE 也提供了一个较为精巧以及没有上限的 undo 系统,这允许了〔我们可以〕回到任何先前的状态( state )。〔同时,〕由数种方式、以不同函数来选择以及修改〔声音〕区段( areas )是有可能的。

Besides analysis tools, LAoE contains waveform generators and different functions for amplitude modification. Transduction into and editing in the frequency domain by means of Fast-Fourier-Transform (FFT) is supported as well as filtering by different parameters and frequencies. Aside from that, the project offers many different effects, e.g. a delayed echo, pitch manipulation, disharmony plugin, time manipulation and so on. Also it is possible to display and edit spectrograms.

除了分析工具之外, LAoE 包括了波形产生器( waveform generators )以及作为振幅修改( amplitude modification )之用的不同函数。在频率域( frequency domain )中的编辑,支持经由 Fast-Fourier-Transform (FFT) 转换以及使用不同参数和频率来过滤〔的机制〕。除此之外,这工程提供了许多不同的效果〈举例来说:延迟的回音、音高管理、不协调插接以及时间管理…等等〉。它也有可能显示以及编辑音谱仪( spectrograms )。

Olivier also spent some time improving usability, so LAoE offers "mouse stroke shortcuts" that for instance allow calling the undo history plugin by drawing a simple "u" with the mouse.

Olivier 也花了一些时间来提高可用性( usability ),所以 LAoE 提供了〈举例来说〉“鼠标点击捷径”( mouse stroke shortcuts ),那允许了经由以鼠标绘出一个简单的 "u" 〔的方式〕来呼叫( calling ) undo 这个历史插接。

Should that still not be enough for you, you are of course very welcome to provide your own effects and expansions in form of plugins.

还是不够〔吸引〕你吗?〔这样的话,〕当然也非常欢迎你以插接的形式,提供出你自己的效果和扩充( expansions )。

With development being in a fairly advanced stage by now, Olivier was planning to focus even more on documentation — currently even a short reference/menu card already exists — in order to improve usability and win more users for the project.

现在开发是处於一个算是进阶的阶段,〔因此〕 Olivier 计划著要更加集中致力於文档上 — 目前甚至已经有了一个简短的「参考/菜单」卡 — 以提高可用性,并且争取更多这项工程的使用者。

At the moment, the incoming stream of suggestions and wishes for improvements is pretty strong, though, so it seems possible that further documentation may be somewhat delayed.


Main problem of LAoE is that isn't usable for pieces of music longer than roughly 5 minutes, as the whole piece needs to be read into memory, which provides for strong technical limitation.

LAoE 的主要问题是:约略长於五分钟的音乐片段( pieces of music )不具可用性。这是因为整个片段必须〔全部〕读入记忆体,因此造成了强技术限制。

Also the programming language used was Java; with all the problems described in detail in issue #49 [7]. So LAoE is still dependant upon a proprietary platform.

另一个使用的程序语言是 Java ;〔它面临到的〕所有问题在〈第四十九期〉“Java 相关性” [7] 中有详细的解释。所以 LAoE 仍然依赖著一个私权平台。

Whether the future will bring a Free Java or use of another language — possibly also to avoid technical problems — it can be said that LAoE is definitely a very interesting project that took another important step in the field of professional audio applications.

不管未来是否将会有个自由的 Java ,或是使用另一个程序语言 — 可能也是要避免技术问题 — 可以说的是 LAoE 肯定是个非常有趣,并且在专业音效应用程序的领域中,迈出另外重要一步的工程。

Although according to his own sentiment Olivier did not receive a lot of support from others, that does not mean he wouldn't appreciate it. Quite the opposite, he explicitly is looking for volunteers to help him work on this project.

虽然根据他自己的感觉, Olivier 并没有从其他人收到许多支持,〔但〕那不表示他并不感激它。恰好相反,他明确地寻求〔能够〕帮助他致力於这项工程的志愿者。

More information about the project as well as contact details can be found on the LAoE home page. [5]

关於这项工程的更多信息,以及详细的联系〔方式〕,可以在 LAoE 首页 [5] 中找到。

Apvsys (程序的版本管理器)

Sometimes it is necessary or at least useful to have different versions of the same program installed simultaneously so they can be used alternatively or even at the same time. Possible reasons for this are different versions not being downwards compatible anymore or other programs requring different versions of the same application.

有时候同时地安装相同程序的不同版本有其必要,或至少是有用的,因此它们就可以替代地使用,或甚至在同一时间使用。这个〔情形〕的可能原因有:不同的版本不再向下相容( downwards compatible ),或是其它程序需要相同程序的不同版本。

The different operating systems have different approaches to solve this problem. Under MS Windows this is handled by means of the centralized Registry, which only solves this problem extremely unsatisfactory.

不同的操作系统有著不同的手段来解决这个问题。在 MS Windows 下是以中央化的登录( centralized Registry )来处理,不过〔也〕只是相当不令人满意地解决这个问题。

The operating system Plan9 had the concept of so-called "Views" in combination with Union file systems. This allowed storing all applications in the /bin directory and by means of the view, the user can determine which version is being used. Under Unix such a choice / installation is usually done with symbolic links and the environment variables PATH and LD_LIBRARY_PATH.

Plan9 操作系统有个与 Union 档案系统组合著的所谓 "Views" 的概念。这允许了以 view 的方式储存所有应用程序在 /bin 目录下,使用者可以决定要使用哪一个版本。在 Unix 下,这样的「选择/安装」通常是用符号式链接以及变数 PATH 和 LD_LIBRARY_PATH 来完成的。

Given the case that there is just a new version to be installed by hand outside the scope of the distribution without harming the maintainability of the system, there are tools like GNU Stow [9], which can make your life easier (see issue #36 [10]). Should several different versions be usable at the same time, this does not help you much, however.

考虑以下情形:只是要手工安装一个在散布件以外的新版本,而不伤害到系统的维护性( maintainability ),那么〔我们〕有像是 GNU Stow [9] 的工具可以让你的生活更容易(见〈第三十六期〉 [10] )。然而这对於「数个不同版本是否应该可以在同一时间内使用」〔来说〕,帮不了你什么忙。

Sometimes, people try to solve these problems with wrappers and shell scripts, but these solutions are often fragile and require intensive care and maintenance. Apvsys [8] by Arnaud Bertrand seeks to provide a better solution.

有时候,人们试著用包装( wrappers )以及外壳脚本〔程序〕( shell scripts )来解决这些问题,但是这些解决方案经常是脆弱并且需要密集的注意和维护的。由 Arnaud Bertrand 所完成的 Apvsys [8] 寻求著提供一个较好的解决方案。

The different versions of all applications are all installed into different sub-directories and managed by Apvsys. Users only need to add a single directory to their PATH variable, which could also happen automatically.

所有应用程序的不同版本全部都安装到不同的次目录,并且由 Apvsys 管理。使用者只需要增加单一个目录到他们的 PATH 变数〈它也可以自动地发生〉。

Afterwards, the APVSYs_TOOLSPEC_FILES allow configuring different versions for specific applications and environments. Commandline tools allow checking the used versions and administrating the configuration. If no particular version is specified, the default version is used.

接下来, APVSYs_TOOLSPEC_FILES 允许配置( configuring )特定应用程序和环境的不同版本。命令列( Commandline )工具允许检查使用的版本,并且管理配置〔设定〕。如果没有指定特定的版本,默认的版本就会被使用。

All configuration is done by means of simple text files that are administrated through Perl applications. The Apvsys shell itself was written in C.

所有的配置都是由透过 Perl 应用程序所管理的简单文字档案的方式来完成。 Apvsys 外壳本身〔则〕是以 C 语言写成。

A few words should probably be said about the background. Apvsys is the reimplementation of a program written in 2001 by Alex Farell using Perl. This could not be used anymore because Alex Farell had written it during his working time and so the rights were with the employer.

可能有一些应该要加以说明的背景: Apvsys 是 Alex Farell 於二○○一年使用 Perl 所撰写的一支程序的重新实现。这支程序因为是 Alex Farell 在他的工作时间内写成而使〔它的〕权利归属於雇主,因而再也不能使用。

Apvsys made sure to not run into the same problems and is available as Free Software under the GNU General Public License (GPL) Version 2.

Apvsys 确定了〔在重新实现时〕避免面临到相同的问题,并且可以在 GNU General Public License (GPL) Version 2 下作为自由软件而取得。

By switching to C Arnaud Bertrand sought to increase the speed of the application, while making sure to keep the format of the ASCII configuration database to make the shift as easy as possible. This seems to have been rather successful, as Apvsys is successfully being used in three big design centers in Belgium and France as part of their production environment since 2002.

Arnaud Bertrand 以切换到 C 〔的作法〕来寻求增加应用程序的〔执行〕速度,同时确定保持 ASCII 配置资料库的格式,以使切换〔的过程〕尽可能地简单。这看来似乎是更加地成功,因为 Apvsys 成功地为比利时和法国的三间设计中心所使用,并自二○○二年开始作为它们的生产环境( production environment )。

So the core of Apvsys can definitely be considered stable, which of course doesn't mean that there are no problems or possibilities for improving the program. Sometimes different tools with identical names cause problems and should be treated with care, for instance. Also there are sometimes problems when the paths are hard-coded into the applications.

所以 Apvsys 的核心( core )肯定可以视为稳定,但这当然并不表示〔已经〕没有〔任何〕问题,或无法再改进这个程序了。举例来说:有时候具有完全相同名称的不同工具会造成问题,并且应该小心地处理。有时候当〔档案〕路径( paths )被写死( hard-coded )在应用程序中,也会造成问题。

Future plans for Apvsys are to add a graphical user interface and a packaging system. The decision of whether the packaging system will be chosen among one of the existing or be newly implemented is still not clear, though.

Apvsys 计划在未来增加一个图形使用者介面以及一个封装( packaging )系统。然而,封装系统是否将由现有中的一个选出,或是加以全新的实现?〔决定〕仍不明朗。

In any case, volunteers are very welcome to participate in Apvsys development and possibly make suggestions about the interface or packaging system.

不管怎样,都非常欢迎自愿者可以参与 Apvsys 的开发,以及作出有关於介面或封装系统的建议。

Another area in which volunteers can help easily is platform independence. Apvsys is known to run on GNU/Linux, Solaris, HPUX and Cygwin. It should also run on other platforms, but that needs to be tested.

另一个志愿者可以简单地〔提供〕帮忙的领域是平台独立性( platform independence )〔的测试〕。 Apvsys 已知〔可以〕在 GNU/Linux 、 Solaris 、 HPUX 和 Cygwin 上执行。它应该也可以在其它平台上执行,不过那将需要经过测试。

The last suggestion by Xavier Duret, who filled out the Brave GNU World questions on Apvsys, refers to the GNU Hurd. [11] In case this hasn't been done already, he would like to encourage a volunteer to create a Hurd translator based upon a Union filesystem that could provide equivalent functionalities to Apvsys or Plan9.

最后一个建议是关於 GNU Hurd [11] ,由填来了 Apvsys 的《勇敢 GNU 世界》问题的 Xavier Duret 所提出。由於〔GNU Hurd 的〕情形很显然是还没有完成,〔因此〕他想要鼓励一位志愿者可以创造出一个基於 Union 档案系统的 Hurd 翻译器,使其〔能够〕为 Apvsys 或 Plan9 提供同等的功能( functionalities )。

pyDDR (跳舞机的 Python 仿制品)

At least on the northern hemisphere, summer is approaching fast. Therefore even geeks should think about getting into shape. To make sure that they don't have to leave their beloved computer for this, there is the next project.

至少在北半球,夏天的脚步很快地就要来临。因此即使是电脑怪胎( geeks )应该也要具体地想一下〔怎么打发时间〕。为了确定他们不必为了这个〔原因〕而离开他们深爱的电脑,因此有了下一个工程。

pyDDR [12] is a Python clone of the game DDR ("Dance Dance Revolution"), in which the player under full bodily engagement has to step on the right arrows of a sensor mat at the right time. Sounds simple, and it is. But only if you're watching.

pyDDR [12] 是游戏 DDR (跳跳舞革命 ; Dance Dance Revolution)【跳舞机】的 Python 仿制品( clone ),玩家〈在与身体完全的搭配下〉必须在正确的时间踩到感应毯的正确箭头。听起来很简单,确实也是如此。但只有当你在〔旁边〕看的时候〔才成立〕。

Even though these games have not yet spread very far in Europe and the America, they have been popular for some time in Asia and in many arcades people are dancing or (for another game) beating the drums.


Thanks to the work done by Brendan Becker, who implemented pyDDR as Free Software under a license similar to the X11 license, you can now also do this at home and so during waiting time — like a long compilation — do something for the body. Libraries used were the PyGame Module [13] and the Simple DirectMedia Layer (SDL) [14].

谢谢由 Brendan Becker 〈他在一个类似 X11 许可证的许可证下将 pyDDR 实现为自由软件〉所完成的工作,你现在可以在家里或等待的时间中做这 — 像是等待一段长编译时 — 来为身体做点事。使用的函数库有 PyGame 模组 [13] 和 Simple DirectMedia Layer (简易直接媒体层 ; SDL)[14] 。

Brendan got support for his work by several volunteers like Joe Wreschnig and John Bafford; he'd like to encourage others to also get involved. This includes financial contribution, Brendan emphasizes, as he would rather spend more time on games than doing his "normal" job.

Brendan 在他的工作上获得 Joe Wreschnig 和 John Bafford 这几位志愿者的支持;他想鼓励其他人也〔能够〕涉入其中。 Brendan 强调这包括了财务贡献,因为他想要花多一点时游戏上,胜於做他的“正常”工作。

pyDDR was originally written for GNU/Linux, but there are reports that it has successfully being made to run on Windows NT, XP, 9X as well as BSD, MacOS X and BeOS. Even on a Playstation 2 running GNU/Linux somebody got it to run — this can only be recommended to the technically savvy, though.

pyDDR 一开始是为 GNU/Linux 所撰写的,但有报告指出它已经成功地在 Windows NT 、 XP 、 9X 以及 BSD 、 MacOS X 和 BeOS 上执行。即使在执行 GNU/Linux 的 Playstation 2 ,也有人使它可以执行 — 然而这只能够推荐给技术高手〔来做〕【对我们普通人则是:危险动作,请勿模仿】。

Of course the full game experience requires getting a sensor mat, if you intend to play against each other, even two. But you can also replace one sensor mat with the keyboard, so it is at least possible to get an idea of the game without having to get new hardware.


But even if you don't believe in Physical movement like dancing the game is still worth a look because it looks very professional with good graphics and sound, providing an idea of what Free Software games can look like.



With a growing amount of Free Software applications, it gets increasingly hard to keep the overview. One solution trying to address this problem are portal sites.

随著自由软件应用程序数量的增加,想要保持〔对它的认识的〕概观愈来愈难。处理这个问题的一种解决方案是〔提供〕入口网站( portal sites )

Unfortunately some portals, like Freshmeat, are only of limited use, as they are not capable of ensuring the quality of their entries and also often mix proprietary and Free Software.

不幸的是有些入口〈像是 Freshmeat〉只有有限的用途,因为它们没能确保它们〔登录〕项目的品质,而且通常混合著私权以及自由软件。

To solve this problem, the Free Software Foundation began working on the Free Software Directory, [15] a database for Free Software, in September 1999 and entrusted Janet Casey with maintaining it.

为了解决这个问题,自由软件基金会在一九九九年开始致力於自由软件目录( Free Software Directory ) [15] ,这是一个自由软件的资料库,并且委托 Janet Casey 来维护它。

Every entry in the directory is checked for proper licensing by looking at the web page and into the source code to make sure that the license is what it seemed to be. Therefore users can place more trust into the information from the Free Software Directory.


In April 2003, the United Nations Education, Scientific and Cultural Organization (UNESCO) joined into this activity of the FSF and supports it officially, so now it is the "FSF/UNESCO Free Software Directory."

在二○○三年四月,联合国教科文组织( UNESCO )加入了 FSF 的活动,并且正式地支持它,所以现在它是“FSF/UNESCO 自由软件目录”了。

If you are looking for solutions or would like to know whether an application exists for a certain purpose, the Free Software Directory offers a good reference point.


Authors of projects should — in case they haven't done so already — make sure that their projects are contained in the directory and of course also inform the Brave GNU World. [1]

工程的作者应该 — 如果他们还没有这样做的话 — 确定他们的工程被包括在这个目录下,当然也〔记得〕通知《勇敢 GNU 世界》 [1] 。


That means the column has once again reaches its end for this month. If you have questions, commens, ideas or suggestions for cool projects, please don't hesitate to send me email. [1]

〔看到这段文字,〕表示本专栏再一次到了这个月的尾声。如果你有问题、意见、想法和建议,请不要迟疑,寄封电子邮件给我 [1] 。

[1] 请将想法、意见和问题送到 《勇敢 GNU 世界》 <>
[2] GNU 工程的首页
[3] 乔格的《勇敢 GNU 世界》首页
[4] 「GNU 艺廊」原创
[5] LAoE 首页
[6] GIMP 首页
[7] 《勇敢 GNU 世界》 - 〈第四十九期〉
[8] Application Version System (Apvsys) 首页
[9] GNU Stow 首页
[10] 《勇敢 GNU 世界》 - 〈第三十六期〉
[11] GNU Hurd 首页
[12] pyDDR 首页
[13] PyGame 首页
[14] Simple DirectMedia Layer (SDL) 首页
[15] 自由软件目录
[16] 联合国教育、科学与文化组织( United Nations Educational, Scientific and Cultural Organization ; UNESCO )

[ 上一期 | 《勇敢 GNU 世界》首页 ]

返回 GNU 首页

请将有关 自由软件基金会 与 GNU 的 查询 与 问题 送到
您也可以使用 其它方法联系 自由软件基金会。

请将有关乔格的《勇敢 GNU 世界》专栏的意见(以英文或德文)送到

Copyright (C) 2003 Georg C. F. Greve
中文翻译:刘 昭宏

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.


Last modified: Tue Jun 3 20:05:33 CEST 2003