Commit graph

1952 commits

Author SHA1 Message Date
Takashi Iwai
64b1d486b1 aconnect: Add UMP support
This patch extends the aconnect program for supporting UMP.
Now the verbose output can show the UMP client version.

Also, a new option -a is added to control the behavior whether to show
the all ports including the inactive ports or not.  As default, only
the active ports are shown, but UMP clients allow to hide some ports
as inactive.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-06 15:44:57 +02:00
Takashi Iwai
2b08d585a3 aseqdump: Add UMP support
Add the support for showing the UMP events to aseqdump.
With the new option -u, the program can start as a UMP sequencer
client and receive UMP events instead of the legacy MIDI events.

Also, the automatic event conversion among legacy and UMP clients can
be suppressed by the new -r option, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-06 15:44:57 +02:00
Jaroslav Kysela
ee3965f6fa nhlt: add nhlt-dmic-info utility
The microphone arrays for Intel platforms are described in the
ACPI NHLT table. This table is available in sysfs. Parse this
information and use a more common format (json) for output. This
information is usable for the further DSP processing.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-16 15:54:05 +02:00
Jaroslav Kysela
7812ddb265 Release v1.2.9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-04 09:16:17 +02:00
Jaroslav Kysela
1238ba1a7c alsa-info.sh: increase version to 0.5.3
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-03 16:41:26 +02:00
wileyhy
37e396cab4 alsa-info.sh: uname - reduce execs by four, and eliminate a logic bug
Per `info uname`, `uname` always prints its data in the same order.
Also, "note that A && B || C is not if-then-else. C may run when A is true."
https://www.shellcheck.net/wiki/SC2015

set -x; read -r KERNEL_VERSION < <(uname -v); smp=x; \
  [[ "$KERNEL_VERSION" = *SMP* ]] && \
  { smp=y; readonly smp; false;} || smp=n; set -

  ... https://github.com/koalaman/shellcheck

