Small problems with Audio Devices (Digital USBDAC and Bluetooth)

Hello everyone, I've been reading around for a while now on how to resolve a couple audio issues, normally I use USB DAC spdif via SB Omni 5.1 card but that does not work, so I've been using my soundbar via bluetooth however I've only got it to show up in Audio Devices a couple times.

The Bluetooth Issue: (bt soundbar)
I do have the pulseaudio-bluetooth packages installed (using the -bt git version atm as it extends support), and last night I was able to get it working via using bluetoothctl and manually connecting to the soundbar, and by working I mean the device shows up as a audio output option.

Unfortunately that must have been a fluke because this morning I can't get any audio device to show up again even after multiple attempts at removing and adding the device. Sort of at a loss there.

PS. I frequently get (Failed to connect: org.bluez.Error.Failed), however not always.

The Digital SPDIF USBDAC issue: (SB OMNI 5.1)
For some reason the default pulseaudio configuration on ALL DISTRO'S does not work with this soundcard in digitial mode, and maybe all modes? because I can't test analog speakers atm (in deep storage).

I've tried several guides on fixing the digital for this card but to no avail, the only thing odd I notice is the headphones (digital A50) produce a weird pop/crackle but no actual sound, almost as if the spdif is sending out garbage signal?

Chances are this omni 5.1 spdif issue can't be fixed by general troubleshooting, it use to work a year or so ago via digital but no longer (yes its been that long since using digital stuff). Some tips on what information I can post here that may be useful would help, I don't want to start posting random console data that is useless.

Found the problem with bluetooth, and yes it does appear there is a bug introduced where it breaks on boot-up so doing a service restart resolves the issue ( systemctl restart bluetooth). Hope that's fixed sometime! I found that tip in another seemingly unrelated thread.

As for the OMNI 5.1 issue, I suspect a bug has been introduced there also at some point :frowning:

I have no confidence I will get the OMNI 5.1 USB DAC working again as it seems to be broken under Linux and nobody but me appears to have one or have this issue. (spent 2 days solid now trying countless solutions spdif out issues)

Back to Windows10 for me (I hate win10 but I need sound), maybe I get a new dac in distant future, who knows. USB soundcard support for Linux is just terrible IMO!

Fixed the OMNI problem, tho I haven't fully tested 5.1 remix or AC3 because I probably don't need those features for soundbar or headphones.

The issue was Alsa/Pulseaudio was going by the configuration file /usr/share/alsa/pcm/iec958.conf which stated sub-device number 0 but it's mean to be sub-device number 1. Editing that file directly so it pointed to dev 1 and not dev 0 resolved the no audio via SPDIF issue.

As for 5.1 and AC3 etc, I'll mess with those further down the line when I get my 5.1 analog system setup again (in storage).

This restart command systemctl restart bluetooth worked. Holy sh*t man. I've wasted so much time on this useless thing. Even restarting the system.

Linux has good support for class-compliant USB devices
but Creative hardware usually has more features and is not always supported on Linux
Creative have a long history of user complaints about bad software drivers on another OS that they should support

if the S/PDIF subdevice needed reconfiguration, suggest check in aplay -l for the subdevice numbers of the 5.1 analog playback channels as they may not follow usual pattern

and check card controls in alsamixer --card=1 or amixer --card=1
(adjust card number to match number in aplay -l)
Creative audio devices can have a more controls in ALSA than other hardware and some of them may be turned off by default

The issue is not a mute or control problem. Its a failure of pulse to detect correct sub device for digital modes, the SB OMNI has sub device 0, 1 and 2 but pulseaudio will only use SUB DEVICE 0 ON ALL OUTPUT OPTIONS!

which subdevice do you want to use instead of subdevice 0

i would expect pulseaudio to use the first subdevice as default, but there should be additional Profiles to use the other subdevices

please post full response to these commands:

pacmd list-cards

and

amixer --card=1

I currently have the audio setup on sub device 2 which should be AC. Its a little wonky and requires me to add and remove simultaneous output for some reason, sometimes.

Also ignore the output profiles. I tried to make my own and I can only get them listed but can't instruct them to use sub-device 1 or 2, they all default to sub 0 which is analog output (does not work over spdif).

I've gone through guides but for the life of my I can't figure out howto instruct the config to do what I won't other then manually forcing the default iec958 config file to select sub device 2 (or 1), but its not a 100% fix.

[theriddick@underverse ~]$ pacmd list-cards
3 card(s) available.
    index: 2
        name: <alsa_card.usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z-00>
        driver: <module-alsa-card.c>
        owner module: 8
        properties:
                alsa.card = "2"
                alsa.card_name = "SB Omni Surround 5.1"
                alsa.long_card_name = "Creative Technology Ltd SB Omni Surround 5.1 at usb-0000:0c:00.3-4, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:0c:00.3-usb-0:4:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb3/3-4/3-4:1.0/sound/card2"
                udev.id = "usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z-00"
                device.bus = "usb"
                device.vendor.id = "041e"
                device.vendor.name = "Creative Technology, Ltd"
                device.product.id = "322c"
                device.product.name = "SB Omni Surround 5.1"
                device.serial = "Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z"
                device.string = "2"
                device.description = "SB Omni Surround 5.1"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        profiles:
                output:analog-stereo-output+input:analog-stereo-input: Analog Stereo Output + Analog Stereo Input (priority 7, available: unknown)
                output:analog-surround-21+input:analog-stereo-input: Analog Surround 2.1 Output + Analog Stereo Input (priority 6, available: unknown)
                output:analog-surround-51+input:analog-stereo-input: Analog Surround 5.1 Output + Analog Stereo Input (priority 5, available: unknown)
                output:iec958-stereo+input:analog-stereo-input: Digital Stereo (IEC958) (priority 4, available: unknown)
                output:hdmi-stereo-extra1+input:analog-stereo-input: Digital Stereo Raw Passthrough (IEC958) (priority 3, available: unknown)
                output:hdmi-stereo-extra2+input:analog-stereo-input: Digital Stereo to Surround 5.1 Upmix (IEC958/AC3) (priority 2, available: unknown)
                output:iec958-ac3-surround-51+input:analog-stereo-input: Digital Surround 5.1 (IEC958/AC3) (priority 1, available: unknown)
                off: Off (priority 0, available: unknown)
        active profile: <output:iec958-ac3-surround-51+input:analog-stereo-input>
        sinks:
                alsa_output.usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z-00.iec958-stereo/#0: SB Omni Surround 5.1 Digital Stereo (IEC958)
        sources:
                alsa_output.usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z-00.iec958-stereo.monitor/#1: Monitor of SB Omni Surround 5.1 Digital Stereo (IEC958)
                alsa_input.usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_0000007z-00.analog-stereo-input/#2: SB Omni Surround 5.1 Analog Stereo
