Comment 34 for bug 637947

Revision history for this message
Lee Jones (lag) wrote :

First of all I'd like to take this opportunity to thank all those who attended the Panda audio brainstorming session. I hope it proved productive for you all.

Attendees of the meeting are as follows; lag, mpoirier, diwic, berco, sebjan, lrg, rsrimushnam, persia and abduenas. I'm sure there were some spectators and side-liners there also.

I believe it's worth forking development down two routes; one for Maverick, consisting of best hacks and workarounds we can think of, and one for Natty, using the most up-to-date mechanisms for insuring an intuitive audio framework for the future.

Maverick discussion:
There are multiple issues currently preventing correct audio behavior within Maverick. Solving any single issue will not insure correct audio behavior. These issues will be discussed in turn.

The kernel audio driver does not export key information needed by scripts running in userspace. This prevents successful platform differentiation. Unless other similar boards use exactly the same configuration, a solution that works well on one platform may well not work on another. To solve this issue it is believed that the kernel audio driver should export at least a unique 'platform name'. A good example of a script which configures mixer settings based on exported 'platform names' can be found in '/usr/share/alsa/init/hda'.

[ACTION] Liam Girdwood to write a patch which which exports the device's 'platform name'.

Once the 'platform name' has been exported from the driver, Oliver's usermode scripts will be able to configure the mixers correctly for the current board. These scripts include a one line change in '/usr/share/alsa/init/00main' which tells ALSA which configuration file to load - in our case 'omap4'. The 'omap4' file will reside in the same location, thus '/usr/share/alsa/init/omap4'.

[ACTION] Oliver Grawert to edit '00main' and locate the new 'omap4' file in '/usr/share/alsa/init/'

The other issue is that HDMI audio output is not initialised and exposed to Pulse correctly. ALSA's Use Case Manager (UCM) would be an ideal solution to this, but unfortunately it's not available to us yet. Instead, the same can be achieved with a modified Pulse profile. The Pulse Audio (PA) team have agreed to include our profile in native-instruments-audio8dj.conf. Using the modified profile in conjunction with Oliver's init script would provide us with everything we needed for selectable output (default would be analog output). If there are interested parties wishing to adjust default settings they should be encouraged to download 'pavucontrol' from our repos. When the kernel audio driver has been patched to export the 'platform name', Pulse Audio can then auto-detect the bespoke profile. Once compete the bespoke Pulse profile file will be located in '/usr/share/pulseaudio/alsa-mixer/profile-sets'.

[ACTION] Abraham Duenas de la Cruz to write a PA profile for SDP4430/OMAP4
[ACTION] David Hessingsson to provide support
[ACTION] David Bercovitz to test

It has been decided that using uniform control names at this early stage wouldn't necessarily be a good thing. The reason behind this decision is that they can not be applied to all current audio hardware. We will, however, be able to use both uniform control names together with UCM at a latter stage - perhaps for Natty.

Pulse Audio may still falter with regards to incorrect hardware guesses/decisions. These will be addressed on a case by case basis and will be dealt with in files residing in '/usr/share/pulseaudio/alsa-mixer/paths/'. These files provide input for more intelligent probing and have been referred to as "poor man's UCM" by our Ubuntu Audio Expert. ;)

The final part of the Maverick puzzle is to fix Launchpad bug #652035 https://launchpad.net/bugs/652035. I believe this is underway and the assignee Daniel T Chen has already posted a PPA for people to test.

[ACTION] All to assist Daniel in any way you can in order to fix this bug; testing, investigation or advice.

Natty discussion:
ALSA's Use Case Manager (UCM) seems to be the future for ALSA audio and could be the panacea we're looking for. However, UCM is not ready for release and hence can't be used in our Maverick solution. It is believed that it will be ready for Natty's release. We should carry out some more investigation into UCM and how it would affect latter releases of Ubuntu. It may be the case that future incarnations of Ubuntu may not need a Pulse profile. This is dependent of course on whether we can categorise the hardware sensibly. UCM will also export multiple stream info to PA, which would prove to be useful.