Ticket #618 (closed enhancement: wontfix)

Opened 3 years ago

Last modified 3 years ago

Separate Input and Output profile selection

Reported by: howl Owned by: lennart
Milestone: Component: module-alsa-*
Keywords: Cc: howl.nsp@…

Description

In 0.9.15 is the new on the fly profile selection system. There is a drop down menu for both input and output, in some cards this may lead to many options due the combination of both.

Could be better to separate them in two drop down menus, one for input and other one for output.

Attachments

pulseaudio 0.9.15 recortado.jpg (202.6 kB) - added by howl 3 years ago.
Capture showing the profiles to select in pavumenter

Change History

Changed 3 years ago by howl

Capture showing the profiles to select in pavumenter

Changed 3 years ago by coling

  • component changed from pavumeter to module-alsa-*

I'm not sure how this would work to be honest. One of the motivations behind profile support is to deal with cards where input and output is not mutually exclusive.

For example on many cards, if you enable 5.1 output you cannot get any input (the chip literally switches over to word differently).

So I don't think you can represent this properly via two drop downs without a lot of hassles and UI issues.

Changed 3 years ago by howl

  • cc howl.nsp@… added

I don't know about how is programmed pulseaudio or alsa, if this could be very difficult to implement don't worry about it. The suggestion is only to make much cleaner the profile selection but if doing this takes problems I suppose is better left as is now.

Changed 3 years ago by lennart

  • status changed from new to closed
  • resolution set to wontfix

Colin is right: the whole point of prfile selection is that selecting something for input has effects on what you can select for output. To make things more transparent I thus made this into a single list so that it is obvious which combinations are available.

As Colin pointed out a lot of hw reuses jacks or even ADC/DACs for input and output, limiting how you can combine input and output. Also on Bluetooth HSP (i.e. low-quality phone audio) is full duplex while A2DP (.i.e. high-quality audio) is simplex only. Switching between the too is also implemented via profiles.

So the whole point of prfiles is to make clear that not all combinations are possible on a big part of the cards.

Changed 3 years ago by howl

Then could be an issue detecting the possible combinations, in the screen shot I attached is possible to select "Output Digital Stereo (IEC958) + Input Digital Stereo (IEC958)", when both reference the same optical connector, and is impossible to use for input and output at the same time.

Perhaps could be possible to add to the configuration tab, above the profile selection, config for the outputs. For example I had a SB Audigy and another SB Live that could use the front jack as digital output but only when selecting the switch in gnome-mixer in the alsa device options. The last gnome doesn't have mixer for alsa devices, it relies only in pulseaudio so is needed to use alsa-mixer from console and there is no way to setup using the graphical volume tools.

Adding configuration options like this in PulseAudio could be possible to detect the real available outputs and inputs and filter them? At least solves the problem to configure connectors i/o in some cards.

The optical input output at the same time problem is with the sound card included in m3n78-em mother board, NVidia HDA, ALC1200 using hda-intel alsa module.

Changed 3 years ago by coling

Well we automatically probe for all the possible combinations and only present the user with the ones that work together.

Obviously this probing cannot know how a chipset is physically wired up but if the system lets us open both both input and output in the way we've requested then it'll be presented as an option to the user.

For example on my laptop I'm offered IEX958 options but there are no physical ports on my machine to plug into this! It seems to work fine, but it's the equiv of piping to /dev/null.

There is quite literally no way for us to detect this and IMO providing an editor interface is not going to help.

While I'm no expert I would have thought that an optical connector would have had no problem with full duplex but hey ho.

If a user has to configure things before auto-detection work, then there really is no point in having auto-detection at all! Either make it work automatically or give configuration options - you can't really do both without creating numerous support problems.

In the latest versions (git master) of pulseaudio and pavucontrol there are also output "ports" that define which port a given input/output is wired up to which may go some way to solving the problem you refer to: http://colin.guthr.ie/2009/06/configuring-audio-ports-in-pulseaudio/

Changed 3 years ago by howl

Autoconfiguration is needed to make things easier but manual config is sometimes needed, for example there is no way to automatically know if a user is using digital device or analog speakers connected in the front jack of some sbs. In this case is needed to let the user the option to set what is using. Certainly in some distros set on the digital output alsa switch and other ones set it to off but is impossible to set it to a value that works for all.

Perhaps the only way to do this is having a audio devices db, where for example if a sb with digital/analog switch enables and disables possible audio outputs. I repeat that I don't know how is programmed ALSA API or PulseAudio.

Changed 3 years ago by lennart

It would be relatively easy to add a few keys to the udev db which encode whether spdif is physically available on certain machines even though it is supported by the sound chip. PA could then read those keys and hide the profile entries.

However I have my doubts that we'd have any chance of keeping that database even remotely up-to-date. It's hard enough maintaining a database which includes fixes that make specific hw work. But even harder it is to maintain a database which hides certain options on other hardware.

Note: See TracTickets for help on using tickets.