找回密码
 -注册-
查看: 2842|回复: 25
打印 上一主题 下一主题

惊声尖叫太好听:Album Player的ScreamAlsa虚拟声卡

[复制链接]
跳转到指定楼层
1
发表于 2026-4-20 11:04 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式 | 来自北京 来自 北京
Album Player的ScreamAlsa虚拟声卡类似于Diretta的AlsaHost安装于Linux核机系统上,Scream Receiver尖叫桥就相当于Diretta的Target。 免费的asio或alsa Scream完全可以平替收费的diretta(二者都是小数据包均匀传输),实现万物皆可串流,包括HQPe/Hi-Player等嵌入版无头系统都可以推送到尖叫桥

AP官网提供了集成ScreamAlsa的系统固件可刷机树莓派或x86,自己在ubuntu手动安装也不难,就是4个.sh文件用sudo chmod +x赋权后按顺序执行(桥机ip地址填入scream.conf文件,另外需要安装gcc库: sudo apt-get install -y build-essential)



26
 楼主| 发表于 2026-6-22 10:04 | 只看该作者 | 来自北京 来自 北京
windows推送到linux网桥的体系化串流玩法
回复

使用道具 举报

25
 楼主| 发表于 2026-6-16 09:24 | 只看该作者 | 来自北京 来自 北京
现在刷AP官网下载的PiCoreAP(树莓派)或者YoctoAP(x86)固件已经集成了ScreamAlsa,不用安装,只需手动打开开关,就可以尝试uPnP通过ScreamAlsa推送到尖叫桥。 竞品为DRU(diretta renderer uPnP) uPnP2diretta
回复

使用道具 举报

24
 楼主| 发表于 2026-5-26 10:56 | 只看该作者 | 来自北京 来自 北京
Devastat0r 发表于 2026-5-25 04:42
这个ScreamALSA是linux下的虚拟声卡,windows下诸如Tidal、Qobuz之类的流媒体APP推流到receiver只能走asios ...

是,asio scream简单稳定好声
回复

使用道具 举报

23
发表于 2026-5-25 04:42 | 只看该作者 | 来自浙江 来自 浙江杭州
这个ScreamALSA是linux下的虚拟声卡,windows下诸如Tidal、Qobuz之类的流媒体APP推流到receiver只能走asioscream 4.0虚拟声卡?
回复

使用道具 举报

22
发表于 2026-5-15 16:24 | 只看该作者 | 来自上海 来自 上海
bloodyevil 发表于 2026-5-15 11:45
scream有自身的pacer,diretta也有自身的pacer,payload size也不同,这样会打架吧
真正好的推送方式是 ...

你说的对,所以我在scream2diretta里有一个 pcm buffer ring,scream接收到的decoded pcm会进入这个pcm ring,从而让两个过程解耦
回复

使用道具 举报

21
发表于 2026-5-15 16:21 | 只看该作者 | 来自上海 来自 上海
seeteeyou 发表于 2026-5-15 06:57
请大佬查看消息,谢谢。

另外这个 linuxptp 挺有趣,主要就是把核机跟桥机同步:

谈不上大佬,都是爱好者,我看看这个linuxptp哈
回复

使用道具 举报

