九歌音乐播放器是一个开源的跨平台音乐播放器项目,目标是创建兼容主流开源流媒体服务器并支持多种操作系统的专业音乐客户端,实现客户端和服务器之间的数据互操作性 (支持Windows, Linux, MacOS, Android, iOS以及Android车载系统)。 项目名称"九歌",源于《楚辞》,以纪念屈原。
NSMusicS项目旨在构建一个完整的音乐生态系统,包含桌面客户端 (Electron)、服务器端 (Go) 和移动客户端 (Flutter)。它支持多种流媒体服务器,例如 Navidrome、Jellyfin 和 Emby,未来计划支持 Subsonic (需等待新 API)。 此外,NSMusicS 还支持本地音乐库,如 webdev、onedriver,并计划支持各种网络云盘。 项目最终目标是集成到小米等智能家居生态中。
九松 0.5.0 测试版已于 2025 年 6 月 15 日发布,正式版 1.0.0 将于 2025 年 7 月初发布。如果你想尝试使用 NSMusicS 和 NineSong 的 Docker 的混合版本,可以在 NineSong 项目中部署它。
Windows桌面版界面:
核心功能亮点
跨平台支持: Windows、Linux、macOS、Android,、华为HarmonyOS、iOS、Android车载系统
多服务器兼容: Navidrome、Jellyfin、webdev、onedriv、Emby (未来支持 Subsonic 和 NSMusicS-GO)
本地音乐库支持: Windows、macOS、Linux(Docker版本开发中)
专业音频播放: (丰富的音效功能开发中)
国际化支持: 已实现
系统托盘: Windows, macOS、Linux
(未来) 网络云盘支持
(未来) 丰富的音效
(未来) 多种音乐使用场景 (例如卡拉OK,家庭影音)
(未来) 人工智能功能 (音乐识别,伴奏提取,卡拉OK评分等)
(未来) 知识图谱 (推荐系统,图数据库等)
版本更新内容
音频输出: 默认音频输出改为 howler.js web 输出,解决了 node-mpv 的潜在问题。
迷你播放窗口: 添加迷你播放窗口,垂直模式模仿 Apple Music,水平模式显示桌面歌词。
服务器兼容性: 增加服务器配置类型,兼容 Emby 和 Jellyfin API
本地模式优化:
优化音乐库管理逻辑,更符合本地用户习惯。
增加按媒体库文件夹目录过滤歌曲的功能。
优化本地模式导入范式,优化前端操作,分离node层和渲染层,支持 Docker 部署。
修复本地模式封面显示逻辑。
优化本地模式导入逻辑,适应大部分用户的音乐库管理习惯。
用户体验改进:
增加鼠标悬停国际化提示。
修复歌词滚动样式,优化歌词数据响应性能,使显示效果更流畅。
修复一些 UI 样式。
修复切换音频输出模式时出现的错误弹窗。
增加自定义选择音频设备输出的 web 输出模式。
在数据展示页面(专辑、音乐、艺术家)左上角增加刷新按钮,用于重置数据。
改进播放界面的设计元素,引入 Apple Music 的设计风格,提升 UI 交互。
增加歌曲/专辑/艺术家的标签信息浏览和编辑功能。
将自定义左侧菜单栏更改为菜单栏模式梯队选择。
菜单栏模式:设置(必需)、专辑音乐艺术家(必需)、主页(可选)、多媒体(Emby Jellyfin:音频和视频+图像)(可选)、AI 扩展(可选)。
跨平台兼容性:
增加对 Linux 系统客户端的支持。
增加 MPV 对 MacOS 系统客户端的兼容性,改进调用/注销 MPV 的过程。
优化 Electron 文件系统访问源代码的跨平台兼容性。
增加对 MacOS 系统客户端的部分兼容性支持并发布 MacOS 版本 (仅兼容服务器模式和 web 音频输出)。
其他:
初步构建 NSMusicS-GO 的管理系统界面(仅 UI 界面,未开放)
支持 Windows10+、MacOS(arm、x64)、Linux 平台(即将支持 Docker)
后续更新
适用于移动设备的 NSMusicS Flutter 的跨平台版本将于今年年底发布。作为 NineSong 软件生态的第一个应用场景,标志着 NineSong 音乐场景的里程碑
华为 HarmonyOS 生态的 NSMusicS 客户端将于 2026 年发布,也将与 NineSong 联合发布
NSMusicS 经过初步开发和改进后,将集成到各种软件生态系统中,例如:
小米家集成 for Home Assistant: github: ha_xiaomi_home (米家集成:智能家居系统)
v1.6.7
增加对 Docker Web 客户端的支持 [√];
增加服务器配置类型,使用 NineSong API [√];
优化 nsmusics 产品的用户友好性,搭建引导程序,逐步指导初始安装用户完成应用配置作【进行中】;
v1.6.4
由于存在 node-mpv 维护的潜在问题,包括但不限于重复单次播放、MPV 组件唤醒失败、MPV 状态管理权限问题,现在默认音频输出设置为 howler.js Web 输出[√];
添加迷你播放窗口。竖模式为仿 applemusic Mini 播放浮动窗口,横模式为桌面歌词 [√];
新增服务器配置类型,兼容 emby API [√];
新增服务器配置类型,兼容 jellyfin API [√];
优化本地模式的音乐库管理逻辑,使其更符合本地用户的使用习惯 [√];
按媒体库文件夹目录过滤歌曲 [√];
为每个按钮添加鼠标悬停国际化提示,提高用户友好性 [√];
优化了本地模式导入范式,优化了多个前端作的用户友好性,并最大限度的将节点层与渲染层分离,使其能够支持 Docker 部署 [√] ;
修复歌词的滚动样式,优化歌词数据的响应性能,使其显示效果更流畅 [√];
修复了一些 UI 样式 [√];
增加对 Linux 系统客户端的支持 [√];
提高 MacOS 系统客户端的 MPV 兼容性,改进调用 / 注销 MPV 的流程 [√];
播放界面的设计元素引入了 Apple Music 的设计风格,提升了各个页面的 UI 交互[√];
修复切换音频输出模式时出现的错误弹窗 [√];
为 Web 输出模式添加自定义选择音频设备输出 [√];
修复本地模式下的封面显示逻辑 [√];
优化本地模式导入逻辑,适配大部分用户的音乐库管理习惯 [√];
在数据展示页面(专辑、音乐、艺术家)左上角添加刷新按钮,重置该页面的数据 [√]
增加歌曲/专辑/艺人的标签信息浏览和编辑功能 [√];
将自定义左侧菜单栏更改为菜单栏模式梯形选择 [√];
菜单栏模式:设置 [必选]、专辑音乐艺术家 [必选]、首页 [可选]、多媒体(Emby Jellyfin:音视频+图片)[可选]、AI 扩展 [可选] [√];
初步构建 NSMusicS-GO 的管理系统界面(仅限 UI 界面,不开放)到当前 Electron 版本 [√];
优化 Electron 文件系统访问源码的跨平台兼容性 [√];
新增对 MacOS 系统客户端的部分兼容性支持,并发布 MacOS 版本 (1.仅兼容服务器模式;2. 仅兼容 Web 音频输出;[√];
v1.0.8
修复了 MPV 中手动淡入/淡出触发结尾暂停的问题
优化了 NSMusicS Electron 与部分 win 系统的兼容性,从打包中移除了管理员执行选项
修复了本地模式下嵌套音乐库的封面读取逻辑
修复阻止用户再次启动 NSMusicS 的机制(如果 NSMusicS 重复启动,会自动跳转到
已经启动的 NSMusicS),以防止用户误以为 NSMusicS 没有运行,并在多次打开 NSMusicS 时崩溃
优化了导入 NSMusicS 媒体库的用户友好性;
优化并修复专辑、音乐、艺术家的搜索切换逻辑;
优化应用托盘,通过任务栏托盘保留后端服务;
可选的音频输出源(mpv(本地输出)/howler.js(Web 输出)),(使用 Web 输出修复路由模式-质量-模式);
音频输出源:mpv:支持自定义播放采样率、淡入淡出、自定义 mpv 参数、自定义通道、无缝音频、音频专属模式、ReplayGain 模式、ReplayGain 预放大、ReplayGain 削波、ReplayGain 回溯方案;
音频输出源:web:支持杜比音频播放、淡入淡出,支持音效插件(尚未开放,开发中);
即将推出的功能将在将来更新;
将 Emby Jellyfin 的多媒体媒体库(仅 UI 界面,未打开)初步构建到当前的 NSMusicS Electron 版本中;
提高 MacOS 系统客户端的 MPV 兼容性,改进调用 / 注销 MPV 的流程;
提高 MaxOS 系统客户端的本地模式兼容性,并提高 MacOSX 文件系统的访问兼容性;
增加音效均衡器(简单/专业)功能(仅适用于音频输出源Howler.exe(网页输出));
专辑音乐艺术家页面添加高级过滤器:year, genre [Any condition];
增加对提示音频格式的支持;
添加与 Windows 系统媒体控制 (SMTC) 的交互功能(为 Windows 开发基于 C# 的 DLL,用于 NSMusicS Electron 访问 Windows 底层组件功能);
为播放器添加动态渐变背景,并可选择播放背景(动态渐变背景/专辑背景);
添加和优化应用程序主题样式(Windows 云母主题、秋霜白主题、深色和闪亮黑色主题、火山灰主题);
按文件夹目录对歌曲进行排序,按目录排序,准确搜索歌曲;
增加歌词样式(点渐变动画,表示下一个要播放的歌词的进度变化);
添加歌词样式(桌面歌词功能);
新增歌词样式 (进一步优化并全面开启 word for word 歌词功能。服务器模式也可以在本地模式下使用逐字换字歌词,与 Apple Music 歌词具有相同的逐字效果);
增加服务器配置的多样性,兼容 Emby API,并增加视频 MV 播放模式(特色功能:MV 歌词同步、歌曲动画);
增加快捷键控制模式(可以根据菜单中的用户习惯自定义快捷键,或使用默认快捷键);
DLNA 推送到音频播放;
优化 NSMusicS 产品的用户友好性,构建引导程序,逐步指导用户完成配置作;
增加服务器配置的种类以兼容 Jellyfin API;
添加 webdav 服务器配置(数据下载/即时访问);
增加云存储网盘服务器配置(OneDrive 和各种云盘);
新增 API 配置,使用外部歌词检索 API,标签检索完成 API;