这是与构建和维护开源音乐播放器的开发人员进行的一系列对话中的第三篇。Craig Drummond 是 Cantata 的开发人员和维护者,Cantata 是一款开源音乐播放器,充当 音乐播放器守护程序 (MPD) 音乐服务器 的前端(客户端)。我在家中有两台小型无头计算机配置为音乐服务器——一台连接到我们客厅的立体声音响,一台在楼上的办公室。当我寻找控制这些服务器的方法时,我第一次接触到 Cantata,哇,它真是一件令人印象深刻的作品。
我对了解更多关于 Cantata 的信息很感兴趣,所以我很感谢 Craig 同意接受这次采访(为了篇幅和清晰度,已进行了少量编辑)。事不宜迟,让我们与 Craig 聊聊。
Chris Hermansen: 查看 Cantata 的 GitHub 页面 和 Cantata 的 Debian 发布历史,看来您从 2014 年之前就开始从事 Cantata 的开发工作了。大概是这样吗?是什么让您决定开始这个开源音乐播放器项目?这是否与您说的“Cantata 最初是 Qt MPD 客户端 (QtMPC) 的一个分支”有关?

Craig Drummond: 我从 2011 年开始从事 Cantata 的开发工作。我曾经是 KDE 和 Amarok 用户(喜欢 Amarok 1.x,不太喜欢 2.x)。事实上,我曾经是 KDE 核心开发团队的成员。虽然我喜欢 Amarok 的 UI,但我需要登录 KDE 才能播放音乐,但我希望让音乐保持播放状态并远程控制它。我四处寻找,发现了 MPD——一个无头音乐播放器。作为 KDE 用户,我寻找 KDE/Qt GUI,我找到的最好的 GUI 是 QtMPC。这个项目已经被放弃很长一段时间了,并且有一些奇怪的 UI 怪癖,这让我很恼火。因此,我采用了 QtMPC 代码库,修复了它的一些 UI 怪癖,并将其移植为尽可能多地使用 KDE 库。最初,我计划将补丁发送回 QtMPC,但我做了太多的更改。
CH: 您在日常工作中也是一名软件开发人员吗?您在 Linux 环境中工作,还是其他环境?
CD: 是的,软件也是我的日常工作。它混合了 Linux、Windows 和 Android 开发。大多数时候使用 Windows,Linux 在虚拟机中运行。我更喜欢使用 Linux,但这不是我能决定的。
CH: Cantata 真正让我印象深刻的一件事是对细节的极致关注——例如,设置页面上精心编写且有用的“微帮助”。Cantata 中有哪些真正对您重要的事情?