Fixes: https://github.com/alsa-project/alsa-utils/pull/207
From: wileyhy @ github
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-03 16:36:04 +02:00
wileyhy
4588b2f8ae alsa-info.sh: Update test '-a' and '-o' to '&&' and '||'
lines 50, 103: in two compound ['s, replace '-a' with '] && ['
  SC2166 – Prefer `[ p ] && [ q ]` as `[ p -a q ]` is not well defined.
  SC2107 – Instead of `[ a && b ]`, use `[ a ] && [ b ]`.

line 45: in a compound test command, change '-o' to '|| test'
  SC1139 – Use `||` instead of `-o` between test commands.
  SC2109 – Instead of `[ a || b ]`, use `[ a ] || [ b ]`.

 ... https://github.com/koalaman/shellcheck

Fixes: https://github.com/alsa-project/alsa-utils/pull/206
From: wileyhy @ github
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-03 16:29:52 +02:00
Tj
42bba8ac61 arecord: use correct duration
When a duration is specified but the the capture device cannot use the
requested sample rate and an alternative rate is used the duration
sample count must be (re)calculated.

Fixes: https://github.com/alsa-project/alsa-utils/pull/200
Signed-off-by: Tj <hacker@iam.tj>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-03 16:26:22 +02:00
Chao Song
52f6fb7f33 topology: pre-processor: fix regular expression flags
The REG_ICASE flag is a compile-time flag (cflags), it
should be used with regcomp() instead of regexec(). Also
add the REG_EXTENDED flag in this patch to make patterns
like 'tgl|adl' work.

Fixes: https://github.com/alsa-project/alsa-utils/pull/195
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-05-03 16:25:15 +02:00
Jaroslav Kysela
ca503e3519 alsa-info.sh: print ctl-led list from sysfs
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-03-24 09:07:43 +01:00
Jaroslav Kysela
fd2e386b3e alsaloop: fix loopcount condition
BugLink: https://github.com/alsa-project/alsa-utils/issues/185
Fixes: e61f35b ("alsaloop: try adapt avail_min for playback to avoid 100% CPU usage")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 13:35:43 +01:00
Jaroslav Kysela
55bafb7938 alsabat: improve error handling in bat_init()
Fix 'LC_ALL=C.UTF-8 ./alsabat' command.

Fixes: https://github.com/alsa-project/alsa-utils/issues/192
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 13:23:28 +01:00
SASANO Takayoshi
cff2d1c210 alsactl: fix OpenBSD compilation (add include of os_compat.h)
Fixes: https://github.com/alsa-project/alsa-utils/pull/193
Signed-off-by: SASANO Takayoshi <uaa@uaa.org.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 13:10:16 +01:00
Jay-716
17615de014 alsaucm: fix typo in docs (can can)
Fixes: https://github.com/alsa-project/alsa-utils/pull/191
Signed-off-by: Jay-716 <13422525511@163.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 13:08:50 +01:00
Jaroslav Kysela
5a3655b33a include: fix package - add bswap.h and os_compat.h to noinst_HEADERS
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 13:05:17 +01:00
Jaroslav Kysela
58f92d6175 alsaucm: add also card index for '-c' argument
Make semantics for this argument in sync with other ALSA utilities.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-27 12:56:17 +01:00
Jaroslav Kysela
dad2161d3c alsamixer: add -B,--black-background option
Fixes: https://github.com/alsa-project/alsa-utils/issues/176
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-10 13:36:23 +01:00
Jyri Sarha
cf25cf6767 topology: pre-process-object: Expand definitions within strings
Expand the pre-processor to allow for expanding the definitions,
object attribute references and arithmetic expressions within strings.

With this extension its possible to embedded definitions or attribute
references into topology string objects. For example:

Define {
       PCM_NUMBER	1
}

Object.Pipeline {
	pcm-playback.0 {

	Object.Widget {
		copier.1 {
			copier_type	"host"
		}
		gain.1 {
			Object.Control.mixer.1 {
				name 'hw:$[$PCM_NUMBER - 1] Playback Volume'
		}
	}

	Object.Base {
		route.1 {
			source	copier.host.$index.1
			sink	gain.$index.1
		}
	}
}

In the example the $[$PCM_NUMBER - 1] would be replaced with the
result of arithmetic expression '1 - 1' in other words '0' , and
$index in all occurrences with index attribute found from pipeline
object. Any non alpha numeric or '_' character are treated as
delimiters for variable names if $[]-notation is not used.

Fixes: https://github.com/alsa-project/alsa-utils/pull/189
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-06 15:49:14 +01:00
Jyri Sarha
4d7275d7f8 topology: pre-process-object: Remove all trailing white space
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-06 15:48:20 +01:00
SASANO Takayoshi
613372dc7c Add OpenBSD support
- ERESTART not supported platform: use EINTR instead
- add include/os_compat.h, well-used OS specific definition
- copied include/bswap.h from alsa-lib

- EPIPE and ESTRPIPE are different usage, but currently
  EPIPE is used when ESTRPIPE is not defined.

  To fix this problem, assign ESPIPE instead.

Fixes: https://github.com/alsa-project/alsa-utils/pull/186
Signed-off-by: SASANO Takayoshi <uaa@uaa.org.uk>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-02-03 13:08:44 +01:00
Chao Song
1350900246 topology: pre-processor: support to include conf block with IncludeByKey
Currently, The IncludeByKey mechanism only supports conditionally
including a topology conf file. Even if we only
want to conditionally include a small conf block, we have
to use a conf file and in the end we will have a lot of
trivial conf files that only contain a single conf blocks.

This patch extends the use of IncludeByKey ito support including conf
blocks conditionally. For example, the block below will include the route
conditionally based on the variable definition COPIER_ROUTE.

Define {
	COPIER_ROUTE	1
}

IncludeByKey.COPIER_ROUTE {
       	"1" {
		Object.Base.route.11 {
			source	copier.module.8.2
			sink	copier.module.17.2
		}
	    }
}

Fixes: https://github.com/alsa-project/alsa-utils/pull/187
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Co-authored-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-24 09:45:45 +01:00
Jaska Uimonen
df3da091cc topology: nhlt: intel: add support for ssp blob ver 1.5
Ssp plugin had already a definition for newer nhlt blob version 1.5.
Add support to generate that instead of legacy blob. Never blob can be
generated by adding "version" field in SSP dai topology2 definition and
setting it to lower 16 bits of SSP_BLOB_VER_1_5 (0xee000105) -> 0x105
i.e 8 bits for major and 8 bits for minor version.

SSP."0" {
	id              0
	dai_index       0
	direction       "duplex"
	name            NoCodec-0
	version         0x105
}

Fixes: https://github.com/alsa-project/alsa-utils/pull/184
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-24 09:43:52 +01:00
Jaska Uimonen
1ad140f641 topology: plugins: nhlt: add ssp aux controls
Intel ssp blob can have auxiliary controls catenated as tlv array at the
end of its "normal" data blob. These are needed in some platforms for
example to enable hardware clocks earlier than streaming starts.

In topology the auxiliary data classes are embedded into hw_config and
can be instantiated like:

Object.Base.hw_config."SSP0_0" {
	id              0
	mclk_freq       38400000
	bclk_freq       256000
	tdm_slot_width  16
	format          "DSP_A"
	bclk            "codec_provider"
	fsync           "codec_provider"
	fsync_freq      16000

	Object.Base.mn_config."MN_0" {
		m_div   100
		n_div   200
	}

	Object.Base.clk_config."CLK_0" {
		clock_warm_up          1
		mclk                   2
		warm_up_ovr            3
		clock_stop_delay       4
		keep_running           5
		clock_stop_ovr         6
	}
}

Fixes: https://github.com/alsa-project/alsa-utils/pull/184
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-24 09:42:40 +01:00
Khem Raj
4e3843d0ed aplay,axfer: Replace off64_t with off_t
Also replace lseek64 with lseek.

_FILE_OFFSET_BITS=64 is passed to needed platforms since configure uses
AC_SYS_LARGEFILE macro. Therefore off_t is already 64-bit and lseek is
same as lseek64.

Additionally this fixes buils with latest musl where these lfs64
functions are moved out from _GNU_SOURCE and under _LARGEFILE64_SOURCE
macro alone. This makes the builds fail on 32-bit platforms even though
default off_t on musl is 64-bit always.

Fixes: https://github.com/alsa-project/alsa-utils/pull/183
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-23 19:04:07 +01:00
Chao Song
deaa1635cc topology: propagate nhlt plugin error to main program
Let's propagate nhlt plugin error to main program,
so that we don't generate a wrong nhlt blob silently.

Fixes: https://github.com/alsa-project/alsa-utils/pull/181
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-23 19:02:23 +01:00
Jaska Uimonen
8871d51aa1 topology: plugins: nhlt: fix ssp debug
Nhlt ssp plugin debug feature was broken due to recent change in ssp
indexing, thus fix it.

Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-23 19:00:58 +01:00
Amadeusz Sławiński
4f7e1af85a aplay: Fix parsing of format with WAV_FMT_EXTENSIBLE header
WAV_FMT_EXTENSIBLE header contains valid bits per sample, which can be
different than bits per sample. Make sure it is taken into account when
parsing headers and choosing playback format.

BugLink: https://github.com/alsa-project/alsa-utils/pull/178
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-23 19:00:34 +01:00
Pierre-Louis Bossart
f67b3ed002 topology: nhlt: intel: ssp: fix obvious typo for 'codec_provider'
Looks like a bad search and replace?

Fixes: https://github.com/alsa-project/alsa-utils/pull/174
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2023-01-23 18:54:22 +01:00
NorwayFun
b758df542c Add Georgian translation
Fixes: https://github.com/alsa-project/alsa-utils/pull/169
Signed-off-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:09:52 +01:00
Tim Bird
9e525074d2 bat: Add 'readcapture' option to support analyzing external audio
If audio data is captured on another device (ie we are NOT using
loopback mode), then allow alsabat to analyze that data, by passing
a filename reference on the command line.

Add the '--readcapture' option to the argument parser. When
this option is specified, avoid doing a local capture, and instead
just read the audio data from the indicated file, and analyze that.

Fixes: https://github.com/alsa-project/alsa-utils/pull/166
Signed-off-by: Tim Bird <tim.bird@sony.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:06:00 +01:00
Fabrice Fontaine
e3d30315ff configure.ac: fix build without dlfcn.h
Fix the following static build failure (i.e. without dlfcn.h) raised
since version 1.2.7 and
44d3e8aa44:

pre-processor.c:28:10: fatal error: dlfcn.h: No such file or directory
   28 | #include <dlfcn.h>
      |          ^~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/1173a1ee28a58ce565a3274f35e868c35bb2e04e

Fixes: https://github.com/alsa-project/alsa-utils/pull/165
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:05:07 +01:00
Jaska Uimonen
c57391dd26 topology: plugins: nhlt: fix ssp dai index
There was a conceptual error in handling the separate ssp dais, so fix
it.

Fixes: https://github.com/alsa-project/alsa-utils/pull/164
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:04:40 +01:00
Jaska Uimonen
e13a7d3cf6 topology: plugins: nhlt: add dmic dai index
Dmic might have multiple configurations for the same hw, so add them to
nhlt blob. The configurations are separated by dai_index.

Fixes: https://github.com/alsa-project/alsa-utils/pull/164
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:04:29 +01:00
Yong Zhi
038ed518e9 topology: plugins: fix off by 1 mem allocation error
Fix valgrind memcheck error:

==1337389== Invalid write of size 1
==1337389==    at 0x4A4AFAB: __vsnprintf_internal (vsnprintf.c:117)
==1337389==    by 0x4AECF40: __snprintf_chk (snprintf_chk.c:38)
==1337389==    by 0x484B870: snprintf (stdio2.h:67)
==1337389==    by 0x484B870: print_as_hex_bytes (nhlt-processor.c:112)
==1337389==    by 0x484B870: merge_manifest_data (nhlt-processor.c:154)
==1337389==    by 0x484B870: do_nhlt (nhlt-processor.c:420)
==1337389==    by 0x484B870: _snd_topology_nhlt_process (nhlt-processor.c:484)

The consecutive snprintf overwrites always the previous terminator until
it hits the very last call of:

snprintf(dst, ALSA_BYTE_CHARS + 1, "0x%02x,", *nhlt_buffer);

when the size n given to snprintf is 1 more than allocated.

Fixes: https://github.com/alsa-project/alsa-utils/pull/162
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:03:35 +01:00
Tomohiro IKEDA
7ff994347e chore: Add link to master branch on GitHub Actions
Fixes: https://github.com/alsa-project/alsa-utils/pull/161
Singed-off-by: Tomohiro IKEDA <tomohiro.ikeda@justincase-tech.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:02:49 +01:00
Tomohiro IKEDA
21de8d6a2f chore: Delete .travis.yml because of using not Travis CI but GitHub Actions
Fixes: https://github.com/alsa-project/alsa-utils/pull/160
Signed-off-by: Tomohiro IKEDA <tomohiro.ikeda@justincase-tech.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:02:03 +01:00
John Keeping
4daf22b278 amidi: restore space between bytes
Commit 9a8fcec ("amidi: add timestamp option for dump") removed the
space between bytes when dumping MIDI, changing the output from:

	90 45 40
	80 45 00

to:

	904540
	804500

It seems that this was an unintentional side effect of refactoring the
code to add the new timestamp output but the result is less readable
than it was before.

Restore the space between bytes in the same message.

Fixes: 9a8fcec ("amidi: add timestamp option for dump")
Fixes: https://github.com/alsa-project/alsa-utils/pull/158/
Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:01:19 +01:00
Takashi Sakamoto
0e657ca00b axfer: fix typo in manual
The spelling of 'aborted' was 'aboeted' in the manual. This commit fixes
it.

Fixes: a37703614a ("axfer: fulfill manual section for libffado backend")
Fixes: https://github.com/alsa-project/alsa-utils/pull/156
Reported-by: Chao Song chao.song@linux.intel.com
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-11-04 22:00:18 +01:00
Jaroslav Kysela
a61edeb0d4 Release v1.2.8
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-10-24 10:17:28 +02:00
Jaroslav Kysela
f37ef4768c alsactl: Print driver name in info
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-09-27 19:06:04 +02:00
Jaroslav Kysela
9a0271854f amixer: fix the help for 'events' command
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-08-25 09:33:58 +02:00
Jaroslav Kysela
62cd05a929 aplay: remove wrongly merged UCM code
The code origin comes from me. Unfortunately, it was merged
by mistake to another commit. Remove it for now.

Fixes: https://github.com/alsa-project/alsa-utils/issues/153
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-08-03 22:46:47 +02:00
Jaroslav Kysela
6ee086363a aplay: fix the capture file length regression
The commit 4b959a4 ("aplay: Fix for arecord recording ghost data")
intruduced a regression (file may contain more samples than
expected). Correct this.

Fixes: https://github.com/alsa-project/alsa-utils/issues/163
Fixes: 4b959a4 ("aplay: Fix for arecord recording ghost data")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-08-03 22:10:05 +02:00
Jaroslav Kysela
a566f8a0ed configure: automake - use subdir-objects option
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-06-02 08:31:33 +02:00
Jaroslav Kysela
265dda7715 configure: use AC_DISABLE_STATIC (for topology modules)
Fixes: https://github.com/alsa-project/alsa-utils/issues/152
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-06-02 08:25:51 +02:00
Jaroslav Kysela
7d934f3142 Release v1.2.7
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 18:24:24 +02:00
Jaroslav Kysela
65841efdf5 topology: nhlt plugin: second attempt to fix the .so linking
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 18:23:59 +02:00
Jaroslav Kysela
cae9b71589 topology: nhlt plugin: fix the .so linking
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 18:11:50 +02:00
Jaroslav Kysela
788cfa71ea alsamixer: add alsamixer.rc.example file
Fixes: https://github.com/alsa-project/alsa-utils/issues/112
From: Bertram Felgenhauer / int-e / github
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 14:16:30 +02:00
Jaska Uimonen
96ddc346e0 topology: plugins: nhlt: fix intel dmic mode calculation
Dmic find_modes function was used with same sampling rate for both fifo
a and b parameter calculations. This bug was found in testing two
simultaneous dmic dais in topology. Fix this by introducing a sampling
rate argument for find_modes.

Fixes: https://github.com/alsa-project/alsa-utils/pull/148
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2022-05-31 14:10:25 +02:00