20
发表于 2026-5-15 11:45 | 只看该作者 | 来自广东 来自 广东佛山
carrionlee 发表于 2026-5-14 18:13
1. 绕过alsa这个优化是指针对想要用diretta的用户来说的,毕竟传统diretta链路,需要apscream(或者开源s ...

scream有自身的pacer,diretta也有自身的pacer,payload size也不同,这样会打架吧
真正好的推送方式是,保存原始完整无头的PCM/DSD流到中继机的内存区,再用diretta推送,也就是中继机仅作为纯推流机用。
回复

使用道具 举报

19
 楼主| 发表于 2026-5-15 11:20 | 只看该作者 | 来自北京 来自 北京
seeteeyou 发表于 2026-5-15 06:57
请大佬查看消息,谢谢。

另外这个 linuxptp 挺有趣,主要就是把核机跟桥机同步:

                                                      |
|NTP 同步 = 专业录音室级别?** | ⚠️ **部分误导**。帖中 chrony 显示的 `RMS offset` 约 17-384 μs,这确实比普通 NTP 好,但专业录音室使用的 **PTP (IEEE 1588)** 或 **Word Clock** 同步精度在 **纳秒级(ns)**,相差 3-4 个数量级。chrony 的精度对音频网络传输够用,但绝非"专业录音室级别" |
| 时钟同步"的理解**         | ⚠️ **概念混淆**。chrony 同步的是**系统时间**(用于网络协议、文件时间戳等),而音频质量的核心是 **DAC 的本地时钟(Local Clock)精度** 和 **采样率时钟(MCLK)的抖动**。系统时间同步对 Diretta 等网络音频协议有帮助(减少缓冲波动),但不直接等于音频时钟同步     


| Stratum 9/11 的解读**    | 帖中显示 Stratum 9 和 11,这说明同步链很长(离原子钟源很远),**恰恰说明时钟源质量不高**。作者似乎将此作为"同步成功"展示,实际上 Stratum 值越低越好(Stratum 1 是直接连接原子钟/GPS 的服务器) |
| 全系統在 ram 上作業"的音质优势** | ⚠️ **被过度神话**。RAM 运行确实减少磁盘 I/O 噪声,但现代 SSD 的电气噪声对音频链路的影响在合理屏蔽下**远低于可闻阈值**。这属于"理论上可能,实际盲听难以区分"的范畴                        |

回复

使用道具 举报

18
发表于 2026-5-15 06:57 | 只看该作者 | 来自香港 来自 香港
carrionlee 发表于 2026-5-14 18:13
1. 绕过alsa这个优化是指针对想要用diretta的用户来说的,毕竟传统diretta链路,需要apscream(或者开源s ...

请大佬查看消息,谢谢。

另外这个 linuxptp 挺有趣,主要就是把核机跟桥机同步:

https://scottstuff.net/tags/ntp/

这位大佬就结合了 chronyc 与及 Diretta:

https://www.myav.com.tw/bbs/showthread.php?threadid=20500030

湾湾的服务器可能有点慢,因此需要多一点耐性才能够连上。

回复

使用道具 举报

17
发表于 2026-5-14 18:13 | 只看该作者 | 来自上海 来自 上海浦东新区
clark8888 发表于 2026-5-14 12:14
如果绕过alsa是个噱头,就可以不用diretta那么复杂, 直接HQPe通过ScreamAlsa推送到尖叫桥. ScreamAlsa目 ...

1. 绕过alsa这个优化是指针对想要用diretta的用户来说的,毕竟传统diretta链路,需要apscream(或者开源sream receiver)通过diretta alsa host中转一下,再给diretta target,并不是想优化scream
2. 如果认为diretta不必要,当然可以直接screamalsa 推送到 apscream,但是我觉得diretta和scream优化的方法还是不同的,都挺有必要,加在一起是强强联合
3. 由于我只能利用开源的unix scream receiver(因为apscream是闭源的),所以目前正在开发DSD支持功能,毕竟开源的scream receiver是不支持dsd的,只能pcm
回复

使用道具 举报

16
 楼主| 发表于 2026-5-14 12:14 | 只看该作者 | 来自北京 来自 北京
carrionlee 发表于 2026-5-12 17:24
目前测试跑通的链路有:
1. foobar2000 + PGGB_RT + asioscream -----> scream2diretta
2. Fiio M21 (App ...

如果绕过alsa是个噱头,就可以不用diretta那么复杂, 直接HQPe通过ScreamAlsa推送到尖叫桥. ScreamAlsa目前不支持1536khz/DSD1024
回复

使用道具 举报

15
发表于 2026-5-13 15:58 | 只看该作者 | 来自四川 来自 四川成都
carrionlee 发表于 2026-5-12 17:18
我这两天参考了 DirettaRendererUPnP 和 Slim2diretta两个项目,vibe coding了一个 scream2diretta
scream ...

可以大家一起测试,多份折腾多份快乐
回复

使用道具 举报

14
发表于 2026-5-12 17:24 | 只看该作者 | 来自上海 来自 上海浦东新区
目前测试跑通的链路有:
1. foobar2000 + PGGB_RT + asioscream -----> scream2diretta
2. Fiio M21 (Apple Music 播放)-----> Naa input (Dietpi usbc口) -----> Hqplayer upsampling -----> Naa output (screamalsa) -----> scream2diretta
回复

使用道具 举报

13
发表于 2026-5-12 17:18 | 只看该作者 | 来自上海 来自 上海浦东新区
我这两天参考了 DirettaRendererUPnP 和 Slim2diretta两个项目,vibe coding了一个 scream2diretta
scream receiver 接收到 screamalsa或者asio过来的音频后,直接利用 diretta sdk交给target,绕过了diretta alsa host层
目前测试听音中,楼主要是有兴趣等稳定后我分享下。
回复

使用道具 举报

12
 楼主| 发表于 2026-5-12 10:41 | 只看该作者 | 来自北京 来自 北京
zheng_nick 发表于 2026-4-22 09:16
出个详细教程吧,大佬

用豆包生成了安装教程,如果WinSCP没有Opt目录的权限,需要把https://albumplayer.ru/asioscream4.zip下载到的screamalsa-main解压后目录复制进/home目录下你设置的用户名目录,然后相应修改命令行目录名

# WinSCP 可视化安装 ScreamAlsa 完整攻略
本教程用 **WinSCP 图形化操作** 替代纯命令行,小白也能轻松把 ScreamAlsa 部署到 Linux 服务器,适配 Roon 等音频串流场景。

---

## 一、准备工作
1.  **Windows 电脑**:安装 [WinSCP](https://winscp.net/)(默认下一步即可)
2.  **Linux 服务器**:
    - 开启 SSH 服务(默认端口 22)
    - 知道服务器 IP、用户名(推荐 root)、密码
3.  **接收端**:已装 ASIO Scream 4(https://albumplayer.ru/asioscream4.zip)
4.  **文件**:本地已下载 `screamalsa-main.zip` 并解压

---

## 二、WinSCP 连接 Linux 服务器
1.  打开 WinSCP → 新建站点
2.  协议:**SFTP**
3.  主机名:你的 Linux 服务器 IP(如 192.168.2.100)
4.  端口号:**22**
5.  用户名/密码:服务器登录账号
6.  点击「登录」,首次连接点「是」接受主机密钥

---

## 三、可视化上传 ScreamAlsa 文件
1.  左侧:找到本地解压好的 `screamalsa-main` 文件夹
2.  右侧:进入 `/opt` 目录
3.  右键新建文件夹 → 命名 `screamalsa-main`
4.  把本地 `screamalsa-main` 内**所有文件/子文件夹**,拖拽到右侧 `/opt/screamalsa-main`
5.  传输完成后,右侧可看到完整文件列表

---

## 四、一键执行安装(WinSCP 内置终端)
1.  WinSCP 顶部菜单 → 打开「终端」(或 Ctrl+T)
2.  进入安装目录
   
    cd /opt/screamalsa-main
   
3.  给脚本加执行权限
   
    chmod +x *.sh
   
4.  安装依赖
   
    apt-get update && apt-get install -y build-essential linux-headers-$(uname -r)
   
5.  编译安装+加载驱动(一条龙)
   
    ./install_full.sh install
   
6.  查看驱动状态
   
    ./install_full.sh status
   
出现成功提示即安装完成。

---

## 五、配置串流目标 IP(图形化改配置)
目标:把音频发往接收端(例:192.168.2.200,端口 4011)
### 方式 A:可视化编辑配置(推荐)
1.  右侧进入 `/opt/screamalsa-main`
2.  右键 `scream.conf` → 编辑
3.  修改为你的接收端 IP:
    ```
    unicast_ip=192.168.2.200
    unicast_port=4011
    ```
4.  保存并关闭文件
5.  终端执行生效:
    ```bash
    sudo /opt/screamalsa-main/scream_config.sh
    ```

### 方式 B:直接改驱动配置
1.  右侧进入 `/etc/modprobe.d/`
2.  新建/编辑 `screamalsa.conf`
3.  写入:
    ```
    options snd_screamalsa unicast_ip=192.168.2.200 unicast_port=4011
    ```
4.  保存后重载驱动:
    ```bash
    sudo ./install_full.sh unload
    sudo ./install_full.sh load
    ```

---

## 六、常用命令(复制即用)
- 查看驱动状态:`./install_full.sh status`
- 卸载驱动:`./install_full.sh remove`
- 卸载驱动(不删除文件):`./install_full.sh unload`
- 加载驱动:`./install_full.sh load`

---

## 七、重要提醒
- 更新 Linux 内核后:先 `unload` 卸载,再重新 `install`,不可直接覆盖
- 接收端 IP 务必正确,端口默认 4011 一般不用改
- 全程用 WinSCP 图形化,极少命令即可完成部署

需要我把上面所有命令整理成**一键复制的完整脚本**,你直接粘贴到终端就能全自动安装吗?
回复

使用道具 举报

11
 楼主| 发表于 2026-4-24 06:42 | 只看该作者 | 来自北京 来自 北京
aiked999 发表于 2026-4-23 09:49
老师你好,从官网下载了X86固件,写入U盘(另外,请问能否写入硬盘?),不知为什么在声卡选择的界面中,并 ...

可以写入硬盘,官网下载的俄语手册PDF文件可以用千问翻译。

X86Yocto固件根目录的apconfig.txt文件:
USE_NETWORK=1
IP=192.168.1.77
#ROUTER_IP=192.168.1.1
DNS_SERVER=8.8.8.8
USE_SSH=1
USE_WIFI=0
WIFI_SSID=xxxxx
WIFI_PSK=xxxxx
NETWORK_TIMEOUT=10
USE_ALSACTL=0
USE_GUI=1
LOAD_MENU=1
LOAD_APLAYER=1
LOAD_RENDERER=1
LOAD_SPOTIFY=0
LOAD_AIRPLAY=0
LOAD_BRIDGE=0
LOAD_SCREAM=0

需要修改LOAD_SCREAM=1才能开机自动运行尖叫套件。 x86固件不支持DHCP,最好用路由器绑定ip地址后再在此修改ip(去掉#)

如果是树莓派的PicoreAP固件,把tweak里这2个开头的#号去掉就可以开机自动启动spotify connect和ScreamAlsa了

回复

使用道具 举报

10
发表于 2026-4-23 09:49 | 只看该作者 | 来自江西 来自 中国
老师你好,从官网下载了X86固件,写入U盘(另外,请问能否写入硬盘?),不知为什么在声卡选择的界面中,并没有你图示的选择桥机IP的选项,只有选择本机声卡的选项。是否下载错了,还是我的步骤操作错误?谢谢!
回复

使用道具 举报

9
发表于 2026-4-22 09:16 | 只看该作者 | 来自四川 来自 四川成都
出个详细教程吧,大佬
回复

使用道具 举报

8
 楼主| 发表于 2026-4-21 10:31 | 只看该作者 | 来自北京 来自 北京
edw 发表于 2026-4-21 06:23
声音对比DIRETTA怎么样?

开启AP mode=1就自带AP的中低频优势。另外diretta不支持MMAP模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | -注册-

本版积分规则

Archiver|手机版|粤icp备09046054号-9|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2026-6-24 21:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表