为什么这位开发者用 C++ 写了一个音乐播放器

开源音乐播放器 Guayadeque 的创建者敞开心扉。
193 位读者喜欢这篇文章。
cc music

Opensource.com

最近,我通过我的 Schiit Fulla 2 DAC 在我的 System76 Gazelle 笔记本电脑 上收听一些新购买的音乐下载,想着音乐听起来多么美妙,以及我多么喜欢使用我最喜欢的开源音乐播放器

我开始思考是什么激励着那些创建和维护这些优秀软件的开发者,所以我决定联系他们中的一些人。我已经进行了一些很棒的对话,我将在 Opensource.com 上分享。但首先,先介绍一下我是如何对开源音乐播放器产生如此浓厚的兴趣的,包括 Juan Ríos 创建的 Guayadeque,这是我的第一个“严肃的”开源音乐播放器。

我的开源音乐播放器之旅

我最早接触开源音乐播放器是在 2006 年,当时我们一家人正在收拾行李,准备去法国格勒诺布尔度过一年。音乐是我们生活中重要的一部分,但我们不可能带着我们所有的 CD 光盘。因此,在我的当时几乎全新的东芝笔记本电脑上安装了全新的 Linux 系统后,我开始将我们最喜欢的 CD 翻录成 FLAC 格式,并使用 Rhythmbox 对它们进行整理。我需要将东芝电脑用于工作和娱乐,所以我不能占用“巨大”的 100GB 存储空间太多。我记得通过我的 Grado 耳机听到的音乐听起来出奇地好,并计划购买一副便宜但不错的有源扬声器,以便全家人可以在我们在新的临时住所中收听音乐。

我一直使用 Rhythmbox,直到 2011 年初,我越来越不满意它的功能,并开始探索替代方案。我不喜欢像 ExaileAmarok 这样以播放列表为导向的播放器;我不喜欢 Banshee,因为我不喜欢 Mono 平台。然后我发现了 Guayadeque。我喜欢它的智能播放列表、封面获取和曲目间淡入淡出功能,并且我注意到所有这些功能都是默认发生的,无需弄清楚复杂的插件集合和调整即可开始使用。

到 2012 年初,我订购了我的第一个高分辨率数字模拟转换器 (DAC) Schiit Bifrost,我选择它是因为 Schiit 技术支持表示它应该与 Linux 兼容。我非常喜欢 DAC 连接到我的家用立体声音响后所起的作用。到这个时候,我的不再是新的东芝电脑被降级为家用音乐播放器。我开始 尝试使用 MPD 和 Linux 和 Android 客户端,并在 2014 年年中,我购买了我的第一台 专用音乐服务器 CuBox-i4,以取代东芝电脑。与此同时,我 继续在我的工作笔记本电脑和台式机上使用 Guayadeque。这两种设置都允许我通过高级 Linux 声音架构 (ALSA) 播放我的音乐库,包括我不断增长的高于 CD 分辨率的音乐,而无需重新采样。

到 2016 年底,我已经尝试过其他几个音乐播放器,它们将原始音乐流原封不动地通过 ALSA 发送到 DAC,包括 Quod LibetGmusicbrowserGogglesMM。在这些播放器中,我特别喜欢 GogglesMM 的极简主义方法——它非常轻巧且可配置为直接与 ALSA 的硬件接口对话。从那时起,我又发现了一些我喜欢的播放器,包括 Strawberry

认识 Guayadeque 开发者 Juan Ríos

在本系列的我的第一篇文章中,我采访了 Juan Ríos,他设计、构建和维护了 Guayadeque。Juan 居住在加那利群岛,这是一个位于非洲西北海岸附近的西班牙自治区。我们进行了一次关于开源音乐播放器和一般生活的有趣讨论;为了清晰和简洁起见,我们的对话经过了编辑。

问:您何时以及为什么决定创建 Guayadeque?

答:2008 年,我评估了 Amarok、Banshee 和 Rhythmbox,以存储我庞大的音乐收藏(约 20,000 首歌曲)。它们都无法胜任管理如此庞大的收藏。我主要将编程作为一种爱好,我决定编写自己的音乐播放器,它可以高效快速地管理大型音乐收藏。第一个版本于 2009 年发布。这是一项相当大的工作!

问:当时,您的工作是否涉及编程?您是否在 Linux 中工作?

答: 我已经编程大约 30 年了,但直到最近三年我才参与与工作相关的编程和软件支持。我从 2000 年开始使用 Linux,因为它比我评估的其他选项更可靠、更有用;此外,我非常欣赏围绕它的自由文化。

问:您认为 Guayadeque 最重要的功能和组件是什么?

答: 首先,它是在 C++ 中编程的。我使用了 WxWidgets 跨平台 GUI 库,因为即使我主要对 Linux 方面感兴趣,我也希望它也能在其他平台上运行。我使用了 SQLite 作为存储音乐元数据的数据库,并使用了 GStreamer 来管理音频流。

