Linux 和 Focusrite / Novation 产品

Linux 和 Focusrite / Novation 产品

这是我在这里的第一个问题,我不太确定这个问题应该包含哪些数据。如果您需要我提供更多信息,请询问我。

我最近买了 Focusrite Scarlett 18i8 音频接口。到目前为止,它在我的 DAW 中运行得非常好(使用 ALSA 和手动通道分配),但还有一件烦人的事情:Pulseaudio 将该设备识别为 7.1 输出,但 18i8 有 4 个立体声输出!因此 VLC(和其他应用程序)以 7.1 模式播放电影,而不是应有的立体声。

我在 Google 上搜索了一下,看到了一些关于 Pulseaudio 卡配置文件以及 pactl 和 pacmd 命令的信息。因此我尝试了:

pactl set-card-profile 3 output:analog-stereo

但它返回(由我翻译):

Failure: no such entity

了解一下

pacmd list-cards 

说明原因:

4 card(s) available.

...

index: 3
name: <alsa_card.usb-Focusrite_Scarlett_18i8_USB_1000657A-00-USB>
driver: <module-alsa-card.c>
owner module: 8
properties:
    alsa.card = "3"
    alsa.card_name = "Scarlett 18i8 USB"
    alsa.long_card_name = "Focusrite Scarlett 18i8 USB at usb-0000:00:1d.0-1.2, high speed"
    alsa.driver_name = "snd_usb_audio"
    device.bus_path = "pci-0000:00:1d.0-usb-0:1.2:1.0"
    sysfs.path = "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/sound/card3"
    udev.id = "usb-Focusrite_Scarlett_18i8_USB_1000657A-00-USB"
    device.bus = "usb"
    device.vendor.id = "1235"
    device.vendor.name = "Novation EMS"
    device.product.id = "8014"
    device.product.name = "Scarlett 18i8 USB"
    device.serial = "Focusrite_Scarlett_18i8_USB_1000657A"
    device.string = "3"
    device.description = "Scarlett 18i8 USB"
    module-udev-detect.discovered = "1"
    device.icon_name = "audio-card-usb"
profiles:
    output:analog-surround-71: Analog Surround 7.1 Ausgang (priority 700, available: unknown)
    off: Aus (priority 0, available: unknown)
active profile: <output:analog-surround-71>
sinks:
    alsa_output.usb-Focusrite_Scarlett_18i8_USB_1000657A-00-USB.analog-surround-71/#2: Scarlett 18i8 USB Analog Surround 7.1
sources:
    alsa_output.usb-Focusrite_Scarlett_18i8_USB_1000657A-00-USB.analog-surround-71.monitor/#4: Monitor of Scarlett 18i8 USB Analog Surround 7.1
ports:
    analog-output: Analoge Ausgabe (priority 9900, latency offset 0 usec, available: unknown)
        properties:

该设备唯一可用的配置文件是 analog-surround-71,但 aplay 列出了各种模式:

user@userbuntu:~$ aplay -L

...

sysdefault:CARD=USB
    Scarlett 18i8 USB, USB Audio
    Default Audio Device
front:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    Front speakers
surround40:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    Direct sample mixing device
dsnoop:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    Direct sample snooping device
hw:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    Direct hardware device without any conversions
plughw:CARD=USB,DEV=0
    Scarlett 18i8 USB, USB Audio
    Hardware device with all software conversions

所以我的问题是:

是否可以手动添加 Pulseaudio 配置文件,还是需要在 ALSA 中进行更深入的更改?如果可以,有人能告诉我怎么做吗?

提前致谢!

答案1

是的,您可以创建一个 pulseaudio 配置文件以使 Focusrite 18i8 以立体声工作。

创建文件/lib/udev/rules.d/91-pulseaudio.rules

SUBSYSTEM!="sound", GOTO="pulseaudio1_end"
ACTION!="change", GOTO="pulseaudio1_end"
KERNEL!="card*", GOTO="pulseaudio1_end"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1235", ATTRS{idProduct}=="8014", ENV{PULSE_PROFILE_SET}="focusrite-18i8.conf"

LABEL="pulseaudio1_end"

并创建文件/usr/share/pulseaudio/alsa-mixer/profile-sets/focusrite-18i8.conf

[General]
auto-profiles = no

[Mapping analog-out]
description = Analog Outputs
device-strings = hw:%f
channel-map = left,right,aux0,aux1,aux2,aux3,aux4,aux5
direction = output

[Mapping analog-in]
description = Analog Inputs
device-strings = hw:%f
channel-map = left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,aux10,aux11,aux12,aux13,aux14,aux15
direction = input

[Profile output:analog-out+input:analog-in]
description = Analog Stereo
output-mappings = analog-out
input-mappings = analog-in

然后重新启动机器或运行命令:

sudo udevadm trigger -ssound

pulseaudio -k

回复 @Sneetsher:Focusrite Scarlett 18i8 现在似乎可以很好地与 Linux 3.19 及更高版本配合使用。可以使用 配置内部混音器,alsamixer并可以使用 保存设置sudo alsactl store。还可以使用 alsamixer 更改其他设置(例如乐器(Hi-Z)和线路电平之间的输入阻抗,或在 0 和 -10dB 之间切换输入的 pad)。

答案2

据我所知,Focusrite Scarlett 18i8 内部混音器尚不支持 Linux/ALSA。它只能用作直接音频输入/输出设备。

  • 制造商不支持Linux

    Linux 和 Focusrite / Novation 产品

    许多用户一直在寻求有关在 Linux 上使用 Saffire 6 USB 的帮助。在开始之前,我认为有必要澄清一下我们在 Linux 上的接口状态,然后我会发布一些信息,这些信息对那些想要攻克无法正常工作的设备的勇敢的驱动程序开发人员很有用。

    请注意,这是我凭空拼凑起来的,所以很可能不准确——我会尽力纠正和更新它。

    最后,请理解 Focusrite 并不正式支持 Linux。尽管有些人在评论中看到了积极的结果,并且我们的一些产品“已知可以工作”,但您的情况可能会有所不同。祝您好运!

    您可以在评论中阅读一些开发计划。当我检查两个 GitHub 存储库时,它们似乎是死项目。

    https://github.com/smilingthax/alsa-driver_scarlett
    https://github.com/trrichard/ScarlettMixer

    第一个未合并的拉取请求适用于 s18i8 混频器的 Linux 内核 v3.8.0 补丁。

  • 这是来自 ALSA 邮件列表的另一个帖子:[补丁] ALSA: usb-audio: 为 Focusrite Scarlett 18i8 添加怪癖

    重新测试后,我发现你是对的。混音器仍然无法工作,但至少可以用于播放/录音/midi。那么请忽略此补丁。

    谢谢,--chris j arges

相关内容