CD: 这不是我真正考虑过的事情。Cantata 多年来有机地发展,通过添加我想要的功能(AudioCD、封面下载等)以及添加其他人要求的功能(ReplayGain、Last.fm 音乐记录(我从未使用过)、Jamendo、Magnatune 等)。Cantata 有如此多的选项,而且没有用户指南,所以我认为在配置页面上添加注释将有助于解释一些选项、限制等。我喜欢 Cantata 的一个方面是整体外观;从单色图标(Font Awesome 在这方面非常棒)到队列中按专辑分组的曲目、队列背景等。对我来说,UI 看起来漂亮很重要——正如所述,这是我 fork QtMPC 的原因之一。
CH: 如果我没记错的话,MPD 的最新版本似乎支持封面艺术共享(有关示例,请参见 此处,搜索“albumart”)。您是否有计划将此功能添加到 Cantata?还是继续依赖 MPD 配置拥有“附近”的封面艺术服务器?
CD: Cantata 已经支持从 MPD 获取封面艺术——此功能是去年 11 月通过另一位用户的补丁实现的。
CH: 我必须更新我正在运行的版本。您是音乐家吗?您如何使用 Cantata——耳机、独立 DAC 还是家庭立体声音响?您是专注地听,还是主要作为背景音乐?您在听音乐时工作吗?
CD: 我当然不是音乐家!我有一把吉他,勉强能弹奏《Stairway to Heaven》——但这几乎就是我的极限了。我的听歌方式是混合的。此刻,当我打字时,我正在收听 Radio Paradise 上的 Rock mix——主要作为背景音乐。但是,当我拿到一张新专辑时,通常会在几周内只听那张专辑。我确实喜欢听音乐,并且会尽可能经常播放音乐。
我现在的所有听歌都由 Logitech Media Server 处理。为此,我有两个 AirPlay 扬声器、一个旧的 squeezebox 收音机和一个蓝牙扬声器(我通过 pi zero-w 上的 squeezelite 将 BT/LMS 桥接)。我从不使用耳机,总是通过扬声器。我曾经有一个 TEAC reference 500 系统,我用 Libratone Zipp (Airplay) 替换了它。
CH: 请向我们介绍一下 Cantata 使用的库。例如,您为什么决定使用 Qt?
CD: 嗯,作为一名前 KDE 用户,Qt 是显而易见的选择。毕竟,QtMPC 是基于 Qt 的。Cantata 的前几个版本是基于 KDE 的,Qt-only 构建作为可选选择。后来(我认为是 2.0),我将代码迁移到仅限 Qt5,并放弃了 Qt4(以及 KDE)支持。即使我现在正在使用 GNOME,我也非常喜欢 Qt 库。Qt 使跨平台开发相对容易——因此 Cantata 具有 Windows、macOS 甚至 Haiku 端口。所有其他库的使用主要是因为它们是其功能的默认库(例如,libmtp)。我使用 Taglib 进行标签读取/写入,主要是因为它具有类似 Qt 的界面。但是,它偶尔会导致崩溃,因此 Cantata(像 Clementine 一样)启动一个单独的进程来读取和写入标签。
CH: 您之前提到您正在从 MPD 作为服务器转向 Logitech 媒体服务器。您能详细介绍一下这个决定吗?
CD: 我一直在寻找一个在家中播放音乐的系统,以及我的妻子会使用的系统。(Cantata Windows 端口的开发是为了看看她是否会使用,但[她]从未使用过。)我四处寻找解决方案。我的 Android 手机上有 BubbleUPNP。我尝试使用该选项,让 MiniDNLA 与 Chromecast 音频通话,但很快就对曲目之间两到三秒的间隔感到恼火。在这次尝试之后,我尝试了 Plex,它也可以播放到 Chromecast 音频设备。但同样,曲目之间有 0.5 秒的间隔(对于现场专辑来说很糟糕),并且更新音乐数据库的速度很慢。
最后,我偶然发现了 LMS。这个选项也支持 Chromecast 音频设备,但它也支持 AirPlay、DLNA 和无头 squeezelite 应用程序。我早就放弃了 Chromecast,但 AirPlay 支持非常棒。借助 LMS,我可以让音乐在家中播放,将音乐队列从一个设备移动到另一个设备,等等。所有这些都通过开源服务器 (LMS) 与开源播放器(AirPlay“桥”、squeezelite 等)对话。
而且,最重要的是——我的妻子现在真的可以使用这个系统了。她在她的 iPhone 上使用 iPeng 来控制设备——在 Android、iOS 等设备上拥有控制点,使事情变得更加用户友好。
从我的角度来看,我喜欢 LMS 将服务器与播放分离的方式,而 MPD 中它们是同一个。拥有一个服务器来处理多个播放设备的音乐库和播放队列对我来说很有意义。
CH: 关于 LMS 的有趣评论。我记得当我真的想要一个 Logitech Transporter 时,我自己也对它很感兴趣。显然,我需要重新审视一下。您对 MPD 和 LMS 社区的相对规模有任何了解吗?这两个社区的总体活跃程度如何?
CD: 说实话,不太确定。我比以前在 MPD 社区中更活跃于 LMS 社区。(MPD 的作者从不喜欢 Cantata 存储自己的音乐列表缓存的事实)。LMS 论坛 (forums.slimdevices.com) 似乎比 MPD 论坛 (forum.musicpd.org) 更活跃。LMS 用户和开发人员非常友好,Michael Herger(Logitech 员工)乐于助人,通常会快速回复查询。但正如所述,我从未真正与 MPD 进行过太多互动,所以我真的无法提供太多关于那方面的信息。
正如所述,LMS 更适合我的需求,但 MPD 很可能对其他人来说是更好的选择。
CH: 您对 Cantata 有任何未来的计划吗?您想添加的东西?您从事的其他开源项目?
CD: Cantata 没有未来的计划,它现在完全处于仅修复错误的状态。今年晚些时候,我将发布 v2.4.0,但这可能是很长一段时间内的最后一个功能版本。正如所述,我不再积极使用它。
至于其他开源项目:我曾经编写 KDE 字体管理器和 KDE 的仅图标任务栏,我为各种开源项目(KMediaFactory、Audex、Kino、MPDroid)贡献了补丁。几年前,我编写了一个 Qt5 open-home 控制点。这个项目从未成熟,并且由于我也放弃了 BubbleUPNP/MiniDNLA,我已经很久没有使用它了。
我现在正在从事的主要项目是 LMS 的 Google Material 主题“皮肤”。LMS 的默认 Web UI 虽然功能齐全,但并不漂亮,并且在移动设备上无法真正工作。因此,在过去的一年中,我一直在为 LMS 编写 HTML5/Javascript 界面。但是,我不是 Web 开发人员,所以这一切对我来说都是新鲜事物。这个项目最棒的地方在于它安装在 LMS 服务器上,因此我可以拥有一个漂亮的 LMS UI,而无需安装任何软件(只需要一个浏览器)。如果我要举办烧烤派对,我可以让客人更改曲目等,只需让他们用手机(iOS、Android 等)上的浏览器指向 LMS 即可。如果您有兴趣,请在线搜索“lms material skin”。我的 GitHub 页面上的唯一屏幕截图来自 v0.0.1(并且 UI 已经发生了很大的变化)。我几周前刚刚发布了 v1.0 版本,但我仍在进行更改。“尽早发布,经常发布。”
CH: 非常酷,我想我会看看。我想这最终会取代您家中 iPeng 的使用,对吗?
CD: 那会很好,但让我的妻子接受新事物很难。她喜欢 iPeng,它对她来说很有效,这对我就足够了——至少她最终开始使用我们的数字音乐收藏了。
CH: 我非常享受与 Craig 的对话。虽然我对 Canata/MPD 在家播放音乐非常满意,但这听起来好像我需要看看 Logitech Media Server。
音乐精选
我最近买了几张新专辑。其中一张很突出的是一张可爱的 CD(是的,既不是下载也不是黑胶唱片——我失去感觉了吗?)——人声:来自阿维尼翁的圣歌。我非常喜欢我遇到的大多数格里高利圣咏,这是一个很好的例子。另一方面,自从 2000 年初在一张 CD 上第一次遇到 Kwanzaa Posse 以来,我多年来一直在寻找更多他们的作品,我找到了这个:Kwanzaa Posse Featuring Massive Attack–非洲振动。
最后,我请 Craig 推荐一首歌曲。他的回答是:“音乐是很私人的东西——很难提出任何建议。我现在非常喜欢 Avantasia,并且我一直是 Iron Maiden、Magnum 和 Thunder 的粉丝,时间比我愿意承认的要长!话虽如此,我也喜欢 Aqua 的 Barbie Girl(他们的两张专辑我都有!) 不太喜欢大多数流行音乐,也不喜欢说唱(但喜欢 RunDMC 的 Walk this Way),并且永远无法接受爵士乐。”
2 条评论