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

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

Opensource.com

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

我开始思考是什么激励着那些创建和维护这些优秀软件的开发者,所以我决定联系他们中的一些人。我已经进行了一些很棒的对话,我将在 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++ 音乐播放器是一个很棒的播放器,我一直在使用。现在它是我最喜欢的播放器。也可以将其与许多电影应用程序(如电影应用程序)一起使用

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