Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ALSAUCM(1)		     General Commands Manual		      ALSAUCM(1)

NAME
     alsaucm - ALSA Use Case Manager

SYNOPSIS
     alsaucm <options> [command]

DESCRIPTION
     alsaucm  (ALSA  Use Case Manager) is a program to use the ALSA Use Case In-
     terface <http://www.alsa-project.org/alsa-doc/alsa-lib/group__ucm.html>
      from the command line.

     On complex sound cards, setting up audio routes is not  trivial  and  mixer
     settings can conflict one another preventing the audio card to work at all.

     The  ALSA	Use  Case  Manager  is a mechanism for controlling complex audio
     hardware establishing a relationship between  hardware  configurations  and
     meaningful use cases that the end-user can relate with.

     The use case manager can also be used to switch between use cases when nec-
     essary, in a consistent way.

     At  a lower level, the use case manager works by configuring the sound card
     ALSA kcontrols to change the hardware digital and analog audio  routing  to
     match the requested device use case.

     The  use  case manager kcontrol configurations are stored in easy to modify
     text files. An audio use case can be defined by a verb and  device  parame-
     ter.

     The  verb describes the use case action i.e. a phone call, listening to mu-
     sic, recording a conversation etc. The device describes the physical  audio
     capture  and  playback  hardware  i.e. headphones, phone handset, bluetooth
     headset, etc.

OPTIONS
     Available options:

	-h, --help
	       this help

	-c, --card NAME
	       open card NAME

	-i, --interactive
	       interactive mode

	-b, --batch FILE
	       batch mode (use '-' for the stdin input)

	-n, --no-open
	       do not open first card found

     Available commands:

	open NAME
	       open card NAME.

	       valid   names   are   sound   card    names    as    listed    in
	       /usr/share/alsa/ucm.

	reset  reset sound card to default state.

	reload
	       reload configuration.

	listcards
	       list available cards.

	list IDENTIFIER
	       list command, for items returning two entries (value+comment).

	       the value of the IDENTIFIER argument can be:

	       * _verbs - get verb list (in pair verb+comment)

	       * _devices[/{verb}]  - get list of supported devices (in pair de-
		 vice+comment)

	       * _modifiers[/{verb}] - get list of supported modifiers (in  pair
		 modifier+comment)

	       The  forms  without  the  trailing /{verb} are valid only after a
	       specific verb has been set.

	list1 IDENTIFIER
	       list command, for lists returning one item per entry.

	       the value of the IDENTIFIER argument can vary  depending  on  the
	       context, it can be:

	       * TQ[/{verb}] - get list of Tone Quality identifiers

	       * _enadevs - get list of enabled devices

	       * _enamods - get list of enabled modifiers

	       * _supporteddevs/{modifier}|{device}[/{verb}] - list of supported
		 devices

	       * _conflictingdevs/{modifier}|{device}[/{verb}]	-  list  of con-
		 flicting devices

	get IDENTIFIER
	       get string value.

	       the value of the IDENTIFIER argument can be:

	       * _verb - return current verb

	       * [=]{NAME}[/[{modifier}|{/device}][/{verb}]]  (For  valid  NAMEs
		 look	at   the   ALSA  Use  Case  Interface  <http://www.alsa-
		 project.org/alsa-doc/alsa-lib/group__ucm.html> )

	geti IDENTIFIER
	       get integer value.

	       the value of the IDENTIFIER argument can be:

	       * _devstatus/{device}

	       * _modstatus/{device}

	set IDENTIFIER VALUE
	       set string value

	       The value of the IDENTIFIER argument can be:

	       * _verb - set the verb to VALUE

	       * _enadev - enable the device specified by VALUE

	       * _disdev - disable the device specified by VALUE

	       * _swdev/{old_device} - switche device:

		 * disable old_device and then enable the  device  specified  by
		   VALUE

		 * if no device was enabled just return

	       * _enamod - enable the modifier specified by VALUE

	       * _dismod - disable the modifier specified by VALUE

	       * _swmod/{old_modifier} - switch modifier:

		 * disable  old_modifier  and then enable the modifier specified
		   by VALUE

		 * if no modifier was enabled just return

	       Note that the identifiers referring to devices and modifiers  are
	       valid only after setting a verb.

	h, help
	       help

	q, quit
	       quit

FILES
     The   master   use  case  files  for  each  supported  sound  card  are  in
     /usr/share/alsa/ucm.

     For example, the master use  case	file  for  the	Pandaboard  card  is  in
     /usr/share/alsa/ucm/PandaBoard/PandaBoard.conf,  this  file  lists  all the
     supported use cases, e.g.

	SectionUseCase."HiFi" {
			File "hifi"
			Comment "Play HiFi quality Music."
	}
	...

     Each use case defines a _verb, which is described in the file specified  in
     the File directive, like above.

     The HiFi verb above is described in /usr/share/alsa/ucm/PandaBoard/hifi.

     For more details on the syntax of UCM files, see the alsa-lib source code:
      <http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/ucm/parser.c>

EXAMPLES OF USE
     Some commands, like for instance list _devices, can only work after setting
     a _verb in the same execution, for instance this sequence doesn't work:

	# alsaucm -c bytcr-rt5640 set _verb HiFi
	# alsaucm -c bytcr-rt5640 list _devices

     However this command does:

	# alsaucm -n -b - <<EOM
	open bytcr-rt5640
	set _verb HiFi
	list _devices
	EOM

     An  example  of  setting  the  Speaker  device  for  the  HiFi  verb of the
     bytcr-rt5640 card:

	# alsaucm -n -b - <<EOM
	open bytcr-rt5640
	reset
	set _verb HiFi
	set _enadev Speaker
	EOM

SEE ALSO
     * Use			      Case			      Interface:
       <http://www.alsa-project.org/alsa-doc/alsa-lib/group__ucm.html>

BUGS
     None known.

AUTHOR
     Antonio Ospite <ao2@ao2.it>

COPYRIGHT
     GPLv2+

				   2016-09-22			      ALSAUCM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=alsaucm&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help