我最近写道:“GogglesMM 一直是我最喜欢的播放器之一。” 所以,当我在考虑采访构建和维护开源音乐播放器的开发者时,Sander Jansen 很快就浮现在我的脑海中。Sander 是 Goggles Music Manager (GogglesMM) 的开发者和维护者,这是一款非常出色的开源音乐播放器,特别适合以非常透明的方式将音乐流从计算机传输到数模转换器 (DAC)。
在本系列的第一篇文章中,我采访了 Guyadeque 音乐播放器的创建者 Juan Rios;以下是我与 Sander 对话的编辑版本。
会见 GogglesMM 开发者 Sander Jansen
问:您为什么决定创建和维护一个开源音乐播放器?关于 GogglesMM,有哪些对您来说真正重要的事情?
答: 当时对可用的播放器不太满意(它们占用大量内存,或者启动缓慢,或者严重缺乏友好的用户界面),我想我可以尝试自己编写一个。起初,我主要关注音乐组织(典型的艺术家/专辑/曲目布局),同时保持较低的内存占用并保持快速。
问:您能详细介绍一下您面临的组织问题吗?我知道许多对古典音乐感兴趣的人也希望按作曲家排序;这是您考虑过的事情吗?以及分离指挥家、独奏家和管弦乐队?
答: 组织音乐收藏的一个限制因素一直是文件格式及其支持的标签选项。我们将所有元数据存储在数据库中以进行快速检索,但这仅仅反映了文件本身的内容。
我的理念一直是,您应该能够复制文件,并且仍然拥有所有元数据,而无需同时复制数据库。由于没有涵盖所有文件格式元数据的统一标准,因此尝试支持最常见播放格式的播放器必须做出选择,这些选择通常有利于支持标签方面的最低公分母。像 ID3v2 这样的格式支持各种各样的元数据标签,并且可能可以嵌入到大多数文件中。这听起来可能是一个好主意,但您可能会冒着破坏其他软件或设备播放的风险。在 GogglesMM 中,本机标签格式在写入新标签时始终具有优先权。
GogglesMM 确实支持指挥家和作曲家标签。允许任意标签当然很好,但这确实使事情变得更加复杂,从数据库设计到 UI 选项。保持简单当然有道理。

问:请介绍一下 GogglesMM 使用的库。
答:我使用 FOX 库作为 GogglesMM 的图形用户界面。这是一个非常不错的库,尽管近年来它没有跟上较新的 UI 功能。在我以前的工作中,我们使用它将我们的应用程序移植到 Windows 和各种 Linux/Unix 版本。
GogglesMM 有自己的播放引擎,但依赖于常用的第三方库来解码各种音频编解码器。早期版本使用了 xine,但由于缺乏对无缝播放的精细控制,我决定自己编写一个。
问:自 2016 年以来,您一直在 Launchpad 上构建 GogglesMM,并且在这之前就已经开始开发它。那么为什么 Debian 和 Ubuntu 仓库中有一个非常旧版本的 GogglesMM,而不是您的版本呢?
答: GogglesMM 缺乏更新的官方软件包可能有多种原因。在 Launchpad 上提供构建似乎是阻力最小的路径,因为没有人对维护软件包感兴趣。Ubuntu 上的旧版本应该会慢慢消失,因为我停止分发的请求终于得到了承认。将来,我可能会将其作为 snap 软件包提供。
问:您白天的工作是软件开发人员吗?
答: 是的,我是 Baron 的软件开发人员,我的日常工作包括 Baron Weather API 的开发和维护,这是一种通过互联网分发各种天气数据的服务。
自 2000 年代初以来,我一直使用 Linux 作为我开发和桌面使用的主要平台;首先是 Mandrake 发行版,然后是 Arch Linux,因为滚动发布发行版吸引了我,并且让我免于每年都必须重新安装操作系统(它是我知道的最早的 686 优化发行版之一)。
问:您是音乐家吗?您喜欢如何听音乐?
答: 我不是音乐家。GogglesMM 是我不在车里或外出时使用的主要音乐播放器,在这种情况下我使用手机。我在各种设置中使用 GogglesMM。在工作时,在我的笔记本电脑上,我主要通过耳机收听。根据活动的不同,这些可以是播客、背景音乐或我更专注收听的内容。这一切都取决于我当时的活动。
在家里,我有一台媒体 PC 通过 HDMI 连接到我的 7.1 环绕声系统。它允许我播放一些多声道专辑以及常规立体声,当然。此外,我还有一台可以访问相同媒体文件的常规台式机。两者都使用 GogglesMM。
问:我尝试配置我的音乐播放器,以不变的形式将音乐数据传递到 DAC。似乎 GogglesMM 确实试图避免重采样、更改字长等等。
答:是的,当我构建我的播放引擎时,我确保可以完成您尝试完成的确切事情。
- 目前,GogglesMM 本身不进行重采样;有一些实验性代码,但它不完整,通常永远不会启用。
- GogglesMM 将尝试将任何解码后的数据按原样传递到其任何输出插件(ALSA、Open Sound System [OSS]、PulseAudio),这意味着解码器支持的任何原生格式。对于无损编解码器,这通常意味着原始数据的格式。
- 如果输出插件/设备不支持特定的音频位深度或数据类型,播放引擎将尝试将其转换为支持的类型(以尽可能少的精度损失)。
- 之后,音频将传递到 Pulse、ALSA 或 OSS。PulseAudio 对于普通用户来说往往很简单,但可能会对音频进行一些转换。您最好的选择是 ALSA。
- 根据您配置的 ALSA 设备,ALSA 可能会进行某种转换。GogglesMM 中有一个选项可以禁用 ALSA 重采样。另一种方法是直接指定“hw”设备,而不是“default”或“plug”设备。这似乎是获得您想要的确切结果的最佳方法。请参阅 ALSA 关于其 设备命名方案 的文档。
- 任何时候音频格式或采样率发生变化,GogglesMM 都会根据需要重新配置其输出设备,并且播放应正常继续。如果发生这种情况,曲目之间可能会有短暂的静音。(我们必须等到所有样本都已播放完毕,然后停止播放,重新配置设备,然后恢复播放。)

