让 Apple T2 Audio 与 JACK 配合使用

让 Apple T2 Audio 与 JACK 配合使用

有问题的机器是 Macbook Pro 16,2(16 英寸,2019 年)。我正尝试在其上启动 JACK 服务器,以便我可以在 Ardour 中使用 MIDI 并同时播放音频。

到目前为止我已经尝试过的东西:

在 Ubuntu 和 Ubuntu Studio(22.04 LTS)中,t2-ubantu-内核(我认为它提供了 Apple T2 音频设备或驱动程序):

  • JACK以开始qjackctl,以Apple T2 Audio音频接口,各种参数设置:失败并出现错误“ALSA: 无法打开 PCM 设备 alsa_pcm”
  • JACK以 开始qjackctl,以音频接口为开始HDA ATI HDMI,各种参数设置:失败(不知道为什么,我稍后会检查输出并编辑问题)
  • Ardouralsa音频系统、Apple T2 Audio设备启动:因无法启动音频/midi 引擎而失败
  • ArdourJACK音频系统和HDA ATI HDMI设备、alsa_seqmidi 系统启动:成功,无声音,但可以在 midi 轨道中看到 midi 信号,在主控中看到声音信号
  • ArdourJACK音频系统和Apple T2 Audio设备、 midi 系统启动alsa_seq:失败,无法启动音频/midi 引擎
  • pulseaudio使用作为音频系统和作为设备启动 Ardour Apple T2 Audio,无法选择 midi 系统(仅显示无选项):成功,有声音,但没有 midi 连接

以下是一些观察结果

  • aplaypulseaudio正常工作,因此 alsa 知道如何使用 Apple T2 音频设备,而 pulseaudio 知道如何通过 alsa 使用 Apple T2 音频
  • fluidsynth从以下说明开始Debian 维基上的 PulseAudioMidi可以工作,在 midi 键盘上播放,并且声音没有可识别的延迟。
  • 在我切换到 t2-kernel 之前,JACK 和 midi 键盘在 Ubuntu Studio 上工作正常(从 Ardour 开始;只是没有声音)。我认为唯一可用的设备是虚拟设备。

我想问一下有人让 Apple T2 Audio 与 JACK 配合使用吗或者是否有一些常见的解决方法可以在 T2 Mac 上的 Ubuntu(或其他发行版)上进行音频制作。如果有人能指出我的问题可能是什么以及如何解决它们,那就最好了。

ps:仔细想想,如果 alsa 可以工作,并且 JACK 可以在 alsa 之上工作,那么它就应该可以工作,或者对 JACK 使用 alsa 的方式进行某种配置,以复制 alsa 的正常行为,就像 aplay 或 pulseaudio 所做的那样,但我在网上找不到任何关于此的信息。

答案1

我让它与 pipewire 一起工作,下面是我所做的:

1.重新安装系统

创建一个干净且易于重现的环境。

  1. 安装 Ubuntu Studio
  2. 根据以下说明进行手动内核更新t2linux
  3. 创建 /etc/grub.d/08_t2support,将 /boot/grub/grub.cfg 中的第一个菜单项复制到其中,将 vmlinuz 和 initrd 改为刚刚下载的,可以在 下找到/boot,然后sudo update-grub

/etc/grub.d/08_t2support看起来像这样。它的功能是在所有加载刚下载的内核的菜单项前面添加一个菜单项。

    echo "menuentry 'Ubuntu (t2 support)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-22dd21ec-2569-41c2-84e2-64aba99bada0' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5  22dd21ec-2569-41c2-84e2-64aba99bada0
    else
      search --no-floppy --fs-uuid --set=root 22dd21ec-2569-41c2-84e2-64aba99bada0
    fi
    linux   /boot/vmlinuz-6.3.9-t2-jammy root=UUID=22dd21ec-2569-41c2-84e2-64aba99bada0 ro  threadirqs quiet splash $vt_handoff
    initrd  /boot/initrd.img-6.3.9-t2-jammy
}"

2.安装/启用 pipewire

我跟着本教程

3. 用管线代替千斤顶

简洁版本:

查看pw-jack 的 ubuntu 手册页面找到其中的软件包pw-jack,安装它,并在每个要使用的 jack-aware 程序前面加上前缀(只是为了安全)

长版本:

这是棘手的部分,我读过各种帖子,看过 YouTube 视频,了解 pipewire 和 ardour 如何协同工作,但大多数都没有说明,或者说它们“开箱即用”,而我的情况却并非如此。幸运的是,我pw-jack发现这个unfa视频它似乎可以完成工作。它不在标准 pipewire 包中,管线千斤顶无关紧要。我在谷歌上搜索了“pw-jack”,找到了pw-jack 的 ubuntu 手册页面,其中写道它在 pipewire-audio-client-libraries 包中提供。我安装了它,然后pw-jack qjackctl显示 jack 处于活动状态,pw-jack ardour将其添加到正在运行的 jack 连接,所有内容都出现在 qjackctl 的图表中,一切正常。

相关内容