The Advanced Linux Sound Architecture (ALSA) - utilities
Find a file
Ranjani Sridharan a82058e6ec topology: Add support for pre-processing Topology2.0 syntax
This patch adds support for pre-processing the Topology2.0.
The '-p' switch add pre-processing support during compilation
and the '-P' switch is for converting the Topology2.0
configuration file into the existing syntax.

Topology2.0 is a high level keyword extension on top of the existing ALSA
conf topology format designed to:

1) Simplify the ALSA conf topology definitions by providing high level
   "classes" so topology designers need to write less config for common
   object definitions.

2) Allow simple reuse of objects. Define once and reuse (like M4) with
   the ability to alter objects configuration attributes from defaults.

3) Allow data type and value verification. This is not done today and
   frequently crops up in FW bug reports.

Common Topology Classes
-----------------------

Topology today has some common classes that are often reused throughout
with slightly altered configurations. i.e. widgets (components),
pipelines, dais and controls.

Topology2.0 introduces the high level concept of reusable "class" like
definition for that can be used to create topology objects.

Common Topology Attributes
--------------------------
Topology defines a lot of attributes per object with different types
and constraints. Today there is no easy way to validate type or
constraints and this can lead to many hard to find problems in FW at
runtime.

A new keyword "DefineAttribute" has been added to define attribute
constraints such as min value, max value, enum_values etc. This
then allows alsatplg to validate each topology object attribute.

Topology Classes define the list of attributes that they use and
whether the attribute is mandatory, can be overridden by parent users
or is immutable. This also helps alsatplg emit the appropriate errors
for attribute misuse.

Class constructor attributes
----------------------------
Some attributes in the class definition are declared as constructor
attributes and these will be used to construct the name of the object.
For ex: for the host widget, the index and direction are constructor
attributes and the name for the widget is derived as follows:
host.1.playback or host.2.capture etc.

Attribute Inheritance:
----------------------
One of the key features of Topology2.0 is how the attribute values are
propagated from a parent object to a child object. For ex: a pipeline
object can pass down the pipeline_id attribute to all its widgets.
Inheritance is implicit when an object and its embedded child objects
have matching names for a attribute/argument. Attribute values
set explicitly in an object instance always has precedence over
the values inherited from the parent object.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>

1

1

1

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-05-25 18:26:51 +02:00
.github/workflows github actions: ubuntu - fix the non-interactive build 2020-06-02 13:09:34 +02:00
alsa-info alsa-info.sh: Add jack2 (jackdbus) detection 2021-03-05 21:21:34 +01:00
alsaconf Add Basque translation 2020-10-23 12:00:20 +02:00
alsactl alsactl: ucm - try both fixed boot and boot sequences 2021-04-13 19:19:01 +02:00
alsaloop alsaloop: man page - correct "rate" option 2021-04-13 20:14:51 +02:00
alsamixer alsamixer: increase control device name buffer (sysdefault) 2021-04-15 11:27:42 +02:00
alsaucm alsaucm: add 'getval' and 'getival' commands 2021-05-13 11:54:15 +02:00
amidi amidi, aseqnet: handle write errors 2021-03-05 21:50:28 +01:00
amixer amixer: link volume_mapping.c from alsamixer to amixer 2021-05-25 18:26:36 +02:00
aplay aplay: avoid any further PCM writing if in abort 2021-03-19 12:53:39 +01:00
axfer axfer: fix regression of timeout in timer-based scheduling model 2021-05-13 16:47:09 +02:00
bat alsabat: fix typo 2020-10-06 13:00:18 +02:00
iecset Change FSF address (Franklin Street) 2017-11-14 14:28:53 +01:00
include configure.in -> configure.ac rename 2014-05-07 10:55:59 +02:00
m4 Fix autoreconf 2005-08-19 13:07:45 +00:00
po Update French translation 2020-10-23 12:02:12 +02:00
seq amidi, aseqnet: handle write errors 2021-03-05 21:50:28 +01:00
speaker-test speaker-test: add support for S24_LE and S24_BE 2021-03-14 09:33:39 +01:00
topology topology: Add support for pre-processing Topology2.0 syntax 2021-05-25 18:26:51 +02:00
utils Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:25:17 +02:00
.gitignore Add more files to .gitignore 2020-12-10 10:34:40 +01:00
.travis.yml initial version of .travis.yml 2018-10-24 22:30:59 +02:00
acinclude.m4 fixed for the recent autoconf. 2004-01-26 15:57:37 +00:00
ChangeLog update build tools. 2005-08-13 16:27:59 +00:00
configure.ac autotools: preparation to use memfd_create(2) 2021-03-11 09:28:12 +01:00
COPYING Updated COPYING with the recent FSF address 2011-06-03 14:24:30 +02:00
gitcompile configure.in -> configure.ac rename 2014-05-07 10:55:59 +02:00
INSTALL alsactl: Move systemd unit start-up from basic.target to sound.target 2017-10-06 14:32:16 +02:00
Makefile.am Makefile.am: add README.md to EXTRA_DIST 2019-01-07 14:57:55 +01:00
README.md README.md: add build status badge 2020-02-18 20:08:37 +01:00
TODO aplay/arecord 2000-12-27 21:24:57 +00:00

alsa-utils

Advanced Linux Sound Architecture - Utilities

Build alsa-utils

This package contains the command line utilities for the ALSA project. The package can be compiled only with the installed ALSA driver and the ALSA C library (alsa-lib).

Utility Description
alsaconf the ALSA driver configurator script
alsa-info a script to gather information about ALSA subsystem
alsactl an utility for soundcard settings management
aplay/arecord an utility for the playback / capture of .wav,.voc,.au files
axfer an utility to transfer audio data frame (enhancement of aplay)
amixer a command line mixer
alsamixer a ncurses mixer
amidi a utility to send/receive sysex dumps or other MIDI data
iecset a utility to show/set the IEC958 status bits
speaker-test a speaker test utility
alsaloop a software loopback for PCM devices
alsaucm Use Case Manager utility
alsabat a sound tester for ALSA sound card driver
alsatplg ALSA topology compiler

You may give a look for more information about the ALSA project to URL http://www.alsa-project.org.