从组件方面来看,突出之处在于音量单位 (VU) 表,它显示峰值和均方根 (RMS) 信号电平;智能播放列表;处理非常大的音乐收藏的能力;将音乐库的全部或部分以其他格式同步到便携式设备(如手机)的能力;以及将 GStreamer 连接到各种 Linux 音频软件(包括 PulseAudio、ALSA、Open Sound System 等)的能力。

我很高兴我用 C++ 编写了 Guayadeque,这在其良好的性能中发挥了重要作用。我主要使用像 XFCE 这样的轻量级桌面环境,而且我没有城里最快的硬件,因此 Guayadeque 在适度的计算平台上高效快速非常重要。

问:您能告诉我一些关于 VU 表的信息吗?

答: 这个想法是模仿专业录音设备上的信号电平表。当歌曲播放时,用户可以看到最近的峰值信号电平、当前信号电平和 RMS 信号电平。RMS 是“均方根”的缩写,这是一种平均过程,指示整体明显的响度。左声道(上方)和右声道(下方)各有单独的仪表。

Guayadeque's VU meter

Guayadeque 的 VU 表显示曲目的峰值、当前和 RMS 电平。

问:智能播放列表呢?

答:当用户启用智能播放列表功能时,Guayadeque 将搜索 LastFM 和用户的音乐库,以查找其他 LastFM 用户指示与当前播放歌曲相似且也在用户音乐库中的歌曲。这允许播放器使用其他人的推荐来构建播放列表。

(例如,在此图像中,播放器在“Son para ti”、“Yamulemu”和“Fue una de mambo”之间找到了“相似”的推荐。)

Guayadeque's smart playlist

Guayadeque 的智能播放列表会自动将歌曲排队。

问:您是音乐家吗?您喜欢如何听音乐?

答: 我不是音乐家。我的一个孩子弹钢琴,但那是我最接近音乐的时候。我喜欢很多不同类型的音乐,总的来说,我喜欢一次听完整张专辑。我通常用耳机听,而且我不使用外部 DAC;我发现我的电脑声卡产生的音质足以满足我的需求。

问:您对 Guayadeque 满意吗?未来会怎样?

答: 总的来说,我对 Guayadeque 非常满意。我认为我投入的时间和精力是值得的。它达到了我的设计目标,并且我收到了很多关于其设计和实现的积极反馈。几年前,根据用户的要求,我可以轻松地添加直接连接到基于 ALSA 的设备的功能。

Setting the ALSA output device

设置 Guayadeque 的 ALSA 输出设备。

我主要感到失望的是,我未能吸引其他人加入我进行开发和支持;我想建立一个 Guayadeque 社区。为此,我觉得我选择 WxWidgets 不够主流,所以我已经开始使用 Qt 重写 Guayadeque。我希望这将吸引更多人参与维护和增强该软件。


我很感激有机会与 Juan Ríos 谈论 Guayadeque,这款开源音乐播放器多年来给我带来了极大的乐趣。我祝愿他向 Qt 过渡顺利,并且我希望他实现建立开发社区的目标。

至于音乐…

我最近偶然发现了一家名为 Juno Download 的有趣在线音乐商店,该商店自称是一家“舞曲 MP3 下载商店”,拥有超过 500 万首曲目,格式包括 FLAC。它还提供采样包和 DJ 排行榜。我很高兴找到 Massive Attack 的 Ritual Spirit FLAC(CD 音质)格式,以取代我之前购买的 MP3 版本。我还购买了 Peace Orchestra 的两张专辑 Peace OrchestraReset,也是 CD 音质 FLAC 格式。长期以来,我一直是 Peter Kruder 的忠实粉丝,但只在黑胶唱片上找到 Reset(这很棒,但不方便旅行)。Juno Download 对 Linux 非常友好,不需要任何臃肿的下载管理器。真棒!

对于那些对 杜比兄弟乐队 有美好回忆的人来说,您可能想看看 The Best of the Doobies,它在 2016 年以高分辨率 FLAC(192kHz 采样率/24 位字长)进行了重新制作和重新发行。这是 Spek 声学频谱分析仪对第 8 首曲目的信号内容的分析

Acoustic spectrum analyzer

杜比兄弟乐队 - 2016 年重新制作的“It Keeps You Runnin。”

很高兴看到这不仅仅是 CD 音质的副本“重新制作”为 192/24。

我从 7digital 购买了它,这是我最喜欢的 Linux 友好的在线音乐商店之一。音乐听起来很棒;它似乎没有过度压缩,峰值接近 0dB,但 RMS 值通常在 -10 到 -6dB 左右,而且我很享受这段怀旧之旅!

Chris Hermansen portrait Temuco Chile
自从 1978 年从不列颠哥伦比亚大学毕业以来,我几乎一直与某种计算机为伴。自 2005 年以来,我一直是全职 Linux 用户,从 1986 年到 2005 年,我一直是全职 Solaris 和 SunOS 用户,在此之前是 UNIX System V 用户。

4 条评论

C++ 音乐播放器是一款出色的播放器,我一直在使用。现在它是我最喜欢的播放器。也可以将其与许多电影应用程序(如电影应用程序)一起使用

Creative Commons License本作品根据 Creative Commons 署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.