9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
发表于 2024-4-17 16:58 | 显示全部楼层
首先,感谢dahe老师的《打造基于FIR滤波器的数字分频器》贴,把FIR滤波和分频原理介绍的清清楚楚。按照该贴就可以完成完整的数字分频和房间校正。原帖地址:http://bbs.hifidiy.net/forum.php ... page=11#pid29127009
该帖提供了常用的Windows和Liunx系统下实现FIR滤波和分频,有坛友liunine提供了树莓派的版本,这里补充一个在macOS系统里使用FIR滤波器实现数字分频的方法,分别是商业软件方式和开源软件方式。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 16:59 | 显示全部楼层
macOS里CoreAudio核心很好,能跟Windows下ASIO的效果媲美,大部分音频编辑软件也是在CoreAudio上运行。在macOS系统里使用虚拟声卡环回,用FIR滤波器实现数字分频很流畅,播放没有任何顿挫,系统占用不到10%(后面会附上系统配置)。在macOS系统里使用FIR滤波器的数字分频操作比较简单,且播放器的选择较多。
另外再提一句,用一个振膜是不能理想的重放人耳听觉频率范围的,系统分频是必须的,传统的音箱里功率分频使用电容、电感、电阻必然带来相频特性和幅频特性的改变,均衡和补偿不能兼顾相频特性和幅频特性,在模拟信号域的模拟滤波器这个问题是无解的。再好的电容、电感也比不上一段1米的无氧铜导线的通透,数字分频可以使功放直通连接喇叭而且线性相位。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:00 | 显示全部楼层
实现方式步骤:1、产生使用FIR滤波器的文件(先不考虑房间校正和相位及幅度补偿)。2、macOS系统安装虚拟声卡和播放器。3、在macOS系统的卷积器里导入FIR滤波器文件,卷积器通常以插件形式出现,因此需安装音频处理机架。4、播放,播放器--虚拟声卡(数字环回)--处理机架(卷积器插件滤波、分频)--USB声卡(7.1声道)--功放(同相位架构)--直通喇叭。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:03 | 显示全部楼层
1、        产生使用FIR滤波器的文件:
这里仍然使用rePhase这个软件来做FIR滤波器的文件,《打造基于FIR滤波器的数字分频器》贴里有详细的步骤,rePhase这个软件是免费的FIR滤波器文件生成工具,没有macOS版本,只能在Windows里运行,下载地址https://rephase.org/,可以多生成几组分频点的文件备用,后面改分频点就是点点鼠标就完成了。这里介绍一个2分频分频点在3000Hz的192k32bit例子。使用线性相位的滤波器,点击Linear-Phase Filters,设置如下图的低通、和高通滤波器:衰减率96dB, 分频点3000Hz,单声道文件,文件格式为 .wav 音频格式。产生的文件可以保存在桌面,用FAT32格式化的U盘拷贝,下一步可直接用这个U盘粘贴到macOS系统里。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:06 | 显示全部楼层

低通

低通

线性相位

线性相位

高通

高通

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:07 | 显示全部楼层
2、        macOS系统安装虚拟声卡和播放器:
       macOS里有很多虚拟声卡可以用,这里选用开源的BlackHole,下载的地址https://github.com/ExistentialAudio/BlackHole,可以下载2ch的,当然8ch、16ch也可以用。下载后安装,可以在macOS的音频管理里看见BalckHole 2ch这个设备,设置为192K32bit就可,见下图。也可以直接用Homebrew安装,安装方式是:打开一个终端窗口,输入brew install blackhole-2ch。当然得先安装Homebrew。具体安装Homebrew可以自行bing。
      macOS里有很多音频播放器,都可以使用这种数字分频的方式,这里选用foobar2000 for MAC,下载地址:https://www.foobar2000.org/mac,这里下载foobar2000 for Mac, v2.7 preview 2024-04-12这个版本,可以直接在输出设备里选BlackHole 2ch,如果下载foobar2000 for Mac, v2.6.3,则需要在MAC音频设备管理里增加一个多输出设备,在增加的多输出设备里把BlackHole 2ch勾上。如下图。
