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

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

Opensource.com

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

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

我的开源音乐播放器之旅

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

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

到 2012 年初,我订购了我的第一个高分辨率数模转换器 (DAC),Schiit Bifrost,我选择它是因为 Schiit 技术支持说它应该可以在 Linux 上工作。我非常喜欢 DAC 连接到我的家用立体声音响后所起的作用。此时,我不再新的 Toshiba 被降级为家用音乐播放器。我开始 尝试 MPD 以及 Linux 和 Android 客户端,并在 2014 年年中,我购买了我的第一台 专用音乐服务器 CuBox-i4,以取代 Toshiba。与此同时,我继续在我的工作笔记本电脑和台式机上使用 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,因为它比我评估的其他选项更可靠、更有用;而且我真的很欣赏围绕它的 libre 文化。

问:您认为 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'”。

很高兴看到这不仅仅是一个以 192/24“重新混音”的 CD 质量副本。

我从 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 Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.