Bug 92754

Summary: Stereo Profile is missing FAST TRACK ULTRA USB Audio card
Product: PulseAudio Reporter: Stéphane <mathojojo>
Component: alsaAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: major    
Priority: medium CC: lennart
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: alsa-info.sh output

Description Stéphane 2015-10-31 12:59:27 UTC
I'm working on kubuntu 15.10.

In phonon, when I select my card (M-Audio RunTime DFU), I can only select 7.1 profiles. The stereo profile does not appear anymore.

This is a problem, because I miss bass on my sounds (they are probably routed to the Bass way).
Comment 1 Stéphane 2015-11-12 11:39:27 UTC
The power supply of my FastTrack Ultra died 2 years ago, so I used to power my device with USB Only. It did no difference for my use on Ubuntu (14.04, 14.10 an 15.04), but I knew that on MS Windows, some functionality would not be available.

But since I installed Ubuntu 15.10, as I said, sound was bad, and bass were missing.

But today I found a working 5V power supply, and tested my card again... and it worked perfectly (perfect sound again).

So my conclusion : Something changed in the alsa drivers or kernel between ubuntu 15.04 and ubuntu 15.10.

              ____________________________________________________
             | Powered by USB Only  | Additional 5V Power Supply  | _____________|______________________|_____________________________|
Ubuntu 15.04 |        Working       |          Working            |
_____________|______________________|_____________________________|
Ubuntu 15.10 | Poor Sound/Miss Bass |          Working            |
_____________|______________________|_____________________________|


So finally, no bug in pulseaudio or Alsa... just an evolution.
Comment 2 Stéphane 2016-03-16 21:55:13 UTC
Hello,
Yes I have good sound, but finally, pulseaudio don't propose every profiles available (The most important : stereo). It's a problem when I watching a multichannel sound movie (I only hear ambiance of movie, but not speacking).

pacmd > list-cards  give me :

    index: 3
        name: <alsa_card.usb-M-Audio_Fast_Track_Ultra-00>
        driver: <module-alsa-card.c>
        owner module: 28
        properties:
                alsa.card = "2"
                alsa.card_name = "Fast Track Ultra"
                alsa.long_card_name = "M-Audio Fast Track Ultra at usb-0000:00:12.2-5, high speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:12.2-usb-0:5:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:12.2/usb3/3-5/3-5:1.0/sound/card2"
                udev.id = "usb-M-Audio_Fast_Track_Ultra-00"
                device.bus = "usb"
                device.vendor.id = "0763"
                device.vendor.name = "Midiman"
                device.product.id = "2080"
                device.product.name = "M-Audio RunTime DFU"
                device.serial = "M-Audio_Fast_Track_Ultra"
                device.string = "2"
                device.description = "M-Audio RunTime DFU"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        profiles:
                input:multichannel: Multicanal Entrée (priority 1, available: unknown)
                output:analog-surround-71: Analog Surround 7.1 Sortie (priority 700, available: unknown)
                output:analog-surround-71+input:multichannel: Analog Surround 7.1 Sortie + Multicanal Entrée (priority 701, available: unknown)
                off: Éteint (priority 0, available: unknown)
        active profile: <output:analog-surround-71+input:multichannel>
        sinks:
                alsa_output.usb-M-Audio_Fast_Track_Ultra-00.analog-surround-71/#2: M-Audio RunTime DFU Analog Surround 7.1
        sources:
                alsa_output.usb-M-Audio_Fast_Track_Ultra-00.analog-surround-71.monitor/#3: Monitor of M-Audio RunTime DFU Analog Surround 7.1
        ports:
                analog-output: Sortie analogique (priority 9900, latency offset 0 usec, available: unknown)
                        properties:




But aplay -L  give me :

sysdefault:CARD=Ultra
    Fast Track Ultra, USB Audio
    Default Audio Device
front:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    Front speakers
surround21:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers


As you can see, there is a "Front speacker" Profile, but it's not proposed by Pulseaudio.

For me, it's a bug.

Thank you for your help.
Comment 3 Raymond 2016-03-16 23:51:18 UTC
This is bug of aplay -L since alsa lib/driver does not provide supported  channel info without open pcm device.
Comment 4 Raymond 2016-03-16 23:55:00 UTC
Post output of

aplay -D hw:CARD=Ultra --dump-hw-params anystereo.wav
Comment 6 Stéphane 2016-03-18 15:07:39 UTC
@Raymond