安装完foobar2000后,需要把输出设备选为BlackHole 2ch,把DSP重采样加上,重采样设为192k。foobar2000的SACD插件还不支持MAC版本,不能播放SACD 的音频文件。JRiver支持在MAC系统里播放SACD。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:11 | 显示全部楼层
截屏2024-03-11 16.23.05.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:15 | 显示全部楼层
截屏2024-04-13 17.31.17.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:17 | 显示全部楼层
截屏2024-04-13 17.31.33.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:20 | 显示全部楼层
截屏2024-03-11 16.22.51.jpg 截屏2024-03-11 16.20.28.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:21 | 显示全部楼层
3、        在macOS系统的卷积器里导入FIR滤波器文件(商业软件方式)
商业软件需付费,但安装使用简单,所见即所得,可以随时调整。这里音频处理机架选用Element v0.46.6,开源了,下载地址:https://kushview.net/。下载后安装,运行时选择输入设备为BlackHole 2ch,输出设备选USB声卡,需提前在MAC音频管理器里将BlackHole 2ch和USB声卡设置为192K,这里使用的USB声卡是华硕的Xonar U7,macOS系统能自动识别大多数USB声卡,无需专门的声卡驱动,设置为4通道(对应2分频)。就是USB符号后面的Speaker。Element自带低通、高通滤波器插件,但效果一般,可以听个响。运行Element,增加低通、高通插件,双击插件,调整分频点,点住输入设备的端子拉到插件的相应端子就虚拟连线好了,再把插件的输出端子跟输出设备的相应端子连线好就可以播放了。如下图。部分黑果版本的内部声卡跟Element冲突,可以卸载内部声卡或者换一个macOS版本。白果就没有任何问题。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:24 | 显示全部楼层
截屏2024-03-09 16.40.25.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:26 | 显示全部楼层
为了导入前面生成的FIR滤波文件,这里选用了Hang Loose Convolver卷积插件,下载地址:https://accuratesound.ca/hang-loose-convolver-hlc/,完整版需129刀,试用14天版本Free。14天时间里完全可以仔细听出macOS 的CoreAudio在这种FIR滤波器的数字分频效果,值不值得留下这种方式。安装完Hang Loose Convolver后,在Element里增加HLConvolver插件(需按照发来的Key激活),如果不想编辑配置文件,只需增加两个HLConvolver插件,分别导入前面生成的低通、高通格式为 .wav 音频文件(2分频),点住相应的模块端子虚拟连线,就可以播放了,很简单。同理,增加插件,虚拟连线就成3、4分频了,还可以增加各种效果插件。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:27 | 显示全部楼层
截屏2024-03-09 21.22.09.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:29 | 显示全部楼层
进一步,只使用一个HLConvolver插件完成FIR滤波和分频,就需要编写一个配置文件。首先点开HLConvolver插件,输入输出设置为7.1声道。按照手册编写一个HLConvolver.cfg文本文件,文件名自定义,后缀是.cfg,把生成的wav文件和这个cfg文件放在同一个文件夹里,这里是一个2分频的例子:
192000 2 4 0
0 0
0 0 0 0
Low3000.wav
0
0.0
0.0
Low3000.wav
0
1.0
1.0
High3000.wav
0
0.0
2.0
High3000.wav
0
1.0
3.0
其实,跟《打造基于FIR滤波器的数字分频器》贴里的配置文件是一样的。
点HLConvolver插件的搜索文件,选择这个配置文件,虚拟连线端子,完成。其实也很简单。

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:33 | 显示全部楼层
截屏2024-03-11 16.21.22.jpg

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-17 17:34 | 显示全部楼层
本帖最后由 ianzou 于 2024-4-17 17:35 编辑

截屏2024-03-11 16.26.50.jpg 截屏2024-03-11 16.25.28.jpg 截屏2024-03-11 16.18.58.jpg
4、        播放:
  打开foobar2000,选择音乐文件,前面已经设置好重采样192K,设置输出设备为BlackHole 2ch,播放。

42

主题

6

好友

3080

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
879936
帖子
3037
精华
0
经验
3080 点
金钱
2981 ¥
注册时间
2020-6-25
发表于 2024-4-17 18:44 | 显示全部楼层
延时有多少?

17

主题

1

好友

1196

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
121097
帖子
1166
精华
0
经验
1196 点
金钱
1145 ¥
注册时间
2009-7-29
发表于 2024-4-18 09:32 | 显示全部楼层
ADAU1701, 1452都有数字分频功能,何必这么麻烦

9

主题

0

好友

135

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
52941
帖子
144
精华
0
经验
135 点
金钱
130 ¥
注册时间
2008-9-2
 楼主| 发表于 2024-4-18 11:49 | 显示全部楼层
本帖最后由 ianzou 于 2024-4-18 11:52 编辑

5、        在macOS系统的卷积器里导入FIR滤波器文件(开源软件方式)
在macOS系统的有很多开源的卷积器可以用,这里使用CamillaDSP,地址:https://henquist.github.io/0.5.1/,下载地址:https://github.com/HEnquist/camilladsp/releases,对应macOS版本有两个,选择相应的版本下载,解压到运行的目录下,这里为方便选择了用户文件夹。macOS默认的zsh,因此解压的camilladsp命令行不能直接运行,或者使用./camilladsp 运行,或者编辑.zshrc文件,增加export PATH=$运行文件夹路径,保持后执行命令source ~/.zshrc立即生效。然后,在终端窗口里输入camilladsp --help,出现版本号等信息,如下图。Camilladsp自带Capture和Playback,只需配置好文件就可以运行。下面是一个2分频的配置文件:
---
devices:
  samplerate: 192000
  chunksize: 8192
  capture:
    type: CoreAudio
    channels: 2
    device: "BlackHole 2ch"
    format: FLOAT32LE
  playback:
    type: CoreAudio
    channels: 4
    device: "Speaker"
    format: S24LE

filters:
  highpass:
    type: Conv
    parameters:
      type: Wav
      filename: High3000.wav
  lowpass:
    type: Conv
    parameters:
      type: Wav
      filename: Low3000.wav

mixers:
  to4:
    channels:
      in: 2
      out: 4
    mapping:
      - dest: 0
        sources:
          - channel: 0
            gain: 0
            inverted: false
      - dest: 1
        sources:
          - channel: 1
            gain: 0
            inverted: false
      - dest: 2
        sources:
          - channel: 0
            gain: 0
            inverted: false
      - dest: 3
        sources:
          - channel: 1
            gain: 0
            inverted: false

pipeline:
  - type: Mixer
    name: to4
  - type: Filter
    channel: 0
    names:
      - lowpass
  - type: Filter
    channel: 1
    names:
      - lowpass
  - type: Filter
    channel: 2
    names:
      - highpass
  - type: Filter
    channel: 3
    names:
      - highpass
注意这个文件一定要是UTF-8编码格式,最好在macOS系统里编辑,不然会出现一些格式错误。把前面生成的FIR滤波器文件和这个配置文件及amilladsp都拷贝到用户文件夹里,把终端窗口改变路径到这个文件夹,命令行运行,如下图。
截屏2024-04-18 11.25.19.jpg 截屏2024-04-18 11.28.35.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部