问:相当多的开源音乐播放器使用 GStreamer;虽然有人告诉我,除非音量发生变化或输出设备不支持采样率或字长,否则它不一定会干扰比特流,但这仍然让我感到紧张,因为它可能会因为我不知道的某些奇怪的配置问题而“暗中”篡改某些东西。
答: 这可能只是开发人员的懒惰!添加重采样器并进行动态格式转换和/或通道重新映射需要时间。随着 PulseAudio 的广泛部署,您不需要任何这些功能(在播放器本身中)来制作一个易于使用的音乐播放器,它可以正常工作。GogglesMM 引擎旨在避免做无用功。因此,Vorbis 解码器为我们提供浮点样本,只要有可能,它将保持浮点,而 FLAC 解码器提供 16 位样本,它将保持 16 位。只有当输出设备需要其他东西时,我们才会尝试转换它们。
这也表明,缓慢的开发可能是一件好事,因为您曾经认为需要的功能不再真正需要,因为它们在上游实现。
问:关于 GogglesMM,我真正欣赏的另一件事是它的速度有多快,即使在我的旧双核台式机上也是如此。您能告诉我们您做了些什么来降低内存使用量并使 GogglesMM 快速响应吗?
答: 说实话,不多。我确实花了很多时间确保 SQL(ite) 查询速度很快(尤其是经常使用的查询),并确保数据库中没有存储重复信息。随着计算机变得越来越快,我不太在意这一点,但对我来说,当您启动应用程序时,它不会花费超过几秒钟来显示并准备好使用仍然很重要。这也有助于我使用 FOX,它已经很快且轻量级。回到之前的话题,添加对任意标签之类的支持肯定会对性能产生影响,并且可能需要重写数据库设计。
问:您对 GogglesMM 有什么未来的计划吗?
答: 没有短期计划,但对于未来的开发,我一直在考虑包括对 HDPI 显示器、音频交叉淡入淡出、均衡器以及将我的 audioconvert 实用程序集成到 GogglesMM 中的支持。
问:audioconvert(音频同步和转换实用程序)的计划是什么?是将内容带入播放器、播放它、管理便携式设备上不同格式的收藏集,还是其他?
答: 最初,将其作为同一软件包的一部分会很方便,因为它可以共享相同的内部 FOX 库。也许可以重用一些代码库来管理便携式设备上的收藏集,尽管说实话,我看不出有这么大的需求。例如,我的主要音乐收藏集存储为 FLAC,并且我维护这些文件的 Opus 和 MP3 格式副本,这些副本存储在单独的文件夹中,并使用 audioconvert 进行同步。(这非常简单;只需运行 audioconvert --flac=opus /data/music/flac /data/music/opus。)我使用文件管理器将我想要的文件复制到我的便携式设备上。
我很享受与 Sander 的对话,并了解了关于 GogglesMM 内部工作原理的一些有趣的细节。这是一款出色的音乐播放器,特别是对于任何想要牢固控制到 DAC 的处理管道的人来说。
还有音乐……
几天前,我正在播放一张从 CD 翻录的专辑,这张 CD 是我在一家著名的美国咖啡连锁店购买的,那时他们还在卖音乐 CD,我偶然发现了两首歌曲,它们启发我找到艺术家并购买了几张专辑下载。
第一张是 One and One is One,作者是 Joi。让我找到 Joi 的歌曲是“Asian Vibes”,它是南亚音乐和电子音乐的完美融合。我也非常喜欢它的其余部分;这是很棒的东西,我从对 Linux 友好的 7digital 下载供应商那里以 FLAC 格式购买。
第二张是 Way Down Below Buffalo Hell,作者是 Jam Nation,也是从 7digital 购买的。我遇到的他们的第一部作品是 She Moved Through the Fair,这显然是为一个特定的录音项目创作的,该项目汇集了一群非常强大的音乐家。他们的音乐出现在我在 1990 年代遇到的一些合辑中,我很想听到他们更多的音乐。
最后,Sander 在我们的对话中提供了一个很好的推荐:Blow Up Hollywood。他说,“他们是一支来自纽约的小乐队,刚刚发行了他们的最新专辑 Gold(他们上一张专辑中的一首曲目 在此处出现)。”
6 条评论