[theriddick@underverse ~]$ amixer --card=2
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 128
  Mono: Playback 88 [69%] [-20.00dB] [on]
Simple mixer control 'PCM Capture Source',0
  Capabilities: enum
  Items: 'Mic-In/Mic Array' 'Line In'
  Item0: 'Mic-In/Mic Array'
Simple mixer control 'Line In',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 48
  Front Left: Capture 24 [50%] [0.00dB] [on]
  Front Right: Capture 24 [50%] [0.00dB] [on]
Simple mixer control 'Mic-In/Mic Array',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 48
  Front Left: Capture 24 [50%] [0.00dB] [on]
  Front Right: Capture 24 [50%] [0.00dB] [on]
Simple mixer control 'Auto Gain Control',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]

For example here is my OMNI config file from /usr/share/pulseaudio/alsa-mixer/profile-sets/sb-omni-surround-5.1.conf but you will notice it can't select sub device 1 or 2, its not a option for this configuration file.

Its meant to point to surround51.conf etc which I have placed in /usr/share/alsa/alsa.conf.d/ folder but that doesn't seem to work.

Basically I don't know whats going on, seems all broken if it can't detect sub devices correction. I followed this guide a couple times.
(link to guide, finding)

# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

; Creative Sound Blaster Omni Surround 5.1
;
; This config supports Linux 4.3-rc1+.
; By default there are some non-existing (physically) inputs and outputs that
; are not present in this config.
; Also in addition to natively supported modes (such as stereo, 5.1 and stereo
; S/PDIF) following useful output modes are added: 2.1, 4.0, 4.1 and 5.0.
;
; NOTE: in 2.1 and 4.1 physical LFE output will be different than in 5.1 mode.
;
; See default.conf for an explanation on the directives used here.

[General]
auto-profiles = no

[Mapping analog-stereo-input]
device-strings = hw:%f
channel-map = left,right
paths-input = analog-input-mic analog-input-linein
direction = input

[Mapping analog-stereo-output]
device-strings = front:%f
channel-map = left,right
paths-output = analog-output
direction = output

[Mapping analog-surround-21]
device-strings = surround51:%f
channel-map = front-left,front-right,aux1,aux2,aux3,lfe
paths-output = analog-output
direction = output

[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = analog-output
direction = output

[Mapping iec958-stereo]
device-strings = iec958:%f
channel-map = left,right
paths-output = iec958-stereo-output
direction = output

[Mapping hdmi-stereo-extra1]
device-strings = iec958raw:%f
channel-map = left,right
paths-output = iec958-stereo-output
direction = output

[Mapping hdmi-stereo-extra2]
device-strings = a52upmix:%f
paths-output = iec958-stereo-output
channel-map = left,right
direction = output

[Mapping iec958-ac3-surround-51]
device-strings = a52:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = iec958-stereo-output
direction = output

[Profile output:analog-stereo-output+input:analog-stereo-input]
output-mappings = analog-stereo-output
input-mappings = analog-stereo-input
skip-probe = yes
priority = 7

[Profile output:analog-surround-21+input:analog-stereo-input]
output-mappings = analog-surround-21
input-mappings = analog-stereo-input
skip-probe = yes
priority = 6

[Profile output:analog-surround-51+input:analog-stereo-input]
output-mappings = analog-surround-51
input-mappings = analog-stereo-input
skip-probe = yes
priority = 5

[Profile output:iec958-stereo+input:analog-stereo-input]
description = Digital Stereo (IEC958)
output-mappings = iec958-stereo
input-mappings = analog-stereo-input
skip-probe = yes
priority = 4

[Profile output:hdmi-stereo-extra1+input:analog-stereo-input]
description = Digital Stereo Raw Passthrough (IEC958)
output-mappings = iec958-stereo
input-mappings = analog-stereo-input
skip-probe = yes
priority = 3

[Profile output:hdmi-stereo-extra2+input:analog-stereo-input]
description = Digital Stereo to Surround 5.1 Upmix (IEC958/AC3)
output-mappings = iec958-stereo
input-mappings = analog-stereo-input
skip-probe = yes
priority = 2

[Profile output:iec958-ac3-surround-51+input:analog-stereo-input]
description = Digital Surround 5.1 (IEC958/AC3)
output-mappings = iec958-stereo
input-mappings = analog-stereo-input
skip-probe = yes
priority = 1

The guide I've tried to follow but it does not work. It also doesn't make much sense.

https://www.linuxquestions.org/questions/linux-hardware-18/alsa-sb-omni-surround-5-1-iec958-is-routed-to-the-analog-output-not-the-digital-output-4175609669/

Basically you turn off the default iec958 support/configuration and its meant to detect the new conf files you make, but it doesn't see anything.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by