std::pi

自从我收购了Logitech现在已经过时的Squeezebox Touch (我的家人仍在使用)以来,我就一直是Squeezebox的粉丝。

Squeezebox Touch提供了一个家庭友好的界面,可直接在设备上或通过一系列移动应用程序访问我们的音乐库。 罗技(Logitech)在2012年停止了开发,但我很高兴,因为他们开源了Squeezebox的服务器软件作为Logitech Media Server,并提供了在物理Squeezebox设备上使用的开源代码。

SqueezeBox Touch,Steve Ellis,CC BY-SA 4.0

大约一年前,我决定要为家庭办公室提供一些体面的声音,并希望将旧的Raspberry Pi 1 Model B用作音源。 理想情况下,我想要与我们现有的Squeezebox生态系统兼容的东西并寻找选择。 Logitech Media Server很快成为我的选择。 社区用于管理音频库的Logitech Media Server软件已进行了许多增强和重大修订(通过Slimdevices论坛及其Wiki提供了有关最新版本的信息 )。

这是我创建近乎高保真音质体验的三个步骤,几乎可以在Raspberry Pi的任何迭代中使用。

阶段1:概念验证

尽管Raspberry Pi Model B配备了标准的3.5mm立体声音频插Kong,但其频率响应有限,并且会受到很大的干扰。 后来的模型并没有真正改善这一点,但是足以将Pi作为SqueezeBox客户端进行测试。

基本Raspberry Pi硬件,Steve Ellis,CC BY-SA 4.0

基准硬件和软件

  • Raspberry Pi 1 Model B(带保护套)
  • 128MB SD卡
  • 具有1A输出的USB充电器
  • 3.5毫米立体声音频线
  • 网线
  • 老双笔记本电脑音箱
  • piCorePlayer软件

最初的PoC硬件,包括旧的PC扬声器,Steve Ellis,CC BY-SA 4.0

PoC阶段的主要目标是重复使用旧的备用设备-我想我使用的Altec Lansing台式扬声器大约有20年的历史了,而128MB SD卡是我所能找到的最小的备用卡。 (由于128MB卡的可靠性问题,我后来切换到了1GB SD卡。)我还选择了一条物理网络电缆,因为该设备将无头运行(无屏幕),并且通过物理以太网电缆进行DHCP易于实施和测试。 另一个常见的问题是USB电源不良或不可靠,因此是1安培单元。

我非常乐于采取以设备为中心的方法,并且piCorePlayer提供了一个很小的Linux版本,并以易于安装的形式集成了Logitech Media Server的Squeezelite软件客户端。 在后台,它是运行在RAM中的基于TinyCore的Linux,仅在备份配置更改时挂载存储。 这使得它在断电方面非常有弹性。 对于音频输出,它支持3.5毫米立体声插Kong,HDMI音频和一系列USB数模转换器(DAC)。 此外,如果您想获得更多的发烧友体验,则有很多I 2 C DAC可直接插入Raspberry Pi。

我下载了最新版本的piCorePlayer并将其安装到SD卡上。 请注意,使用更现代的Pi时,您将需要使用microSD卡。 此外,Raspberry Pi不支持从USB设备启动。 我使用dd通过Linux笔记本电脑上的卡槽对SD卡进行映像。

sudo dd if =piCorePlayer3.20.img of = / dev / mmcblk0 bs =16M

可选地,某些发行版现在附带了图像刻录工具,例如Fedora Media Writer 。

Fedora Media Writer,Steve Ellis,CC BY-SA 4.0

引导后,Pi通过DHCP找到了IP地址,我可以通过浏览器连接以完成配置。

在Squeezelite的设置下,我将音频输出设置为模拟音频,然后单击“保存”。 然后,我为播放器指定了一个名称,该名称由SqueezeCenter服务器软件检测到,然后再次单击“保存”。

PiCorePlayer的初始配置,Steve Ellis,CC BY-SA 4.0

