介绍Plexamp

正如我们在介绍Plex Labs的博客文章中提到的那样,我们正在使用Medium的地方是讨论受官方支持的宇宙之外的Plex生态系统中令人敬畏的部分的场所。 这包括受欢迎的社区项目以及我们自己员工的热情项目。

今天,我们将结束一个名为Plexamp的项目。 它可能会吸引使用或考虑使用Plex音乐的任何人。 它是由少数人在业余时间在Plex内构建的,它是对过去的致敬,是进行实验和玩耍的测试平台,并且坦率地讲,是一种学习新的JavaScript新功能的方法。

事不宜迟,我们将介绍给他们!


小巧,功能强大,美观(选择任意三个)

我们喜欢音乐。 我们爱Plex。 我们认为我们可以结合这些激情。

一切都从啤酒开始-就像大多数伟大的事情一样-重新设想了一个微型而强大的音乐播放器在2017年的样子。最经典和最受欢迎的小型音频播放器Winamp几乎在20年前首次发布。 它使用低级语言编写,可在Windows上运行,并且仅限于在本地(或网络)文件系统上播放文件。

另一方面,Plex提供了一流的客户端/服务器模型,极其丰富的元数据库,具有高度的可移植性,可让您从世界任何地方访问整个音乐收藏; 我们希望将其与同样出色的音乐播放器配对。 从字面上看,我们唯一的要求是“小”。 Plex已经拥有许多更大的应用程序,但是没有什么可以毫不客气地摆在桌面上,令人着迷和愉悦。 我们甚至强迫自己将设计限制在一个简单的窗口中。

我们很快将Electron定位为构建应用程序的平台。 ES7,Electron,React和MobX的结合迅速成为了令人难以置信的高效(有趣!)的一组使用技术。 对于实际的音频播放器,我们希望使用Web Audio来完成不容易甚至无法完成的工作,因此我们选择了功能丰富,可移植的开源音频播放器,称为Music Player Daemon(MPD)。

该应用程序包含多个Electron进程,一个播放器服务器进程(用于远程控制)和MPD播放器进程,同时设法呈现出一个整体,这真是令人惊讶或疯狂(可能两者兼而有之)。 并忽略了它可能是最小的Plex播放器(按像素大小)的事实,它仍然具有丰富的功能!

以下是该应用程序基本功能的快速概述:

  • 在macOS和Windows上运行,并且像本机应用程序一样工作(例如,支持跳过曲目和切换播放/暂停的媒体键,以及通知)。
  • 直接播放几乎所有您梦any以求的音乐格式。
  • 伴侣支持:可用于远程控制其他Plex播放器,并可对其本身进行远程控制。
  • 可在离线情况下工作(例如,在服务器上运行笔记本电脑的飞机上或私人潜艇上)。

深入研究一下,让我们探究一些使Plexamp与众不同的性感功能:

  • 全局激活热键 :除了支持标准媒体密钥外,它还提供了全局激活热键,就像macOS上的Spotlight(cmd + shift + space)一样。 这样可以比以往更快地在音乐库中查找内容。 对于高级用户,还有许多其他不错的键绑定。
  • 无间隙播放 :拥有Pink Floyd’s The Wall或大约1,534张现场Dave Matthews演唱会专辑中的任何一个都会告诉您,这对于音乐播放器来说是非常重要的功能。
  • 软过渡 :我们真的很想使用Plexamp来细化细节。 只要您暂停曲目,而不是突然停止,我们都会进行快速的淡入淡出,然后在恢复时再次淡入淡出(在搜索和跳过时也是如此)。 细微的差别,但甜蜜的区别。 想知道我们有多沉迷吗? 那三个小动画条显示了播放队列中当前正在播放的曲目? 那实际上是一个频谱分析仪。
  • 可视化工具 :如果您在听音乐时没有一套有趣的可视化工具,那么音乐播放器将会是什么样? 这里的技术细节非常酷(我们在MPD流程中通过心理声学调整执行FFT,然后通过UDP将带有时间戳的数据发送到应用程序流程中),并且为Canvas API和WebGL可视化工具构建了主机。 全力以赴,让我们知道您的最爱!
  • 专辑插图的关键颜色提取 :我们从专辑插图中提取重要的颜色,以用于各种目的(例如,计算覆盖图的最佳不透明度值,并提供供可视化工具使用的调色板)。 同样,细节很重要。

如前所述,该项目的目标之一是拥有一个试验和测试平台。 如果不在官方应用程序的上下文中,执行此操作可能会容易得多。 这样,我们最终能够尽早使用Plex Media Server中一些正在开发中的新兴功能。 这些功能最终将成为 Plex Pass 高级音乐包的一部分,但是作为圣诞节礼物,我们将在接下来的三个月内免费提供这些功能,因此您也可以使用它们!

服务器团队一直在致力于增强音频的媒体分析引擎。 他们使用同类最佳的EBU R128算法来提取响度数据并启用各种新功能。 此外,他们还添加了一些很酷的广播模式,使您可以全新的方式体验音乐。

我们利用这些新功能来增强Plexamp中的以下功能:

  • 响度调整 :使用响度数据,我们现在可以标准化播放音量。 当播放不同专辑中的曲目时,此功能最有用,但在专辑播放过程中也能保持一致。 如果您对为什么需要这样做感到好奇,则此页面提供了良好的历史记录。 (这通常称为ReplayGain,Plexamp使用服务器计算的ReplayGain 2值和-18 LUFS参考。)
  • 智能过渡 :作为响度分析的一部分,我们计算两条轨道之间的最佳重叠时间,以确保过渡是无缝的。 结合响度调整,可以在甚至广泛不同的流派和风格之间提供无与伦比的聆听“流”。 真是不可思议。
  • SoundPrints :我们一直在寻找找到一种非常酷的方法,使用专辑插图中的响度配置文件和基调来直观地呈现曲目。 我们认为我们找到了一个。 如果您最终得到自己喜欢的曲目的纹身,请告诉我们,我们甚至可能会为此付出代价。
  • 波形搜索 :在这里,我们使用响度数据来提供轨迹的图形视图,从而可以轻松地搜索到特定的位置,例如跳过10分钟以上的静默即可到达该隐藏的轨迹。 另外:请停止制作隐藏的曲目,这很烦人。
  • 图书馆站 :您始终能够对整个图书馆进行改编,但这并不总是探索它的最佳方法,而且完全随机的改编没有考虑到体验的某些感知方面。 新的服务器广播电台功能使用了先进的试探法,包括曲目的受欢迎程度,评分和收听历史记录。 有两个可用的图书馆站:
  • 图书馆广播 :可以不按特定顺序在整个图书馆工作。
  • 时空广播 :从最早发行的音乐开始,然后向前发展,为您提供音乐历史上的旋风,弯曲风格的旅程。 我们喜欢以此(和咖啡;大量咖啡)开始我们的早晨。
  • 艺术家广播电台 :现在,每个艺术家都提供一个艺术家广播电台,这为您提供了启动类似音乐播放列表的绝佳方法。 随着工作站的进行,它会根据起点启发您探索图书馆的更多角落。

底线:我们是音乐爱好者。 在过去的几个月中,我们一直在使用Plexamp,它为开发人员和养狗者带来了很多惊喜。 尽管它可能仍然有一些粗糙的边缘,但我们认为它可能只是向您展示了一些很棒的体验音乐收藏的新方法。 很高兴与您分享。

您可以在Plex Labs页面上下载Plexamp。 通过@plexamp在Twitter和Instagram上关注我们。 嘿,我们还有一个常见问题解答。