I don't understand what I'm doing, but as asked, I tried :

aplay -D hw:CARD=Ultra --dump-hw-params anystereo.wav

And the result is :

mathojojo@mathojojo-pc:/ddext/Studio$ aplay -D hw:CARD=Ultra --dump-hw-params SL.wav       
Lecture WAVE 'SL.wav' : Signed 16 bit Little Endian, Fréquence 44100 Hz, Stéréo
HW Params of device "hw:CARD=Ultra":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S24_3LE
SUBFORMAT:  STD
SAMPLE_BITS: 24
FRAME_BITS: 192
CHANNELS: 8
RATE: [44100 96000]
PERIOD_TIME: [125 495352)
PERIOD_SIZE: [6 21845]
PERIOD_BYTES: [144 524280]
PERIODS: [2 1024]
BUFFER_TIME: [125 990703)
BUFFER_SIZE: [12 43690]
BUFFER_BYTES: [288 1048560]
TICK_TIME: ALL
--------------------
aplay: set_params:1233: Ce format d'échantillonage n'est pas disponible
Available formats:
- S24_3LE


Hope it can help to find the problem ?
Comment 7 Raymond 2016-03-18 15:28:54 UTC
This mean your usb does not support stereo


https://cgit.freedesktop.org/pulseaudio/pulseaudio/log/?qt=grep&q=lfe-filter


Do you mean lfe-filter not work as expected when you select 7.1? 

You have to post the pulseaudio verbose log when playing stereo with lfe filter enabled
Comment 8 Raymond 2016-03-19 01:59:29 UTC
Usb-audio.conf does not defined its own surround21

http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/USB-Audio.conf;hb=HEAD

The surround21 use surround51 but your card does not support 6 channels

http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/pcm/surround21.conf;hb=HEAD

This mean you have to define your card specific 2.1 in usb-audio.conf
Comment 9 Stéphane 2016-03-20 10:26:34 UTC
Thank you for trying to help me.

I don't understand what I should do. I would just like to have front speackers (2.0) not 2.1.

I remember that the stereo profile was available some years ago (maybe 2 or 3 years ago). It's probably a regression somewhere in USB Audio drivers (at last for my device).

If you (or someone esle) know how I can create the missing profile for my use, it would be nice.
Even more usefull, if someone could fix it in the drivers, or in pulseaudio (I'm still surprised that aplay -L give me a simple front output :

front:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    Front speakers
surround21:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Ultra,DEV=0
    Fast Track Ultra, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
)

I was able to select "front:CARD=Ultra,DEV=0" in the squeezelight settings. And that worked (But I had to suspend Pulseaudio first, as squeezelite directly speack with ALSA).

I may not understand everything (that's even almost sure :) ) But why can I select it for squeezelite alsa output, and it is not available and proposed by pulseaudio ??

Thank you all.

Stephane
Comment 10 Raymond 2016-03-20 15:36:44 UTC
type route slave.pcm { @func refer name { @func concat strings [ "cards." { @func card_driver card $CARD } ".pcm.surround51." $DEV ":CARD=" $CARD ] } }

Do pulseaudio give you back 2.1 profile if you change surround51 to surround71 in surround21.conf?
Comment 11 Stéphane 2016-03-20 17:18:29 UTC
Where should I put thous lines ? Or is it a command to type and launch in a Terminal ?

I tried the terminal:

mathojojo@mathojojo-pc:~$ route slave.pcm { @func refer name { @func concat strings [ "cards." { @funccard_driver card $CARD } ".pcm.surround51." $DEV ":CARD=" $CARD ] } }                                         
Syntaxe: route [-nNvee] [-FC] [<AF>]           Liste les tables de routage noyau                                                                                                                                    
       route [-v] [-FC] {add|del|flush} ...  Modifie la table de routage pour AF.                                                                                                                                   
                                                                                                                                                                                                                    
       route {-h|--help} [<AF>]              Utilisation détaillée pour l'AF spécifié.                                                                                                                              
       route {-V|--version}                  Affiche la version/auteur et termine.                                                                                                                                  
                                                                                                                                                                                                                    
        -v, --verbose            mode verbeux                                                                                                                                                                       
        -n, --numeric ne résoud pas les noms                                                                                                                                                                        
        -e, --extend affiche d'autres/plus d'informations                                                                                                                                                           
        -F, --fib                affiche la base d'information des redirection (Forwarding Information Base)  (défaut)                                                                                              
        -C, --cache              affiche le cache de routage au lieu de FIB                                                                                                                                         
                                                                                                                                                                                                                    
  <AF>=Utilisez '-A <af>' ou '--<af>'; défaut: inet                                                                                                                                                                 
  Liste les familles d'adresses possibles (supportant le routage):                                                                                                                                                  
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)                                                                                                                                                            
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)                                                                                                                                                      
    x25 (CCITT X.25)   