使用我的Squeezer Android移动客户端,现在我可以在网络上看到两个Squeezebox客户端,旧的Squeezebox Touch和我的家庭办公室piCorePlayer,并且可以从库中选择并播放音频。 这是一个快速简便的测试,但是我确实遇到了一些音频问题。 有时候,如果我敲打或移动Pi的话,扬声器会发出嗡嗡声,而且音频质量也不尽人意。

基于浏览器的音频播放,Steve Ellis,CC BY-SA 4.0

阶段2:USB音频适配器

因为在第二阶段我仍在尝试重用现有的硬件,所以我抓住了Logitech耳机随附的旧USB音频适配器,希望它可以提供比板载3.5mm插Kong更可靠的音频体验。

罗技USB音频适配器,史蒂夫·埃利斯(Steve Ellis),CC BY-SA 4.0

Pi自动检测到USB适配器。 通过浏览器,我只需要将音频输出更改为USB并将输出设置更改为front:CARD = Headset,DEV = 0 。 单击“保存”后,通过USB适配器,使用20岁的扬声器可获得更可靠的音频。

piCorePlayer站点上有各种USB设备的出色指南 。 我已对其进行更新,以包括Logitech适配器的USB ID。

阶段3:发烧级质量?

适用于发烧友的SqueezePi,Steve Ellis,CC BY-SA 4.0

我有一些备用的书架式扬声器,比笔记本电脑的扬声器要好得多,但是没有动力来驱动它们。 在这个阶段,我本可以使用支持HDMI的小型放大器,避免使用USB和3.5mm输出,但是我听说内置USB DAC的小型放大器,因此决定探索这条路。

在阅读了大量正面评论后,我从当地供应商处购买了Topping VX1放大器。 这是一款功能强大的华丽设备,适用于小型家庭办公环境。 USB DAC可被现代Linux内核自动检测到,并与piCorePlayer配合使用。

摘下VX1前排,Steve Ellis,CC BY-SA 4.0

用USB电缆连接Toping VX1,Steve Ellis,CC BY-SA 4.0

后续步骤:是否有第4阶段?

您可能想知道,如果我从头开始,是否会再次以同样的方式进行操作。

大多。 如果要购买硬件,我会考虑使用Pi Pi之类的设备。 该设备有一些很棒的发烧友附加组件,并且其占用空间非常小。

对于放大器DAC,我希望能使用我的老朋友Bdale Garbee开发的设备的某些东西。 这些小型设备将PCM2705C USB DAC与TPA3118D2 D类音频放大器相结合,可以作为Topping VX1放大器的替代品提供一种简单,低成本,开放性强的解决方案。 有关Bdale解决方案的更多信息,请参阅linux.conf.au 2016中的演讲或访问其项目网站 。

如果我还不是Squeezebox的用户,那么我可能会考虑使用基于音乐播放器守护程序(MPD)的解决方案,也许使用Mopidity之类的方法 。

我正在考虑使用触摸屏来提供更完整的Squeezebox Touch式体验。 Squeezebox UI的完全开源实现与Pi的触摸屏兼容。 此外,我的女儿很快将不再使用当前的立体声音响,这可能会提供一个与Pi Zero一起玩的机会,以构建另一个与Squeezebox兼容的前端。

但是现在,我忙于在家庭办公室中享受出色的音频质量,同时又为Opensource.com撰写本文,以​​考虑下一步的发展。

翻译自: https://opensource.com/article/17/5/squeeze-pi-audio

std::pi

