On 01/10/2014 05:46 PM, Takashi Sakamoto wrote: >> So the main question here is if your plan is that your driver will be >> fixed/improved to support two channel streaming for multichannel >> devices? > > I don't have such plan. > > In my understanding, such functionality should be in user-land. Drivers > should just transfer samples from/to application to/from devices, should > do nothing others. AFAIK, the driver should support what the hardware supports. If the hardware supports streaming 2 channels (e g to save fw bus bandwidth, or something), the driver should support that mode. In case the hardware only supports a 12 channel mode, then that restriction should be exported to user space. To aid for applications, one can add custom per-card mapping in alsa-lib - e g, look at /usr/share/alsa/cards/ICE1712.conf where you can open the device "front:<card>" with two channels and it automatically upscales to 10 or 12 channels. I'm not sure if that's the best approach here, just mentioning it. > (...To tell the truth, I want to keep drivers as simple as possible for > maintainance reasons ;p) > >> That would probably help a lot of other audio applications, not only >> PulseAudio. > > Exactly. For this issue, I assume that users utilize 'plughw' plugin. > Actually I test drivers with aplay/arecord and this plugin. Hm. Actually PulseAudio tries opening "plug:hw:1" too and setting the channel number to two fails in that case too. If the "plug" plugin can change the number of channels, then that should have been working. > But recently, most users use Desctop Environment such as GNOME, KDE. The > sound envoronment of them are already based on PulseAudio. So I want > PulseAudio to adjust the mismatch between applications and actual devices. > >> However, if this means a lot of extra trouble/work for you, we could >> write a special profile set file in PulseAudio for firewire devices >> that is more adapted to your driver. > > I hope it. What should I do for this idea? You could do two simple tests first. 1) Edit /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf and change "hw:%f" to "plughw:%f" in the section "Mapping analog-stereo". If the plughw plugin can upscale, then that should make things work. 2) Alternatively, you could add channels to your mapping: channel-map = left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9,aux10,aux11 (of course restart PulseAudio for changes to take effect) Either of these methods should make things work. If they don't, please supply a new pulseaudio verbose log per previous instructions. Assuming the second one works, I could write a new /usr/share/pulseaudio/alsa-mixer/profile-sets/firewire.conf or so that could work better with your driver. I could use your help in writing the best udev rule to match your driver though. -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic