Help on specifying 'chmap' in asound.conf
Dear all,
I am having a question regarding how to specify 'champ' for a plugin. I do not see any examples of this. I tried many ways to specify but failed.
As indicated by the link below, I can specify the MAP as a string array. Can someone provide one example on how exactly this [chmap MAP] can be specified?
" pcm.name { type cras [chmap MAP] # Provide channel maps; MAP is a string array } " https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
I can something like these, but none of these work for me.
chmap LFE chmap "LFE" chmap FR,FL,LFE champ "FR,FL,LFE"
Thanks!
Xinhui,
On Tue, 16 Jul 2024 08:09:21 +0200, Xinhui Zhou wrote:
Dear all,
I am having a question regarding how to specify 'champ' for a plugin. I do not see any examples of this. I tried many ways to specify but failed.
As indicated by the link below, I can specify the MAP as a string array. Can someone provide one example on how exactly this [chmap MAP] can be specified?
" pcm.name { type cras [chmap MAP] # Provide channel maps; MAP is a string array } " https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
I can something like these, but none of these work for me.
chmap LFE chmap "LFE" chmap FR,FL,LFE champ "FR,FL,LFE"
You need to define a composite array, e.g. pass like chmap [ "FL,FR" ] instead.
For multiple configurations, you can put more items such as chmap [ "FC" "FL,FR" "FL,FR,FC,LFE" ]
HTH,
Takashi
For that matter, which ALSA source files do the parsing ? From my old/distant memories, ALSA is silent about mistakes made by user when the user provides various configuration files. So, there must be a way to resolve the issue of silent ignoring of user mistakes.
A possible temporary solution would be to "trace" (e.g. by inserting diagnostic print statements) parsing of provided by user configuration files, and to implement this one has to know where to insert the diagnostic print statements, and that's why I'm asking the question.
--Sergei.
On 7/16/24 18:57, Takashi Iwai wrote:
On Tue, 16 Jul 2024 08:09:21 +0200, Xinhui Zhou wrote:
Dear all,
I am having a question regarding how to specify 'champ' for a
plugin. I do not see any examples of this. I tried many ways to specify but failed.
As indicated by the link below, I can specify the MAP as a string array. Can someone provide one example on how exactly this [chmap MAP] can be specified?
" pcm.name { type cras [chmap MAP] # Provide channel maps; MAP is a string array } " https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
I can something like these, but none of these work for me.
chmap LFE chmap "LFE" chmap FR,FL,LFE champ "FR,FL,LFE"
You need to define a composite array, e.g. pass like chmap [ "FL,FR" ] instead.
For multiple configurations, you can put more items such as chmap [ "FC" "FL,FR" "FL,FR,FC,LFE" ]
HTH,
Takashi
Alsa-user mailing list Alsa-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-user
On Wed, 17 Jul 2024 14:31:04 +0200, Sergei Steshenko wrote:
For that matter, which ALSA source files do the parsing ? From my old/distant memories, ALSA is silent about mistakes made by user when the user provides various configuration files. So, there must be a way to resolve the issue of silent ignoring of user mistakes.
The parsing of a config is performed at each PCM plugin code. In particular case for chmap, pcm_hw.c, pcm_null.c and pcm_route.c call _snd_pcm_parse_config_chmaps() helper and deal with the parsed data.
And, in most cases, alsa-lib rather complains (even verbosely) if something goes wrong in the config file. But the interpretation of each config leaf is done in each PCM plugin code, and some might just ignore the errors. But that's not a general case.
A possible temporary solution would be to "trace" (e.g. by inserting diagnostic print statements) parsing of provided by user configuration files, and to implement this one has to know where to insert the diagnostic print statements, and that's why I'm asking the question.
I understand that debugging the config stuff is sometimes messy, yeah. Some more verbose debug output would be helpful, indeed.
Takashi
--Sergei.
On 7/16/24 18:57, Takashi Iwai wrote:
On Tue, 16 Jul 2024 08:09:21 +0200, Xinhui Zhou wrote:
Dear all,
I am having a question regarding how to specify 'champ' for a
plugin. I do not see any examples of this. I tried many ways to specify but failed.
As indicated by the link below, I can specify the MAP as a string array. Can someone provide one example on how exactly this [chmap MAP] can be specified?
" pcm.name { type cras [chmap MAP] # Provide channel maps; MAP is a string array } " https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
I can something like these, but none of these work for me.
chmap LFE chmap "LFE" chmap FR,FL,LFE champ "FR,FL,LFE"
You need to define a composite array, e.g. pass like chmap [ "FL,FR" ] instead.
For multiple configurations, you can put more items such as chmap [ "FC" "FL,FR" "FL,FR,FC,LFE" ]
HTH,
Takashi
Alsa-user mailing list Alsa-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-user
participants (3)
-
Sergei Steshenko
-
Takashi Iwai
-
Xinhui Zhou