std::pi_挤压Pi:家庭音频历险记相关推荐

  1. 新电途与华为AITO达成充电合作;SGW和摩托罗拉完成家庭音频产品许可交易 | 美通企业日报...

    美通社要闻摘要: 喜来登酒店及度假村继续在华东地区拓展.新电途与华为AITO达成充电合作."安进生物技术体验项目"中国站正式启动.博世灵活7系吸尘器全新上市.SGW和摩托罗拉完成家 ...

  2. 使用MetalLB在您的Raspberry Pi家庭实验室上安装Kubernetes负载均衡器

    Kubernetes旨在与主要云提供商的负载平衡器集成,以提供公共IP地址并将流量定向到群集中. 一些专业的网络设备制造商还提供控制器,以将其物理负载平衡产品集成到专用数据中心的Kubernetes安 ...

  3. codesys raspberry pi_【Pi讯早餐】2020.11.02 星期一gt;gt;

    派闻速览 A.昨日除了有部分用户收到kyc认证之外,市场并没有大一点的消息,这也很正常,毕竟项目方每天都在开发项目有很多事情要做,不可能天天出来放消息,我也感受到了一些用户对于pi消极的一面,因为不确 ...

  4. java 求pi_计算PI(π)的几种方法

    计算π的方法 一.蒙特卡罗法这种方法是一种利用计算机随机数的功能基于"随机数"的算法,通过计算落在单位圆内的点与落在正方形内的 点的比值求PI. 由于图形的对称性,我们靠考虑该图的 ...

  5. Raspberry Pi家庭监控报警系统——软件篇

    1.摄像头20块左右一个,淘宝有卖树莓派专用的插线摄像头,你也可以用usb摄像头.硬件搭好后,运行raspi-config开启摄像头模块.开启后可以通过命令测试下硬件是否正常工作:raspistill ...

  6. std::setprecision、std::ios::fixed使用说明

    单独使用std::setprecision 如下: #include <iostream> #include <iomanip> #include <cmath> ...

  7. ffmpeg进行混音,将两路音频pcm数据合成一路输出

    ffmpeg进行混音,将两路音频pcm数据合成一路输出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map&g ...

  8. C/C++中的pi(pai)怎么打 【c语言】

    极速版: const double pi = acos(-1.0); 详细版: 函数名: acos 功 能: 反余弦函数 自变量范围:在 -1~1 之间 因变量范围:返回的是一个数值的反余弦弧度值,其 ...

  9. c++基本输入输出 输出不同精度的PI(程序给出的PI值为 3.14159265358979323846)。

    #include <iostream> // 包含流操作算子库 #include <iomanip> using namespace std; // 定义常量PI,后面可以直接 ...

最新文章

  1. python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...
  2. 囊括三大视觉顶会,行人重识别新基准方法AGW!已被TPAMI录用
  3. 如何为linux释放内存和缓存
  4. Android笔记三十三.BroadcastReceiver使用
  5. C++ 名字重载、隐藏、覆盖
  6. 1/1!-1/3!+1/5!-……
  7. js 定时网页点击_反爬 JS 逆向,扣代码解密分析
  8. 【渝粤题库】陕西师范大学200821 课程与教学论(计算机)
  9. IO模型(epoll)--详解-02
  10. Android8有深度休眠吗,IMX8MQ android休眠功耗过大
  11. Mvc5 EF6 CodeFirst Mysql (一) 新建一个Mvc项目并使用EF连接到Mysql数据库
  12. usbcan、can分析仪、can卡的产品特点和功能特点
  13. TKinter美化库——tkkbootstrap
  14. 刘宇凡:人人都是自媒体
  15. 微信小程序--个人主页的制作
  16. yigo基础学习笔记4_业务流程
  17. fatal: detected dubious ownership in repository at ‘/home/
  18. Unity--AnimationCurve动画曲线
  19. google相机android10,三星S10+/S10/S10e谷歌相机移植版下载:支持夜视,体验强大算法...
  20. 设置tabBarItem图片渲染

热门文章

  1. pp模块常用表 sap_SAP PP模块常用T-CODE
  2. 香港监管机构收紧加密货币相关法规
  3. DNS漏洞影响数百万物联网设备安全,ZDNS打造Safeguard安全威胁管控系统,精准防御实现网络安全防线前移
  4. C语言入门题目2——对于给定字符,输出该字符的前驱字符和后继字符
  5. python发明家_Python版多图表范例
  6. Gson项目使用全解析
  7. R语言程序逻辑验证判断
  8. 9.3 开发经验和屁股的关系——《逆袭大学》连载
  9. Nature重磅!在机器人骨架上首次生成人类肌腱细胞
  10. JAVA实现zip压缩/解压缩