我学习PCB设计、3D打印和C语言只是为了听音乐

Hacker News Top 产品

摘要

一位开发者制作了一个定制音乐流媒体播放器,配备17英寸黑胶唱片封套大小的显示屏,在此过程中学习了PCB设计、3D打印和底层Linux编程。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/27 01:42

# 一款带有LP唱片封面尺寸显示屏的音乐流媒体设备 • Pentaton 来源:https://pentaton.app/blog/2026-07-12-introducing-pentaton-lp/ Marton @ 2026年7月12日 我一直很喜欢看到和触摸过去购买的CD和LP的封面艺术,但最终数字流媒体的便利性占据上风,我接受了没有(或只有邮票大小)封面艺术的状态。最近我越来越怀念这种感觉,最终决定做点什么。于是我打造了一台流媒体设备。 ### 硬件 我希望设备看起来和摸起来像展示中的黑胶唱片封套。大约12英寸x12英寸,尽量薄。我找到了唯一符合需求的显示屏:一块17英寸工业IPS LCD,分辨率1920x1920。它带有一个嵌入式DisplayPort接口,我需要找到一块同样具备此接口的计算机模块形态的单板计算机。选择不多,但我找到了Radxa CM3。 由于希望设备薄,我需要为CM3设计一块载板,并尽可能降低板载高度。我以前从未做过这件事,所以从基础电子学和磁学到高速信号布线,学到了很多。经过四次改版,才让一切按预期运行。 主板通过USB-C PD供电,另有一个USB-C接口用于外部DAC,一个千兆以太网端口,以及一个3.5mm插孔形式的12V触发接口。计算模块还支持WiFi和蓝牙。 我在FreeCAD中设计了一个外壳,这对我也很陌生。事实证明,参数化CAD与平滑曲面并不好配合。我不得不编写一个自定义宏来生成想要的形状。设计完成后,我尝试用全新的3D打印机打印,结果是一场灾难(https://www.reddit.com/r/3Dprinting/comments/1syya9w/firstever_3d_print_is_a_disaster/)。我花了一些时间学习面向制造的设计,特别是针对3D打印的设计。 最终,我拥有了一台看起来像LP唱片封套的小型计算机。 ### 软件 我在家中只使用AirPlay,因此需要这台流媒体设备支持它。我选择了最流行的开源实现shairport-sync,并让它运行在高度精简的Alpine Linux镜像上。我学到了不少关于启动单板计算机、设备树、编译内核、控制显示背光、电源管理等知识。 这给了我一个良好的基础,但还没有封面艺术。于是我编写了一个小应用程序,根据来自AirPlay客户端的元数据显示封面图像。它只显示封面艺术,没有其他内容。这出乎意料地具有挑战性,尽管这是我最为熟悉的领域。结果发现,在一台中低端单板计算机上以每秒60帧的速度交叉淡入淡出两张4MP图像并不容易。我需要利用GPU加速来实现并保持流畅。 有趣的是,AirPlay本身只传输低分辨率封面艺术(大约500x500像素),难怪大尺寸显示屏的流媒体设备不存在。幸运的是,我能在我的音频播放器应用中构建一个带外协议扩展,从而发送并全分辨率显示封面艺术。 ### 使用 设备始终开机。屏幕关闭时功耗低于2瓦。当流媒体开始时它会自动唤醒,打开屏幕并通过12V触发接口开启放大器。全亮度时功耗约24瓦。我用一个通用USB-C充电器供电,通过FiiO KA17 DAC连接我的Pro-Ject Amp Box SE。AirPlay支持CD级无损音质,对我来说已经足够。 ### 下一步 如果感兴趣的人足够多,我正考虑为Pentaton LP发起Kickstarter众筹。如果你不想错过,请在此注册以获取更新:https://pentaton.app/lp/

相似文章

我写了一个音乐播放器(2022)

Lobsters Hottest

一位开发者分享了构建“amused”的历程,这是一个极简音乐播放器,采用守护进程/客户端架构,利用Unix管道进行播放列表操作,强调简洁性和组合性。

突破音乐供应的约束

Reddit r/LocalLLaMA

作者描述了取消音乐订阅,并使用DGX Spark、Plex和Ace-Step 1.5 XL模型构建了一个自托管的AI音乐生成系统,创造了无限的个性化音乐供应。

在Arduino上使用Magenta Realtime 2实现无限音乐故障

Reddit r/LocalLLaMA

一位开发者使用ESP32微控制器、MacBook、用于实时音乐生成的Magenta Realtime 2、用于转录的MLX Whisper,以及用于工具调用的Qwen模型,构建了一个本地语音控制的音乐系统,实现了对音乐元素(如流派和乐器)的对话式控制。