这个项目能做什么
TastyTunes 是一款桌面应用程序,可作为基于 StreamMagic 平台的 Cambridge Audio 网络播放器的远程控制器。README 中列出的支持型号包括 Evo 75/150、CXN100 和 CXN (V2)、MXN10、AXN10、EXN100、Edge NQ 和 851N,开发和日常测试基于 Evo 150 进行。该应用在本地运行,通过用户的自有网络与流媒体播放器通信,无需账户或云服务。
安装程序支持 macOS 11+(通用、已签名且经过公证)、Windows 10+(涵盖 x64 和 arm64 的单一签名安装程序)以及 Linux(x64 或 arm64 AppImage,包括 64 位 Raspberry Pi OS)。启动时,应用通过 SSDP 发现网络上的 StreamMagic 设备,如果自动发现失败,可手动输入 IP 地址。演示模式允许在没有硬件的情况下,通过内置的虚拟播放器和两个示例库运行整个应用程序。
“正在播放”界面在模糊的艺术背景上呈现大尺寸专辑封面、曲目详情、编解码器、采样率、位深度、无损和 MQA 的格式徽章,以及一个在形状和颜色上均有不同状态的信号质量指示器。除了主窗口外,还提供全屏显示模式、无边框且始终置顶的迷你播放器,以及可选的菜单栏或系统托盘面板。
库功能将所有本地 UPnP 媒体服务器和播放器的 USB 存储整合到艺术家、专辑和曲目视图中,并由一个可重建的本地索引支持,支持跨所有来源的即时搜索。过滤和排序涵盖流派、年代、格式、动态范围以及专辑与精选集的区分。专辑处理方面,特邀嘉宾保持原位,精选集归类在 Various Artists 下,多碟套装显示碟片分隔符,多卷盒装集则通过卷选择器折叠。缺失的封面可通过 Cover Art Archive 填充。
除库播放外,还提供收藏夹、基于内容定义的本地存储播放列表、支持多选和拖拽排序的队列、播放器的 99 个预设槽位(可通过数字键调用,且每个预设可携带独立音量)、带倾斜和平衡功能的七段 EQ、源切换,以及浏览带有流派和年代分类的 radio-browser.info 目录。同步歌词来自 LRCLIB 并逐行高亮显示;点击某一行可跳转至该位置。艺术家传记和专辑事实取自 MusicBrainz 和 Wikipedia,并附有归属链接。
音频分析通过读取本地媒体服务器的文件,在进度条和封面下方绘制波形,并按照 DR 数据库的 TT-DR 程序计算动态范围值,该值随后成为库中的过滤和排序选项。一个有上限的最近播放日志和以年度 JSON Lines 文件写入的聆听记录可追踪播放内容及其时长;两者均可清除或禁用。ListenBrainz scrobbling 仅在实际播放时间完成后提交聆听记录,并会对失败的提交进行重试。
自动化功能包括 15 分钟至两小时或曲目结束的睡眠定时器(可选音量渐隐),以及按周定义的计划,可将设备唤醒至某个预设(带渐入)或将其发送至待机状态。
可选的 MCP 服务器(默认关闭)将应用的功能开放给本地 AI 代理(如 Claude Code 或 Claude Desktop),涵盖播放与音量、预设与源、库与电台、收藏夹、音调与 EQ、睡眠定时器、聆听记录和音频分析。编辑工具独立分开且在开启前禁用,代理继承 UI 的音量上限、电源保护和连接开关。README 还提供了一个 Home Assistant rest_command 示例,无需额外集成即可调用 MCP 端点。
该项目详细记录了离开机器的所有网络流量:除了本地网络外,流媒体控制或库浏览不会发送任何数据;而歌词、艺术家和专辑上下文、缺失专辑封面、更新检查和电台搜索均可开关,scrobbling 在添加令牌前处于关闭状态。没有分析、遥测或账户系统,内置了请求控制台和原始播放器流量控制台。
技术栈采用 Electron 配合 electron-vite、React 19、TypeScript、Tailwind CSS v4 和 Zustand,主进程通过 SSDP 和播放器的 SMOIP WebSocket 处理设备 I/O。播放器被视为唯一的真理来源:发送命令,状态被推送回应用,界面根据该推送重新渲染。项目基于 GNU General Public License v3.0 发布,开发在 develop 分支进行,CI 运行 typecheck、ESLint 和 Prettier 检查。
评论
0 评分人数达到10人后显示
登录后参与讨论。