I'm not sure if that was what I was supposed to do :)
Comment 12 Stéphane 2016-03-20 18:02:57 UTC
OMG, I just understood :) (It should be possible to delete a post, particularly stupid one !)

So I did the change, and yes ! Now Pulseaudio give me the choice between 2.1 or 7.1.

As I don't need LFE, I would have prefer the front speacker only option (stereo).
Is there something I can do for it as well ?

And, is it a pulseaudio bug, or alsa (in libasound2-data) ? Maybe it should be reported.
Comment 13 Raymond 2016-03-21 02:55:21 UTC
http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/USB-Audio.conf;hb=HEAD#l70

# If a device requires non-standard definitions for front, surround40, 
# surround51, surround71 or iec958, they can be defined here.

This mean you have to define card specifc front, surround21 device for your M-Audio
Comment 14 Raymond 2016-03-21 18:06:35 UTC
The ditry hack is remove LFE from surround21.conf

         ttable.0.FL 1
         ttable.1.FR 1
         ttable.2.LFE 1


and remove lfe from channel map of pulseaudio analog surround 21 mapping in default.conf


[Mapping analog-surround-21] 
device-strings = surround21:%f 
channel-map = front-left,front-right,lfe 
paths-output = analog-output analog-output-lineout analog-output-speaker
priority = 8 
direction = output

https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/profile-sets/default.conf
Comment 15 Stéphane 2016-03-21 18:21:38 UTC
Ok, thank you.

I may stay with the default 2.1 profile if it does not affect the front speakers signal.

What does 2.1 mean exactly ? :

 1) It divides the signal and sends separately the low frequencies to the Sub-woofer (LFE) and the medium+trebble to the front speakers ??

 2) Or maybe it sends the Low frequencies to the LFE, but send the full signal range to the Front speakers ?

 3) Or finally, it sends Full signal on both Front Speakers and LFE ?

In the first case, I will miss the bass if I just have front speakers while using 2.1 profile.

Both other cases should work without any modification.
Comment 17 Raymond 2016-03-22 02:51:24 UTC
Do your m-audio fastrack ultra have playback channel map with lfe?  

Post output of alsa-info.sh

http://git.alsa-project.org/?p=alsa-lib.git;a=blob_plain;f=test/chmap.c;hb=HEAD
Comment 18 Stéphane 2016-03-22 06:20:15 UTC
Created attachment 122473 [details]
alsa-info.sh output

This is the alsa-info.sh output. (I killed pulseaudio before, maybe it was a bad idea.
Comment 19 Stéphane 2016-03-22 06:25:56 UTC
Just after relaunching pulseaudio, I got this message (automatically) :

GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
E: [alsa-sink-USB Audio] lfe-filter.c: Hole in stream, cannot fast forward LFE filter
E: [alsa-sink-USB Audio] alsa-sink.c: ALSA nous a réveillé pour écrire de nouvelles données à partir du périphérique, mais il n'y avait en fait rien à écrire !
E: [alsa-sink-USB Audio] alsa-sink.c: Il s'agit très probablement d'un bogue dans le pilote ALSA « snd_usb_audio ». Veuillez rapporter ce problème aux développeurs d'ALSA.
E: [alsa-sink-USB Audio] alsa-sink.c: Nous avons été réveillés avec POLLOUT actif, cependant un snd_pcm_avail() ultérieur a retourné 0 ou une autre valeur < min_avail.


Note that this output speaks about a hole in stream, cannot fast forward LFE; and an eventual bug in snd_usb_audio.
Comment 20 Raymond 2016-03-22 07:21:50 UTC
as your m-audio fasttrack ultra does not have any playback channel map


it is a bug of pulseaudio to allow 2.1 profile when there is no LFE/ channel map

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/log/sound/usb?qt=grep&q=channel+map
Comment 21 GitLab Migration User 2018-07-30 10:34:28 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/511.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.