std::pi_挤压Pi:家庭音频历险记
std::pi
自从我收购了Logitech现在已经过时的Squeezebox Touch (我的家人仍在使用)以来,我就一直是Squeezebox的粉丝。
Squeezebox Touch提供了一个家庭友好的界面,可直接在设备上或通过一系列移动应用程序访问我们的音乐库。 罗技(Logitech)在2012年停止了开发,但我很高兴,因为他们开源了Squeezebox的服务器软件作为Logitech Media Server,并提供了在物理Squeezebox设备上使用的开源代码。
![](https://opensource.com/sites/default/files/squeezebox_touch_2.jpg)
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客户端进行测试。
![](https://opensource.com/sites/default/files/base_raspberry_pi_hardware_0.jpg)
基本Raspberry Pi硬件,Steve Ellis,CC BY-SA 4.0
基准硬件和软件
- Raspberry Pi 1 Model B(带保护套)
- 128MB SD卡
- 具有1A输出的USB充电器
- 3.5毫米立体声音频线
- 网线
- 老双笔记本电脑音箱
- piCorePlayer软件
![](https://opensource.com/sites/default/files/initial_poc_hardware_including_old_pc_speakers.jpg)
最初的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 。
![](/assets/blank.gif)
Fedora Media Writer,Steve Ellis,CC BY-SA 4.0
引导后,Pi通过DHCP找到了IP地址,我可以通过浏览器连接以完成配置。
在Squeezelite的设置下,我将音频输出设置为模拟音频,然后单击“保存”。 然后,我为播放器指定了一个名称,该名称由SqueezeCenter服务器软件检测到,然后再次单击“保存”。
![](https://opensource.com/sites/default/files/initial_picoreplayer_configuration_0.png)
PiCorePlayer的初始配置,Steve Ellis,CC BY-SA 4.0
使用我的Squeezer Android移动客户端,现在我可以在网络上看到两个Squeezebox客户端,旧的Squeezebox Touch和我的家庭办公室piCorePlayer,并且可以从库中选择并播放音频。 这是一个快速简便的测试,但是我确实遇到了一些音频问题。 有时候,如果我敲打或移动Pi的话,扬声器会发出嗡嗡声,而且音频质量也不尽人意。
![](https://opensource.com/sites/default/files/browser_based_playback_of_audio.png)
基于浏览器的音频播放,Steve Ellis,CC BY-SA 4.0
阶段2:USB音频适配器
因为在第二阶段我仍在尝试重用现有的硬件,所以我抓住了Logitech耳机随附的旧USB音频适配器,希望它可以提供比板载3.5mm插Kong更可靠的音频体验。
![](https://opensource.com/sites/default/files/logitech_usb_audio_adapter.jpg)
罗技USB音频适配器,史蒂夫·埃利斯(Steve Ellis),CC BY-SA 4.0
Pi自动检测到USB适配器。 通过浏览器,我只需要将音频输出更改为USB并将输出设置更改为front:CARD = Headset,DEV = 0 。 单击“保存”后,通过USB适配器,使用20岁的扬声器可获得更可靠的音频。
piCorePlayer站点上有各种USB设备的出色指南 。 我已对其进行更新,以包括Logitech适配器的USB ID。
阶段3:发烧级质量?
![](https://opensource.com/sites/default/files/audiophile_ready_squeezepi.png)
适用于发烧友的SqueezePi,Steve Ellis,CC BY-SA 4.0
我有一些备用的书架式扬声器,比笔记本电脑的扬声器要好得多,但是没有动力来驱动它们。 在这个阶段,我本可以使用支持HDMI的小型放大器,避免使用USB和3.5mm输出,但是我听说内置USB DAC的小型放大器,因此决定探索这条路。
在阅读了大量正面评论后,我从当地供应商处购买了Topping VX1放大器。 这是一款功能强大的华丽设备,适用于小型家庭办公环境。 USB DAC可被现代Linux内核自动检测到,并与piCorePlayer配合使用。
![](https://opensource.com/sites/default/files/topping_vx1_front.jpg)
摘下VX1前排,Steve Ellis,CC BY-SA 4.0
![](https://opensource.com/sites/default/files/connecting_the_topping_vx1_with_a_usb_cable.jpg)
用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:家庭音频历险记相关推荐
- 新电途与华为AITO达成充电合作;SGW和摩托罗拉完成家庭音频产品许可交易 | 美通企业日报...
美通社要闻摘要: 喜来登酒店及度假村继续在华东地区拓展.新电途与华为AITO达成充电合作."安进生物技术体验项目"中国站正式启动.博世灵活7系吸尘器全新上市.SGW和摩托罗拉完成家 ...
- 使用MetalLB在您的Raspberry Pi家庭实验室上安装Kubernetes负载均衡器
Kubernetes旨在与主要云提供商的负载平衡器集成,以提供公共IP地址并将流量定向到群集中. 一些专业的网络设备制造商还提供控制器,以将其物理负载平衡产品集成到专用数据中心的Kubernetes安 ...
- codesys raspberry pi_【Pi讯早餐】2020.11.02 星期一gt;gt;
派闻速览 A.昨日除了有部分用户收到kyc认证之外,市场并没有大一点的消息,这也很正常,毕竟项目方每天都在开发项目有很多事情要做,不可能天天出来放消息,我也感受到了一些用户对于pi消极的一面,因为不确 ...
- java 求pi_计算PI(π)的几种方法
计算π的方法 一.蒙特卡罗法这种方法是一种利用计算机随机数的功能基于"随机数"的算法,通过计算落在单位圆内的点与落在正方形内的 点的比值求PI. 由于图形的对称性,我们靠考虑该图的 ...
- Raspberry Pi家庭监控报警系统——软件篇
1.摄像头20块左右一个,淘宝有卖树莓派专用的插线摄像头,你也可以用usb摄像头.硬件搭好后,运行raspi-config开启摄像头模块.开启后可以通过命令测试下硬件是否正常工作:raspistill ...
- std::setprecision、std::ios::fixed使用说明
单独使用std::setprecision 如下: #include <iostream> #include <iomanip> #include <cmath> ...
- ffmpeg进行混音,将两路音频pcm数据合成一路输出
ffmpeg进行混音,将两路音频pcm数据合成一路输出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map&g ...
- C/C++中的pi(pai)怎么打 【c语言】
极速版: const double pi = acos(-1.0); 详细版: 函数名: acos 功 能: 反余弦函数 自变量范围:在 -1~1 之间 因变量范围:返回的是一个数值的反余弦弧度值,其 ...
- c++基本输入输出 输出不同精度的PI(程序给出的PI值为 3.14159265358979323846)。
#include <iostream> // 包含流操作算子库 #include <iomanip> using namespace std; // 定义常量PI,后面可以直接 ...
最新文章
- python读写文件绝对路径_[Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD...
- 囊括三大视觉顶会,行人重识别新基准方法AGW!已被TPAMI录用
- 如何为linux释放内存和缓存
- Android笔记三十三.BroadcastReceiver使用
- C++ 名字重载、隐藏、覆盖
- 1/1!-1/3!+1/5!-……
- js 定时网页点击_反爬 JS 逆向,扣代码解密分析
- 【渝粤题库】陕西师范大学200821 课程与教学论(计算机)
- IO模型(epoll)--详解-02
- Android8有深度休眠吗,IMX8MQ android休眠功耗过大
- Mvc5 EF6 CodeFirst Mysql (一) 新建一个Mvc项目并使用EF连接到Mysql数据库
- usbcan、can分析仪、can卡的产品特点和功能特点
- TKinter美化库——tkkbootstrap
- 刘宇凡:人人都是自媒体
- 微信小程序--个人主页的制作
- yigo基础学习笔记4_业务流程
- fatal: detected dubious ownership in repository at ‘/home/
- Unity--AnimationCurve动画曲线
- google相机android10,三星S10+/S10/S10e谷歌相机移植版下载:支持夜视,体验强大算法...
- 设置tabBarItem图片渲染