On Wednesday 21 January 2009 16:33, you wrote:
At Wed, 21 Jan 2009 16:45:29 +0000, Alan Horstmann wrote:
On Wednesday 21 January 2009 10:00, Takashi Iwai wrote:
At Tue, 20 Jan 2009 17:33:24 +0100, Diego E. 'Flameeyes' Pettenò wrote:
Using the correct format, front:IDX should work with two channels sound files, and it doesn't, nor surround40:IDX works with four channels or surround71:IDX with eight channels.
<snip>
I think Diego's point though is that 'surround40:IDX' might be expected to be a 4-channel stream, whereas it is as dependant on the hardware as 'hw:IDX' is. In the later case it is clear that the user must provide audio in whatever format/channels the hardware uses. However it is unexpected that eg on ice1712 'surround40:IDX' requires a 10-channel playback stream and ignores 6 of them, and will not play a 4-channel stream.
It is also not symetrical, so if you capture it has to be a 12-channel stream, which it is then not possible to play without using the plug: devices.
Unless I am mistaken...
Right, ice1712 is tricky as is. I myself feel having plug inside the front, etc, definitions would be more intuitive. However, the plug over plug doesn't (didn't? -- need checks) work. And, the definition should be as slim as possible. These are counter arguments.
It may be that you want to drop this completely, but I have done a little more testing and thinking, in case not.
The purpose of the 'front', 'surround' etc definitions is presumably to provide pre-configured routing to certain standard outputs where this is possible with the card hardware. Therefore it seems reasonable for the user to expect channel number conversion to be handled by these devices, as Diego's original proposal for 'front'. One might augue the format conversion should not be included since that really is the job of 'plug:front'.
In the case of ice1712 it is particularly useful due to the asymmetry of channels playback and capture. That raises another question -what is the meaning of capture from a device such as 'surround'? Would anyone want to do it and what would they expect (stereo/4-channel)? Should the devices be playback only? Capture would be very dependant on the specific board. Is there any way to handle different conf files dependant on different ice1712 cards?
I have tested a modified ICE1712.conf with front definition similar to Diego's, essentially:-
type asym playback.pcm { type route ttable.0.0 1 ttable.1.1 1 slave.pcm { type hw card $CARD } slave.channels 10 } capture.pcm { type route ttable.0.0 1 ttable.1.1 1 slave.pcm { type hw card $CARD } slave.channels 12 }
and can confirm playback of files with various channel numbers is possible fine. Also, plug:front in this case still works fine.
I wondered what your thoughts are on this?
Alan