1.28.2
------
- libout123
-- Complete the fix for bug 314, reopening the device after format
setup failure.
1.28.1
------
- build:
-- Explain --with-default-audio in configure help better.
-- Fix build of arm_fpu (regression of configure reorg).
-- Re-introduce AC_PROG_C_C99 macro for autoconf 2.69, it's only
obsolete after that.
-- Un-break CMake build for botched move of CheckCPUArch.c.in (bug 315).
-- Avoid conflict of warning macro with MSVC pragmas in two places. Also
fix UWP build with strerror check and move down inclusion of intsym.h
(bug 316).
-- Disable libout123 (and mpg123, out123) on UWP with cmake to get at least
the decoder lib built (317).
-- Hack around CMake bug(?) with QUERY_HAS_FPU to make ports/cmake also
work in MinGW (bug 318).
- libmpg123:
-- Make mpg123.h.in usable again with MPG123_NO_CONFIGURE,
for external uses (bug 313).
-- Use predefined MPG123_API_VERSION in mpg123.h.in for the same.
-- Better handle the ssize_t situation via typedef mpg123_ssize_t, less
likely to be broken in future MSVC versions.
-- Fix an integer constant definition for the most negative 32 bit numnber to
avoid justified compiler complaints.
- libsyn123:
-- More support for MPG123_NO_CONFIGURE.
-- Optionally use predefined SYN123_API_VERSION in syn123.h.in for the same.
-- Add a cast to silence integer sign warning for offset in muloffdiv64()
(bug 317)
- libout123:
-- Pulse module advertises wider format support now, not
just s16. This makes mpg123 -e s24 work with it, not just out123.
-- Optionally use predefined OUT123_API_VERSION in out123.h.in for
non-configure use.
-- Fix sndio output to properly query device format support and get
default fomat on FreeBSD (bug 314).
v0.3.2
-minor fix: focus change when delete in queue
-invidious auto select
-update: add links to gstreamer and youtube-dl.
-Merge pull request #2 from jim4067/patch-1
v0.3.1
-refactor: avoid unwrap
Fixes:
-Fixed possible crash when playing library items with large amounts of tracks.
-Fixed not saving last playlist if application closed directly after.
-Fixed not properly handling loading invalid album art from API.
-Fixed not re-enabling the search box when pasting an ID.
-Fixed showing incorrect artist in context when track had multiple artists.
Changes:
-Added a new tab to search for searching in liked tracks.
-Search results for tracks now show album name.
-Both sidebars now have an adjustable width.
-Reworked audio features for improved accuracy.
-Search box is now automatically selected when opening search.
-Sorting in tracks list is now case-insensitive and ignores "The" prefixes.
-Added an option to embed title bar into toolbar (enabled by default).
-Album cover art, and artist covers, are now loaded asynchronously.
-Playlists no longer refresh if they haven't changed since last being loaded.
-Artist albums are now grouped by category.
pkgsrc changes:
---------------
* Add patches to explicitly include stdarg.h in header files that use
va_list. They could be removed if the following pull request is
accepted:
https://github.com/alsa-project/alsa-lib/pull/169
* Bump revision.
ver 0.22.10 (2021/08/06)
* protocol
- support "albumart" for virtual tracks in CUE sheets
* database
- simple: fix crash bug
- simple: fix absolute paths in CUE "as_directory" entries
- simple: prune CUE entries from database for non-existent songs
* input
- curl: fix crash bug after stream with Icy metadata was closed by peer
- tidal: remove defunct unmaintained plugin
* tags
- fix crash caused by bug in TagBuilder and a few potential reference leaks
* output
- httpd: fix missing tag after seeking into a new song
- oss: fix channel order of multi-channel files
* mixer
- alsa: fix yet more rounding errors
Lilypond is seemingly universally broken in pkgsrc builds at present.
(music21 upstream had considered removing it as a dependency for
another reason, but seem to have reversed course.)
libaudec (lib audio decoder) is a wrapper library over minimp3, sndfile and
libsamplerate for reading and resampling audio files, based on Robin Gareus'
audio_decoder code.
libaudec supports all formats supported by sndfile, in addition to MP3.
This library is meant to be linked in statically to larger projects.
Until version 1.0 is released, the API is subject to change.
libaudec is released under the GNU Affero GPLv3+.
0.8.1
-Release 0.8.0 had a minor bug which could result in a compilation error for
non-default build configurations, e.g. if notifications are disabled. 0.8.1
fixes this.
0.8.0
Maintenance:
-Show album art when playing 'similar tracks' (#354)
-Don't panic if user quits login process (#479)
-Handle commands (e.g. h, j, k l) in select artist modal (#560)
Features:
-Make command key configurable (#487)
-Add album cover to notification (#563)
-Add command line flag for custom config filename (#565)
21.08
New Features:
Introduced an experimental FNA-only DllMap implementation for .NET 5
Note that modern .NET is still not supported by FNA
Update to FNA3D 21.08
Update to FAudio 21.08
Fixes:
SDL2_FNAPlatform:
By default, minimize on focus loss when fullscreen on Windows
Fix a potential hole in Ctrl+V release detection
AudioEngine:
Constructor now properly throws NoAudioHardware when no audio hardware is present
Fix a memory leak on engine disposal
XACT: Invalid file paths properly throw FileNotFound again
* Convert to use meson to build.
Changelog:
1. Notes for end users
1. Support for LDAC and AptX bluetooth codecs, plus "SBC XQ" (SBC with
higher-quality parameters)
2. Support for HFP bluetooth profiles
3. Support for Bluetooth A2DP AVRCP Absolute Volume
4. ALSA path configuration files can now be placed in user home directory
5. module-virtual-surround-sink rewritten
6. More options for module-jackdbus-detect
7. Improved hardware support
1. SteelSeries Arctis 9
2. HP Thunderbolt Dock 120W G2
3. Behringer U-Phoria UMC22
4. OnePlus Type-C Bullets
5. Sennheiser GSX 1000/1200 PRO
8. New udev variable: PULSE_MODARGS
9. max_latency_msec argument added to module-null-source
10. module-filter-apply can take filter parameters from device properties
11. module-match can now be loaded multiple times
12. Improvements to FreeBSD support
13. Windows support added to Meson
14. Additional commands for pactl
15. Card profiles can be set to sticky
2. Notes for application developers
1. New API for sending messages from clients to PulseAudio objects
2. New mechanism for applications to disable shared memory on their
connection to PulseAudio
3. Notes for packagers
1. Autotools build system have been dropped
2. The startup script can now read additional configuration from the /etc/
pulse/default.pa.d/ directory
3. Option to build client library and utilities only
4. Avoid loading X11 modules on Wayland (GNOME-only for now)
5. OSS support is now configurable in Meson
6. Valgrind support is now configurable in Meson
A chorus effect inspired by the one found in certain well-known Japanese
vintage analog synthesizers (You Know which).
This audio effect supports a variety of audio and plug-in frameworks: DSSI,
JACK (stand-alone command line program), LADSPA, LV2, VST2
2.2.2
* The MIDI router now handles out-of-range parameters in a smarter manner (#891, thanks to @jjceresa)
* Keep pedaling effective when the same note is played more than once (#905, thanks to @jjceresa)
* Select soundfont samples by frequency instead of midi note numbers (#926, thanks to @Naturseptime)
* Fix the sequencer's event ordering for NoteOn vel=0 events (#907)
* libfluidsynth's import library was broken for MinGW builds (#874)
* fluidsynth.exe short option -Q not working (#915, thanks to @pedrolcl)
* Precompiled Android binaries didn't work (#894, #897)
* Fix openMP detection for XCode 12.5 (#917)
* Make audio.jack.autoconnect connect all available ports (#920)
* Prevent MIDI Player from continuously suppressing notes (#935, thanks to @albedozero)
* fluidsynth.pc now includes private libraries for static linking (#904)
* Fix typos in code and documentation (#939, thanks to @luzpaz)
ympd is a lightweight MPD (Music Player Daemon) web client that runs
without a dedicated webserver or interpreters like PHP, NodeJS or Ruby.
It's tuned for minimal resource usage and requires only few dependencies.
v0.2.11
-bugfix: status bar in main activity.
v0.2.10
-finished api for kugou.
v0.2.9
-bugfix: D in queue not working.
v0.2.8
-add License for GPLv3 for netease api code
-migu album cover works.
-migu lyric and download works.
Terminal Music Player written in Rust.
As a contributor of gomu, https://github.com/issadarkthing/gomu I met serious
problems during development. The main problem is data race condition.
So I basically rewrite the player in rust, and hope to solve the problem.
Changes since 50.2:
DIN Is Noise 51.1:
* improved DIN font *
! fixed drone arrow defaults save/load !
DIN Is Noise 51:
+ drone is anchored or launched on creation
anchored means stays fixed at the place of creation
launched means 'flies' off based on its velocity and gravity
try with Menu > Drone Tools > Add / Wand
set at Menu > Drone Params > Defaults
+ set velocity +/ acceleration vectors of drones to presets via Menu > Drone Params > Motion > Set velocity/acceleration
+ presets are +ve or -ve vertical, horizontal, velocity, acceleration and zero
+ auto flip (clock < > anti-clock) auto rotating velocity/acceleration vectors every some degrees
+ via Menu > Drone Params > Auto flip > Set / Unset / Toggle
+ default 'every some degrees' is 90 degrees
+ gravity
+ presets for gravity vector
0, left, right, up and down
+ gravity tracks mouse position
+ click Gravity > Mouse
+ gravity tracks the first among selected drones
+ click Gravity > Drone
! as drone selection changes, gravity may track a different drone !
- removed Menu Drone Params > Track gravity
+ mesh polygon filling per drone color
* color of a launched drone is same as color of the launcher
* try changing color of the launcher as drones are launched
* changed color of velocity/acceleration vectors to move away from green (used for selection) and red (used for errors)
* cyan = color of velocity vector of all drones
* (reddish) magenta = color of acceleration vector of all drones
* changed arrow visualisation of velocity +/ acceleration vector of all drones
* Head
* edit the position of the arrow tip
* can go 'above' the vector tip ie > 1.0
* can go 'below' the drone location ie < 0.0
* can be on the body ie 0 <= tip <= 1.0
* Shoulder Position
* edit position of the arrow's shoulder tips
* Shoulder Width
* edit width of the arrow's shoulder
+ Cap or Decap the arrow
+ set default arrow head, shoulder position and width, cap from Menu > Drone Params > Defaults
+ used when adding & wanding drones
+ change existing drone's velocity/acceleration vector arrow params via Menu > Drone Params > Visual
+ improved geometric chuck
+ on a chuck with N drones, the first N - 1 drones have trail set to 0
+ the last drone has trail set to 10000
+ toggle auto reset trails
+ Menu > Drone Params > Chuck > Auto reset trails
+ 2 changes above aid visualisation and experimentation instead of manual trail
resize/reset every time after changing a chuck param
+ toggle chuck outline
+ click Menu > Drone Params > Chuck > Draw chuck outline
+ aids screenshotting
+ chuck outline drawn per drone color
* default scale/rotate drones center to microtonal keyboard center
* default selected range to C Eb
+ mouse wheel on microtonal keyboard to scroll along horizontal
+ press SHIFT and scroll to scroll along vertical
* short form of echo command is .
* improved bpm handling of drone pendulums and meshes
* improved drone trail handling/display
* close menu after setting modulation direction
! fixed bug in zoom of curve editor when mouse slider is active !
! fixed draw crosshairs on drone mesh preview !
21.07
New Features:
Controller GUIDs and SDL_GameController mappings are printed on device connect
Update to FNA3D 21.07
Update to FAudio 21.07
Fixes:
Fix the Any CPU configuration in FNA.sln
### libopenmpt 0.5.10 (2021-07-04)
* S3M: Honor the Stereo flag not being set. This improves the sound of some
tunes like Turbulence by Purple Motion.
* S3M: Detect MPT 1.0 alpha versions which didn't set the Stereo flag. In this
case, the unset Stereo flag is also ignored because MPT 1.0 alpha used the
default S3M channel panning anyway.
* S3M: Only for OPL instruments the high sample rate bits should be ignored;
for PCM instruments they are clamped to 65535 Hz.
* MOD: Do not apply ProTracker loop length quirk to MODs that could have been
made with Scream Tracker (fixes Soul-O-Matic by Purple Motion).
* AMF (DSMI): Format revisions 1 and 9, as well as early (technically
malformed) revision 10 files, are now supported. Surround panning commands
and instrument number without note are now converted correctly.
* AMF (DSMI): Patterns and samples were not read correctly in some files
(e.g. AVOID.AMF).
* GDM: Correctly import extra-fine portamentos.
* mpg123: Update to v1.28.0 (2021-06-05).
* ogg: Update to v1.3.5 (2021-06-04).
* stb_vorbis: Update v1.21 commit 8e51be04dc7dcee462e1f09e410faceab52cc6d2
(2021-07-02).
Changelog:
Core
Release v1.2.5
A52 Output plugin
pcm_a52: Don't move bytes within the outbuf
pcm_a52: Don't pass EAGAIN errors from the slave to the caller
pcm_a52: Determine virtual hardware pointer upon slave pointer
Automatic upmix / downmix plugins
upmix: complete generalizing format
Jack PCM plugin
jack: add option to allow non-jack-aligned period size
OSS Mixer -> ALSA Control plugin
oss: fix the config (port -> device)
PulseAudio -> ALSA plugin
pulse: pcm - handle reading pulse stream hole
USB stream plugin
usb_stream: use snd_config_get_card() to decode the card number
Changelog:
Core
Release v1.2.5.1
ALSA Control (alsactl)
utils.c: Include limits.h explicitly to fix build on musl
alsactl: load_state: Only delete config if one was loaded
alsactl: load_state() - initialize config variable for the open_failed case
alsactl: fix lock_fd unlock in load_configuration() - error path
alsactl: state - fix ‘item’ may be used uninitialized gcc warning
alsactl: check for error values from snd_config_get...()
alsactl: init() - return error value from snd_card_iterator_sinit() call
alsactl: return error value in dump_config_tree()
alsactl: fix the nested iteration
Audio Transfer utility
axfer: fix wrong calloc() item size in allocate_containers()
alsatplg (topology)
topology: fix few coverity detected defects
topology: fix potential null pointer from strchr
aplay/arecord
arecord: Inform users when 8-bit sampling is used on tty
Revert "aplay: try to use 16-bit format to increase capture quality"
aseqnet
added an option to aseqnet to optionally set the midi process name
1.2.5.1
Core
Release v1.2.5.1
Fix EXPORT_SYMBOL attribute for clang
configure: check if eaccess() is available
Control API
control: remap - fix an infinite recursive call in the async callback
control: remap - fix uninitialized value in parse_map_vindex()
PCM API
pcm: direct - remove dead code
pcm: softvol - fix early exit in add_tlv_info()
pcm: remove extra NULL checks in snd_pcm_dshare_open()
pcm: remove extra NULL checks in snd_pcm_dsnoop_open()
pcm: remove extra NULL checks in snd_pcm_dmix_open()
pcm: direct - fix pcmp error path in _snd_pcm_direct_new()
Timer API
timer: remove dead code in _snd_timer_hw_open()
Use Case Manager API
configure: check if eaccess() is available
ucm: include sys/wait.h to fix build on Android
ucm_exec.c: Include limits.h explicitly to fix build on musl
ucm: compound_merge() - fix use after free (and logic)
ucm: fix possible memory leak in parse_verb_file()
ucm: fix out-of-array access in rval_device_lookup_init()
ucm: check error value in parse_lookup_query()
ucm: fix possible NULL pointer dereference in uc_mgr_exec()
ucm: find_exec() - fix memory leak (dir)
ucm: fix if_eval_path() - access NULL pointer
ucm: fix use after free in if_eval_regex_match()
ucm: fix error path in execute_cfgsave()
ucm: fix _alibpref string (add '.' delimiter to the end)
ucm: add _alibpref to get the private device prefix
Configuration
conf: snd_config_get_card() remove unused assignment
conf: remove dead code in snd_config_get_card()
conf: fix load_for_all_cards()
1.2.5
Core
Release v1.2.5
control: add missing src/conf/ctl/Makefile.am
ucm: add LibraryConfig support
control: remap plugin - initial version
configure: bumb version to 1.2.5pre1 (for CI tests)
Config API
conf: add snd_config_make_path() function
conf: add snd_config_is_empty() function
conf: add snd_config_merge() function
conf: introduce snd_config_get_card() function
Control API
control: remap - add no-op when the remapping is not active
control: remap - don't allow I/O on renamed IDs
ucm: add LibraryConfig support
control: add empty plugin
control: remap plugin - add docs
control: doc - create controls plugin page
control: remap plugin - initial version
control: add _snd_ctl_open_child()
control: shm - add missing continue to _snd_ctl_shm_open()
ucm: move __snd_ctl_ascii_elem_id_parse prototype to control_local.h
control: add __snd_ctl_add_elem_set() helper
control: add snd_ctl_elem_id_compare_numid() function
control: rename snd_ctl_elem_id_compare() to snd_ctl_elem_id_compare_set()
control: fix the subdevice fields comparison in snd_ctl_elem_id_compare()
control: better docs for snd_ctl_elem_id_compare()
control: add snd_ctl_elem_id_compare() function
control: snd_ctl_ascii_elem_id_get() - do not show unset numid
conf: introduce snd_config_get_card() function
control: improve snd_ctl_add_*_elem_set functions (access flags)
control: fix iformation -> information typos
Control Plugin API
control: remap plugin - add docs
control: doc - create controls plugin page
HWDEP API
conf: introduce snd_config_get_card() function
I/O API
output: Add snd_output_buffer_steal() function
Mixer API
mixer: simple - Fix "Capture Volume" and "Capture Switch" being seen as global controls
mixer: simple - use for loop in base_len()
mixer: simple - Unify simple_none: base_len() exception handling
PCM API
pcm: hw - correct the comment in snd_pcm_hw_state()
pcm: hw - fix again snd_pcm_hw_state() when the driver was disconnected
pcm: hw - fix snd_pcm_hw_state()
pcm: fix open in direct plugins - wrong pointer assignment
pcm: direct - move the direct struct init to _snd_pcm_direct_new()
pcm: dshare - fix shared memory pointer check
ucm: add LibraryConfig support
pcm: empty plugin - fix the docs
pcm: softvol - improve TLV data check for new configs
pcm: fix snd_pcm_plugin_status()
conf: introduce snd_config_get_card() function
pcm: softvol - make snd_pcm_parse_control_id private
pcm: softvol - do not set TLV access flags for the switch
pcm: pcm_ioplug - fix the avail_update mmap capture copy issue
pcm: share: Pass appl_ptr and hw_ptr in snd_pcm_status()
pcm: null: Pass appl_ptr and hw_ptr in snd_pcm_status()
pcm: ioplug: Pass appl_ptr and hw_ptr in snd_pcm_status()
pcm: direct: Fix the missing appl_ptr update
pcm: dmix/dshare - delay calculation fixes and cleanups
pcm_plugin: set the initial hw_ptr/appl_ptr from the child pcm
pcm: rate - fix the capture delay values
pcm: rate - use pcm_frame_diff() on related places
pcm: plugin - fix status code for capture
pcm: rate - use pcm_frame_diff() in snd_pcm_rate_playback_internal_delay()
pcm: ioplug - fix the delay calculation for old plugins
pcm: rate - tidy up snd_pcm_rate_avail_update()
pcm: ioplug - fix the delay calculation in the status callback
Revert "pcm_plugin: fix delay"
pcm: plugin - optimize sync in snd_pcm_plugin_status()
pcm: plugin - tidy snd_pcm_plugin_avail_update()
pcm: plugin status - revert the recent changes
pcm: plugin status - fix the return value (regression)
pcm: fix __snd_pcm_state() return value
pcm_multi: remove dead assignment from _snd_pcm_multi_open
pcm: remove dead assignments from snd_pcm_rate_(commit_area|grab_next_period)
pcm: Fix a typo in SND_PCM_AUDIO_TSTAMP_TYPE_LAST definition
pcm: Add snd_pcm_audio_tstamp_type_t constants
pcm: set the snd_pcm_ioplug_status() tstamp field
pcm: snd_pcm_mmap_readi - fix typo in comment
RawMidi API
ucm: add LibraryConfig support
conf: introduce snd_config_get_card() function
rawmidi: fix memory leak in snd_rawmidi_virtual_open
Sequencer API
seq: fix snd_seq_parse_address()
ucm: add LibraryConfig support
Timer API
timer: fix sizeof operator mismatch in snd_timer_query_hw_open
Topology API
topology/pcm.c: remove duplicated AC97 hw format
topology: fix 'parse_tuple_set() - remove dead condition code'
topology: sort_config() cleanups - use goto for the error path
topology: parse_tuple_set() - remove dead condition code
topology: tplg_decode_pcm() - add missing log argument (compress)
topology: tplg_add_widget_object() - do not use invalid elem_ctl
topology: tplg_pprint_integer() fix coverity uninitalized variable error
topology: use inclusive language in documentation
topology: use inclusive language for fsync
topology: use inclusive language for bclk
Use Case Manager API
ucm: compound_merge - use snd_config_merge()
ucm: recognize first '-' character as ignore error for exec/shell
ucm: cfg-save - allow to save the sub-tree including root keys
ucm: libconfig - merge not override items
ucm: libconfig parser - fix memory leaks
ucm: add cfg-save command
ucm: fix memory leak in execute_cset()
ucm: parse LibraryConfig also in the toplevel file
ucm: fix regexec() REG_NOMATCH state handling for define regex
ucm: add exec sequence command
ucm: Fix sysw sequence command not working when requesting to ignore errors
ucm: fix the local ucm control device name caching
ucm: limit the master config scan to conf.virt.d
ucm: fixed find-device substitution (non-continuous PCM devices)
ucm: allow to escape the trailing variable substitution character
ucm: find-device / pcm - the ctl_list may be empty
ucm: add missing uc_mgr_card_close() call to snd_use_case_mgr_open()
ucm: cosmetic code reshuffle in rval_lookup_main()
ucm: fix uc_mgr_has_local_config()
ucm: rewrite device value only when the local config exists
ucm: return error if fixedboot_list is empty
ucm: return error if boot_list is empty
ucm: ucm_filename() - avoid double //
ucm: handle better the system() call
ucm: add LibraryConfig support
ucm: add ${ConfLibDir} substitution
ucm: add ctl-remove sequence command to delete controls from UCM
ucm: add cset-new sequence command to create new controls from UCM
ucm: move __snd_ctl_ascii_elem_id_parse prototype to control_local.h
ucm: add Path condition type
ucm: rename sysset to sysw
ucm: warn about unknown sequence commands
ucm: implement sysset sequence command
ucm: ucm_main.c - cosmetic tab cleanups
ucm: add _fboot / FixedBootSequence
ucm: fix two error messages
ucm: add ${find-card} and ${find-device} substitutions
ucm: uc_mgr_substitute_tree() fix use after free
ucm: fix possible memory leak in parse_verb_file()
ucm: fix bad frees in get_list0 and get_list20
/Makefile.am
Makefile: Add README.md to EXTRA_DIST
/include/Makefile.am
include: try to fix the out-of-source-tree build
include: fix out-of-source-tree build
include: fix SND_LIB_VER() macro
include: add SND_LIB_VER() macro
control: remap plugin - add docs
Configuration
conf: snd_config_merge() - substitute non-compound config handles
conf: snd_config_merge() - merge (concat) correctly arrays
conf: return count of items in snd_config_is_array()
conf: print quoted string more wisely
ucm: cfg-save - allow to save the sub-tree including root keys
conf: fix snd_config_merge() - merge schema
conf: load the card specific configurations to the config sub-tree
conf: add snd_config_make_path() function
conf: add snd_config_is_empty() function
conf: _snd_config_evaluate - remove 'delete compound members' call
conf: fix snd_config_substitute() - memory leak
conf: fix snd_config_merge() - double free in overwrite mode
alsa: conf - use card number roots for device redirects
conf: extend load_for_all_cards hook (id/value table)
control: add missing src/conf/ctl/Makefile.am
conf: usb - correct 'SB Omni Surround 5.1' iec958 device
conf: USB - add "Cmedia Audio" to USB-Audio.pcm.iec958_device
Remove non-existent SPDIF output on Dell AE515
conf: No SPDIF on Plantronics 3220 headset
conf: add snd_config_merge() function
conf: add /var/lib/alsa/conf.d directory lookup
conf: add /var/lib/alsa/card<NUMBER>.conf.d directory lookups
conf: extend hook load_for_all_cards
conf: make ctl.default and sysdefault devices more universal
conf: Fix invalid free at parse_args()
conf: fix memory leak on the error path in parse_args()
conf: snd_config_save() - print arrays as [] not the internal representation
conf: improve the tabulator level prints
conf: introduce snd_config_get_card() function
conf: HDA-Intel: increase the max number of HDMI/DP output to 11
conf: USB - add "Xonar U7 MKII" to USB-Audio.pcm.iec958_device
conf: fix return code in _snd_config_load_with_include
confmisc: fix memory leak in snd_func_concat
conf: fix get_hexachar() return value
conf: fix use after free in _snd_config_load_with_include
Documentation
control: doc - create controls plugin page
Dynamic Loader helpers
dlmisc: fix snd_plugin_dir locking for not DL_ORIGIN_AVAILABLE
dlmisc: the snd_plugin_dir_set / snd_plugin_dir must be declared even for \!DL_ORIGIN_AVAILABLE
I/O subsystem
output: Add snd_output_buffer_steal() function
Kernel Headers
topology: use inclusive language for fsync
topology: use inclusive language for bclk
Test/Example code
test: audio_time - fix timestamp2ns() and usage()
test/audio_time: Make use of SND_PCM_AUDIO_TSTAMP_TYPE constants
Utils
utils/alsa.m4: another quick fix for the brackets
utils/alsa.m4: a quick fix for missing end brackets
utils/alsa.m4: update for newer autoconf.
ver 0.22.9 (2021/06/23)
* database
- simple: load all .mpdignore files of all parent directories
* tags
- fix "readcomments" and "readpicture" on remote files with ID3 tags
* decoder
- ffmpeg: support the tags "sort_album", "album-sort", "artist-sort"
- ffmpeg: fix build failure with FFmpeg 3.4
* Android
- fix auto-start on boot in Android 8 or later
* Windows
- fix build failure with SQLite
May 22 2021
abc2midi: treble-8 not applied in K: or V: commands after October 19 2020
update. For example,
X:1
T: transposition
L:1/2
M:C
K:none clef=treble-8
V:1
cz
V:2
zc
The note c should be played with midi pitch 60 instead of 72.
James Allwright made minor fixes to parseabc.c and store.c, in order
to get these options working again.
May 25 2021
James Allwright added more security checks to stop the
parser from reading numbers beyond the largest integer. Changes
were made to parserabc.c and midi2abc.c
The abc2abc -s spacing function was modified to ignore certain
time signatures like M: none or M:7/8. The code for dealing with
3/2, 3/4, 3/8 ... time signatures was improved.
Version 1.5.0
* added media library plugin (experimental)
* added PipeWire plugin (experimental)
* added built-in CUE editor
* added m4b support in the ffmpeg plugin
* added option to enable CRC checking in the mpeg plugin
* added ID3v1/ID3v2 charset detection using librcd library in the mpeg plugin
* added WebP format support for cover image
* added groups rebuilding after playlist updating
* added metadata formatter optimization
* added "%dir()" function in the metadata formatter
* added feature to integrate widgets to the main interface from plugins
* added feature to execute external command in the fileops plugin
* improved visualization synchronization
* improved lyrics plugin:
- added widget mode
- show text of the current playing song (in the widget mode only)
- changed user interface
* improved qsui plugin:
- added feature to add dock widgets from plugins
- added feature to change tab bar position
- added icons to the file system browser menu
- added feature to place dock widgets in the multiple lines
- removed "Actions" submenu, using "Tools" menu instead
* improved skinned plugin:
- added playlist color settings
- moved "Show playlists" option to "Playlist" submenu
- moved "group tracks" and "show header" options to "Playlist" submenu
* removed some deprecated API usage
* removed obsolete code
* changed minimal FFmpeg version to 3.4
* updated Portuguese translation (Sérgio Marques)
* updated Dutch translation (Heimen Stoffels)
* updated Polish translation (mrerexx)
* updated Galician translation (Delio Docampo Cordeiro)
* updated Spanish translation (Joel Barrios)
* updated Russian translation (Ilya Kotov)
* updated Ukrainian translation (Gennady Motsyo)
* updated French translation (Adrien Vigneron)
* updated Indonesian translation (Andika Triwidada)
* updated Greek translation (Dimitrios Glentadakis)
* updated Italian translation (Luigi Toscano)
* updated German translation (Ettore Atalan)
* updated Finnish translation (Jiri Grönroos, Kimmo Kujansuu)
Changes in Rubber Band v1.9.2
* Introduce a built-in FFT option to be a good default when no
requirements point to a particular external library preference
* Fix potential crash following some reconfigure options. Thanks
to Michael Tyson for reporting this
* Ensure Accelerate is listed in generated pkg-config if required
* Check for existence of sincos in configuration
* Fix host identification when cross-compiling
The API is unchanged and the library is binary compatible with
version 1.7.
1.28.0
------
- build:
-- Fix up the build to actually build all library objects with libtool
consistently, also ensuring no pointless static archives for output
modules.
-- Adapted things to autoconf 2.71, requiring 2.69 now (the latter tested
on Debian, with their patches).
-- Improved configure to be more useful --with-default-audio to define
the search order, fix static build for --with-audio being a list
(just choosing the first one).
-- Ensure consistent use of LINK_MPG123_DLL in headers.
- build (ports/cmake):
-- Thanks to Evgeni Poberezhnikov for working with us on that.
-- Fix up ports/cmake to really work in MSVC also for users of the lib
(tested in vcpkg, bug 310).
-- Hardcode ports/cmake CPU detection for x64 and ARM as
CMAKE_SYSTEM_PROCESSOR is useless crap (bug 298 for real).
-- Add missing io.h for _setmode() MSVC warned about (bug 311).
-- Added BUILD_NO_LARGENAME define to be used by MSVC builds. Note that
an MSVC build of libmpg123 does not support 64 bit file offsets.
That would need more morting to the explicit API. Thanks to MS for
making off_t even more messy and less useful.
-- Added JACK output, fixed handling of compat_str there and in win32_wasapi.
- libsyn123: Fix syn123_mix() to actually do intermediate conversion
when input and output encoding are the same but non-float. This makes
out123 --mix work with s16 input and output, which is not that special!
- libmpg123: Fix misguided handling of part2_3_length checks in
III_get_scale_factors_1() and III_get_scale_factors_2() which invalidated
decoding of a mono source encoded as ms+i-stereo (bug 312). This was
a regression introduced with version 1.25.7.
- libout123:
-- Print basic module loading errors only for last one in list.
This enables use of an output module search list that anticipates module
files not installed with the main package.
-- Fixes for win32_wasapi build with MSVC.
21.06
New Features:
Update to FNA3D 21.06
Update to FAudio 21.06
Fixes:
Removed the VS2019 app.config workaround
Fix a possible crash when opening the default Microphone
Maintenance:
-Fix connection issues by enabling the AP resolver in librespot (#535)
-Bump reqwest form 0.9 to 0.11 (#538#539)
-Fix nerdfont pause/stop glyphs (#540)
Summary of changes since 20200412 release:
- Add support for saving MOD files
- Fix conflict in MIDI setup when ALSA and OSS are both available
- Allow setting program on MIDI drums
- Fix instrument and sample panning overwriting channel panning
- Fix issues related to portamento with Amiga slides
- Support compressed stereo samples in ITI/ITS files
- Convert XM/MOD EA0/EB0 to D00 when loading
- Clamp S3M mixing volume to valid values on save
- Improve autovibrato accuracy
- Fix noteless instrument numbers updating instrument panning
- Fix handling of zero-value linear slides
- Read extended OpenMPT version information
- Fix instrument sample mapping in the IMF loader
- Fix memory access bug in the MTM loader
21.05
New Features:
Added SetAudioTrackEXT extension
Update to FNA3D 21.05
Update to FAudio 21.05
Fixes:
SDL2_FNAPlatform:
Changing window focus no longer unsets fullscreen, except on X11
Using "alt-tab" to switch focus out while fullscreen on Windows no longer causes error beeps when attempting to switch focus back in
Fix mouse support on Wayland
Changes since v1.46
v1.47 - xx.05.2021
- Bugfix: The Lxx (Set Envelope Pos) XM effect was broken :(
- Added support for loading FLAC samples (w/ loop/vol./name information)
- Added support for loading '8-bit unsigned/32-bit float/64-bit double' AIFFs
- Added support for loading XMs with ADPCM sample compression (ModPlug Tracker)
- The windowed-sinc LUT now has 8192 phases instead of 4096 for a theoretical
small interpolation precision improvement.
- Bugfix: Fixed a bug with "Save rng." (Smp. Ed.) related to data after/around
the loop end point.
- "Save rng." (Smp. Ed.) now asks if you want to overwrite an existing file
- Bugfix: The windowed-sinc interpolation was slightly wrong near the loop-start
point on looped samples. Was only audible on super-tight loops.
- Mixer now uses 32-bit single-precision floats instead of 64-bit
double-precision. The error difference in the audio output is +/- 1 (16-bit),
which is only -90dbFS and not really audible. This should give a performance
boost for devices that are slow with handling double-precision floats.
- Samples now have units of "samples" instead of bytes (in the sample editor).
This means that 16-bit samples will show the same numbers as 8-bit samples.
- The sample editor is now drawing interpolated sample points when zoomed in
- Fixed a bug where the "Range" button in Smp. Ed. had problems if you had
marked sample data after 65535 sample points.
- Fixed a problem where the mouse pointer could be broken in fullscreen mode
at some screen resolutions (f.ex. 1600x900).
- Windows bugfix: Prevent ever-increasing memory usage while minimized.
Possibly a bug in SDL_RenderClear(). Might've affected other systems too.
- Bugfix: Exit text edit mode when dropping a file onto the window. Fixes
possible text cursor overflow issues.
- Bugfix: Some instrument/sample names could contain junk at the end after being
saved (.XM/.XI).
- Bugfix: If you previously used an audio device that was disconnected before
starting the program, it will now resort to the default audio device without
reverting all your audio settings (buffer size, bit depth, frequency).
- Fixed possible crash if a channel's resampling rate/delta was zero (very rare)
- If you copy all the sample data in a sample, it will also copy over the sample
information (loop, volume, finetune, name etc.) when you paste it to a new
sample.
- The "Get maximum scale" button in the "Volume" tool in Smp. Ed. will now
get the actual scale instead of limiting it to the start/end vol max range.
This means that you need only one pass to normalize the amplitude on a very
quiet sample.
- The scopes now use linear interpolation for sample points in "Lined" mode
- Fixed a mistake in the S3M importer where "Set speed" commands with a
parameter of >$1F were removed instead of being clamped.
- Clearing the instrument (numpad delete key) also clears instrument name now
- Added new keybinding: Press Ctrl + "numpad+"/"numpad-" to increase or decrease
the master volume by 16.
- Updated the help text
- A *lot* of variable/function names have been changed to be easier to understand.
This causes a mega-commit to the GitHub repo, and I'm sorry for that if you
have a fork of it that you want to keep updated. :/
- Code cleanup (big one)
- mpg123-sun is, quite literally, impossible to install.
It's always built-in to mpg123 where it's available.
- mpg123-oss is built-in to mpg123 on operating systems where it's useful.
ok'd by thor.
This updates the mpg123 version and also removes packaging cruft.
Among that, a never-working patch for madvise and a very old i586
assembly source are gone. The output modules are now installed without
libtool files, just as .so (or .dylib). A future update to 1.28 will
probably also get rid of the static libraries (upstream fixed the build
to work around pkgsrc's wrapped libtool which ignores the autoconf
macros to trigger non-static default build).
These are the upstream changes:
1.27.2
------
(Trying some svn tag discipline: 1.27.1 has been tagged before, but
not released. Let's increment for any change.)
- Removed ports/Xcode, ports/cmake should handle that case.
- Ensure debug.h is included last where it matters to avoid
conflicts with debug/warning macros in system headers
(bug 308).
- Fix some debug/printf integer casts for 32 bit platforms (bug 309).
1.27.0
------
- libmpg123:
-- Running on precomputed tables now, no need to call
mpg123_init() anymore. That and mpg123_exit() are both just
empty shells. You can omit them if you do not care about earlier
libmpg123. You can check for MPG123_API_VERSION >= 46.
-- Added API that avoids enums, mapped-to by default unless
MPG123_ENUM_API is defined.
- libout123:
-- Added API that avoids enums, mapped-to by default unless
MPG123_ENUM_API is defined.
-- Added device enumeration for win32, win32_wasapi, alsa, pulse.
This increments the output module ABI version to 3.
-- You can choose output devices now on Windows.
-- Changed default output module order to put pulse before alsa since
we now ensure that pulse is not inadvertedly started by the
autospawn feature. This improves the experience on desktop
systems with pulse where the alsa to pulse use causes glitches.
Note that on a modern Linux desktop (Ubuntu), you will not
escape an instance of pulseaudio being started, with even the
enumeration of the ALSA default device summoning the daemon.
If you _want_ sound daemon autospawn behaviour on other platforms,
you need to trigger it outside of libout123.
- examples: Update for dropped mpg123_init(), more sensible
copyright notes.
- out123:
-- safer limiting of maximum playback rate
-- Added --list-devices.
- mpg123:
-- Fix --continue output to print track_count+1 as continue
position after hitting the end of playlist. Makes scripts/conplay
go to back to the beginning again (regression in 1.24.0, bug 250).
-- Remote control API version 9 with @I { .. @I } wrapping of ID3 and
playlist display.
-- Added --list-devices.
-- Fix console printout on Windows.
-- Fix terminal control logic to better handle cases where stdin or
stderr is not a terminal, also avoid enabling control if you specify
stdin as input file.
- Updated debugging/warning/error message macros to include the function
name.
ver 0.22.8 (2021/05/22)
* fix crash bug in "albumart" command (0.22.7 regression)
ver 0.22.7 (2021/05/19)
* protocol
- don't use glibc extension to parse time stamps
- optimize the "albumart" command
* input
- curl: send user/password in the first request, save one roundtrip
* decoder
- ffmpeg: fix build problem with FFmpeg 3.4
- gme: support RSN files
* storage
- curl: don't use glibc extension
* database
- simple: fix database corruption bug
* output
- fix crash when pausing with multiple partitions
- jack: enable on Windows
- httpd: send header "Access-Control-Allow-Origin: *"
- wasapi: add algorithm for finding usable audio format
- wasapi: use default device only if none was configured
- wasapi: add DoP support
### libopenmpt 0.5.9 (2021-05-16)
* `Makefile` `CONFIG=emscripten` does not pass linker options to the compiler
any more, which caused latest Emscripten to issue warnings.
* The retrigger effect didn't work correctly for OPL instruments in some cases
depending on the chosen output sample rate.
* S3M: Emulate IT short sample retrigger quirk in S3M files saved with
Impulse Tracker and Schism Tracker.
* ProTracker 3.6 doesn't support sample swapping. It is now disabled when
loading a ProTracker 3.6 IFF module.
* Some files with "hidden" garbage patterns were not played correctly since
libopenmpt 0.5.3.
* MOD: E9x retrigger now works the same way as in ProTracker 2.
* MDL: Improve auto-vibrato accuracy.
* 669: Reject files that contain any pattern tempo higher than 15.
* Reduce memory consumption of malformed XPK-compressed files.
* mpg123: Update to v1.27.2 (2021-05-08).
Maintenance:
-Fix build of cover feature
-Revert to old status indicator behavior and add configuration setting (#511)
-Fix volume normalization (#525)
Version 1.4.6
* added application startup optimization
* added X11 session checking in the notifier plugin
* fixed provider settings parsing in the lyrics plugin
* fixed equalizer form in the qsui plugin
* fixed build with the latest ffmpeg version
* updated Portuguese translation (Sérgio Marques)
* updated Italian translation (Luigi Toscano)
* updated French translation (Adrien Vigneron)
Changes:
- Make ALSA the default driver on Linux
- Coreaudio driver failed to initialize on MacOS 11
- WaveOut driver failed to initialize
- COM initialization in WASAPI driver is no longer performed in the caller's context
- WASPI driver now supports reverb and chorus
- Handle SysEx GM/GM2 mode on, GS reset, and XG reset
- Old behaviour of fluid_player_join has been restored to prevent infinite loop in client code
- The Soundfont loader code has been refactored, illegal generators will now be skipped more consequently
Changelog:
1.2.2
Not available
1.2.1
Core
Release v1.2.1
PulseAudio -> ALSA plugin
pulse: Add DEVICE parameter
1.1.9
Core
Release v1.1.9
configure: Fix unexpanded ALSA_DATA_DIR
configure: use $sysconfdir instead of /etc
Alsa support for Maemo SDK (n770)
maemo: Fix a few crashing bugs
Documentation
doc: Add forgotten aaf.txt to EXTRA_DIST
Jack PCM plugin
jack: use correct port names in 50-jack.conf
jack: Support to connect multiple JACK ports with same ALSA channel
jack: Refactoring: Lower indentation
jack: Removing snd_pcm_jack_format_t as it is not used
jack: Replacing jack->channels with jack->num_ports
jack: Moving jack_deactivate() to snd_pcm_jack_hw_free() to speedup the XRUN Recovery
jack: Move jack_activate() and jack_connect() to snd_pcm_jack_prepare()
1.1.8
Core
Release v1.1.8
aaf: AVTPDU transmission periodicity
aaf: Implement Playback mode support
aaf: Load configuration parameters
aaf: Introduce plugin skeleton
/Makefile.am
aaf: Introduce plugin skeleton
A52 Output plugin
a52_close: set slave to NULL to avoid double pcm free in open fcn
AVTP Audio Format (AAF) PCM plugin
aaf: AVTPDU transmission periodicity
aaf: Tx multiple AVTPDUs per media clock tick
aaf: Refactor timeout routines
aaf: Refactor AVTPDU reception routines
aaf: Refactor AVTPDU transmission routines
aaf: Add presentation time tolerance
aaf: do not free twice aaf - snd_pcm_close() is called from snd_pcm_ioplug_delete()
aaf: Add support for direct read/write transfers
aaf: Implement dump() ioplug callback
aaf: Implement Capture mode support
aaf: Prepare for Capture mode support
aaf: Implement Playback mode support
aaf: Load configuration parameters
aaf: Introduce plugin skeleton
Documentation
aaf: AVTPDU transmission periodicity
aaf: Tx multiple AVTPDUs per media clock tick
aaf: Add presentation time tolerance
doc: Fix typo in AAF doc
aaf: Implement Capture mode support
aaf: Implement Playback mode support
aaf: Load configuration parameters
aaf: Introduce plugin skeleton
Jack PCM plugin
Revert "jack: Fix leaks when jack_set_hw_constraint() fails"
OSS Mixer -> ALSA Control plugin
Revert "oss: Fix leaks when oss_hw_constraint() fails"
USB stream plugin
Revert "usb_stream: Fix leaks when us_set_hw_constraint() fails"
pcm_usb_stream: fix signess issues
pcm_usb_stream: remove unused parameter in snd_pcm_us_read()
pcm_usb_stream: fix another leak in snd_pcm_us_open()
1.1.7
Core
Release v1.1.7
Fix typo in configure.ac (--disable-libav)
configure: Require alsa-lib 1.1.6 and newer
configure: change --with-alsaaddondir to --with-alsagconfdir and --with-alsalconfdir
Move rate-lavc to rate-lav subdirectory and update to use libavresample
config/Makefile: make everything modular
configure: add --with-alsaaddondir, add default config files for plugins
/Makefile.am
Move rate-lavc to rate-lav subdirectory and update to use libavresample
config/Makefile: make everything modular
A52 Output plugin
a52: Fix leaks when a52_set_hw_constraint() fails
configure: change --with-alsaaddondir to --with-alsagconfdir and --with-alsalconfdir
Move rate-lavc to rate-lav subdirectory and update to use libavresample
configure: add --with-alsaaddondir, add default config files for plugins
Arcam AV control plugin
arcam-av: Add explicit -lpthread to *_LIBADD
configure: change --with-alsaaddondir to --with-alsagconfdir and --with-alsalconfdir
configure: add --with-alsaaddondir, add default config files for plugins
Documentation
doc: fix makefile, the files should be included to the distribution package unconditionally
Move rate-lavc to rate-lav subdirectory and update to use libavresample
config/Makefile: make everything modular
Jack PCM plugin
jack: Fix leaks when jack_set_hw_constraint() fails
jack: Only allow ALSA periods multiple of JACKd period
jack: Allow build with older alsa-lib
jack: Update poll_fd also in draining state
jack: Avoid call to snd_pcm_avail_update() from JACK thread
configure: change --with-alsaaddondir to --with-alsagconfdir and --with-alsalconfdir
configure: add --with-alsaaddondir, add default config files for plugins
OSS Mixer -> ALSA Control plugin
oss: Fix leaks when oss_hw_constraint() fails
oss/Makefile.am: fix typo
Rate Converter plugins
samplerate: fix unused variable warning
USB stream plugin
usb_stream: Fix leaks when us_set_hw_constraint() fails
usb_stream: Add explicit -lpthread to *_LIBADD
1.1.6
Core
Release v1.1.6
Change FSF address (Franklin Street)
A52 Output plugin
Change FSF address (Franklin Street)
Arcam AV control plugin
Change FSF address (Franklin Street)
Jack PCM plugin
jack: Use correct parameter order for snd_pcm_areas_silence()
jack: Report Xruns to user application
jack: Do not Xrun the ALSA buffer
jack: Use boundary as hw_ptr wrap around
jack: Write only valid values to the internal hw_ptr
Change FSF address (Franklin Street)
1.1.5
Core
Release v1.1.5
PulseAudio -> ALSA plugin
pulse: prevent double-free when pulse_hw_constraint returns error
1.1.4
Core
Release v1.1.4
configure: Fix detection of avcodec.h
configure: enhancing configuration support for alsa plugins
Changelog:
1.2.4
Core
Release v1.2.4
ALSA Control (alsactl)
alsactl: 00main - fix typo in goto label
alsactl: add new -U argument text to man page
alsactl: init - add -U option to disable UCM based init
alsactl: fix the syslog message - add : delimiter after function:line
Audio Transfer utility
treewide: fix typos in manual pages
alsa-info.sh
alsa-info: provide DMI system sku
alsa-info.sh: command -v cleanups
alsa-info.sh: declare variables separately from the assign (coverity)
alsaloop
alsaloop: Fix the silence generation in xrun_sync
alsamixer
alsamixer: remove wrong free(buf) call in read_file()
alsamixer: small optimizations
alsamixer: added configuration file parser
alsamixer: Use a struct for storing color attributes
alsamixer: added mouse support
alsamixer: Replaced hardcoded keys by binding arrays
alsamixer: Fix window_size_changed()
alsatplg (topology)
topology: check for the remove() error (coverity)
topology: fix the error path in load()
alsaucm
alsaucm: Fix ending with quotes commands
aplay/arecord
aplay: fix the wrong count in compute_max_peak() for 16bit+ sample widths
minor aplay man page correction
aplay: Fix typo in error message
treewide: fix typos in manual pages
aplay: capture: write only the amount of read frames
aplay: pcm_read(): return read samples instead of requested upon abort
aplay: pcm_readv(): return read samples instead of requested upon abort
aplay: fix possible string overflow (coverity)
bat (basic audio tester)
alsabat: fix typo
1.2.3
Core
Release v1.2.3
github actions: ubuntu - fix the non-interactive build
github workflow: fix tag fetch
ALSA Control (alsactl)
alsactl: ucm - rename _once command to _boot command
alsactl: allow to compile alsactl without UCM support
alsactl: use the right priority for syslog messages
alsactl: add -D argument to execute also the UCM defaults section
alsactl: redirect alsa-lib errors
alsactl: add initial support for UCM init
alsactl: init - iterate through all cards for the initial settings
alsactl: daemon.c - fix gcc warning in write_pid_file()
alsactl: fix error handling for sched_setscheduler() call
alsactl: avoid needless wakeups in monitor loop.
alsactl: don't exit on EINTR from epoll_wait().
alsa-info.sh
alsa-info.sh: increase version to 0.4.65
alsa-info: initial rpm/deb package info
alsa-info.sh: add ALT to DISTRO list
alsaloop
alsaloop: reduce cumulative error caused by non-atomic samples calculation
alsamixer
alsamixer: suppress _XOPEN_SOURCE compile warning
alsaucm
alsaucm: remove custom rules, alsactl is UCM aware now
alsactl: ucm - rename _once command to _boot command
amixer
amixer: retype to double in convert_prange1() like in convert_prange()
amixer: improve the raw percentual volume rounding
1.1.9
Core
Release v1.1.9
axfer: add an entry of axfer to README
ALSA Control (alsactl)
alsactl: monitor - remove dead code in run_dispatcher() (coverity)
alsactl: simple coverity fix
Audio Transfer utility
axfer/test: fix uninitialized warning
axfer/test: fix uninitialized warning
axfer: Declare global variables as 'extern' in header
axfer: Fix creation of v1.2 headers on big-endian systems
xfer: fix possible minor memory leak in xfer_options_parse_args() (coverity)
axfer: return back unsigned avail variable, do proper retype in xfer-libasound-irq-mmap.c
axfer: coverity fixes
axfer: add missing header file of unit test to distribution
axfer: allow to be compiled with glibc-2.11 or former
axfer: correct invalid usage of escape of itaric text
axfer: supplement value of options for the manual of transfer subcommand
axfer: correct message to notice that help text is implemented
axfer: correct description about snoop mode of libffado
axfer: fulfill section for backward compatibitity for chmap option
axfer: add a section about unit test
alsa-info.sh
alsa-info.sh: cleanups
alsaloop
alsaloop: remove unused assignment warning (coverity)
alsamixer
alsamixer: define _GNU_SOURCE to get exp10
amixer
amixer: define _GNU_SOURCE to get exp10
aplay/arecord
aplay: check the return value for snd_pcm_sw_params_current() (coverity)
aplay: fix the multiple open file descriptors for the raw capture
aplaymidi/arecordmidi
arecordmidi: simple coverity fix
seq: arecordmidi: Add num-events option
1.1.8
Core
Release v1.1.8
Makefile.am: add README.md to EXTRA_DIST
axfer: add support for libffado transmission backend
axfer: add unit test for container interface
axfer: add an entry point for this command
initial version of .travis.yml
rename and update README.md
Audio Transfer utility
axfer: add an explanation about advantages/issues of Timer-based scheduling model
axfer: add an explanation about Timer-based scheduling model
axfer: add an explanation about IRQ-based scheduling model
axfer: add text for compatibility loss of sw parameter in libasound backend
axfer: fulfill manual section for libasound backend
axfer: print help for libasound backend
axfer: fulfill manual section for libffado backend
axfer: print help for libffado backend
axfer: correct description about signal handling
axfer: fix typo in axfer(1) manual
axfer: fix no return statement in print_help() function
axfer: enable each backend to print own help
axfer: print help text of transfer subcommand just for common options
axfer: print help text of list subcommand
axfer: print help text of command entry
axfer: add a section about design of transfer subcommand
axfer: add a section to describe compatibility to aplay(1)
axfer: add a manual for transfer subcommand
axfer: add a manual for list subcommand
axfer: add a manual for entry point
axfer: check whether a terminal is referred for stdio
axfer: truncate parsed arguments before operating subcommand
axfer: use transfer subcommand as a default for compatibility mode to aplay(1)
axfer: use second argument in command line for transmission direction
axfer: apply refactoring in list subcommand for new command system
axfer: apply refactoring to list subcommand for backward compatibility to aplay(1)
axfer: add support for libffado transmission backend
axfer: obsolete some unimplemented options
axfer: add support for timer-based scheduling model with MMAP operation
axfer: add an implementation of waiter for epoll(7)
axfer: add an implementation of waiter for select(2)
axfer: add an implementation of waiter for poll(2)
axfer: add an option for waiter type
axfer: add a common interface of waiter for I/O event notification
axfer: add options for plugins in alsa-lib
axfer: add options for software parameters of PCM substream
axfer: add options for buffer arrangement
axfer: add an option to suppress event waiting
axfer: add support for MMAP PCM operation
axfer: add support for non-blocking operation
axfer: add an option to finish transmission at XRUN
axfer: add options related to duration and obsolete '--max-file-size' option
axfer: add an option to dump available hardware parameters
axfer: add informative output and an option to suppress it
axfer: add a sub-command to transfer data frames
axfer: add support for blocking data transmission operation of alsa-lib PCM API
axfer: add support to transfer data frames by alsa-lib PCM APIs
axfer: add a parser for command-line options
axfer: add a common interface to transfer data frames
axfer: add a unit test for mapper interface
axfer: add support for a mapper for multiple target
axfer: add support for a mapper for single target
axfer: add a common interface to align data frames on different layout
axfer: add unit test for container interface
axfer: add support for a container of raw data
axfer: add support for a container of Creative Tech. voice format
axfer: add support for a container of Sparc AU format
axfer: add support for a container of Microsoft/IBM RIFF/Wave format
axfer: add a common interface to handle a file with audio-specific data format
axfer: add a sub-command to print list of PCMs/devices
axfer: add an entry point for this command
alsaloop
alsaloop: more avail_min cleanups
alsatplg (topology)
topology/topology.c: drop unneeded <dlfcn.h> include
aplay/arecord
aplay: improve available conditions for '--samples' and '--duration' options
aplay: add a paragraph for '--samples' ('-s') option to aplay manual
aplay: delete paragraph for obsoleted '--sleep-min' ('-s') option from aplay manual
1.1.7
Core
Release v1.1.7
Release v1.1.6
ALSA Control (alsactl)
alsactl: lock - fix the array size (gcc warning)
alsactl: use signalfd to catch UNIX signal
alsactl: handle detection of new sound card
alsactl: handle disconnection of sound card
alsactl: obsolete array for maintenance of handlers
alsactl: use a list of source for event dispatcher instead of an array of source
alsactl: use link list to maintain source of events
alsactl: use epoll(7) instead of poll(2)
alsactl: add an iterator of registered instances of sound card
alsactl: split event loop code to a function
Speaker Test
speaker-test: Allow sampling rates up to 768000
speaker-test: Remove unused variable
speaker-test: Support S24_3LE sample format
alsaloop
alsaloop: pcmjob - fix few warnings
alsamixer
alsamixer: fix gcc warnings
alsatplg (topology)
alsatplg: add man file
alsaucm
alsatplg: add man file
alsaucm: add alsa-ucm udev rules for PAZ00 (Toshiba AC100/Dynabook AZ).
aplay/arecord
aplay: add missing block brackets
aplay: Fix invalid file size check for non-regular files
bat (basic audio tester)
alsabat: Allow custom sample format for round trip latency test
bat: alsa.c - move the thread cleanup pop before goto exit3
1.1.6
Core
Release v1.1.6
ALSA Control (alsactl)
alsactl: Only start restore service when asoundrc file exists
Change FSF address (Franklin Street)
ALSA RawMidi Utility (amidi)
Change FSF address (Franklin Street)
Speaker Test
speaker-test: Refactor the tone-generator codes
alsaloop
alsaloop: fix a typo in the comparison
Change FSF address (Franklin Street)
amixer
Change FSF address (Franklin Street)
aplay/arecord
aplay: Fix wav file not being split on 32 bit platforms
aplay: Adjust sample rate limits to support newer hardware
bat (basic audio tester)
bat: alsa.c - move the thread cleanup pop before goto exit3
1.1.5
Core
Release v1.1.5
alsactl: Move systemd unit start-up from basic.target to sound.target
ALSA Control (alsactl)
alsactl: Move systemd unit start-up from basic.target to sound.target
alsatplg (topology)
alsatplg: fix topology compiler long option parsing
topology: delete output file if parsing fails.
aplay/arecord
aplay: Fix playback for small raw files
aplay: Refactor playback code
aplay: Add samples argument for playing/recording a given number of samples
aplay: interrupt streaming via signal in voc_pcm_write
aplay: Fix --max-file-time option 32 bits overflow
bat (basic audio tester)
alsabat: fix one uninitialized warning issue
1.1.4
Core
Release v1.1.4
ALSA Control (alsactl)
alsactl: Remove standard output definition in systemd unit
ALSA RawMidi Utility (amidi)
amidi: optarg might be NULL, fix 't' argument parsing
alsa-info.sh
alsa-info: add ACPI device status
alsa-info: provide more DMI information
alsaucm
alsaucm: Add alsaucm.rst to EXTRA_DIST
aplay/arecord
aplay: Introduce and use xwrite helper
1.1.3
Core
Release v1.1.3
INSTALL: document how to configure a build for installation in a local dir
configure.ac: add a check for rst2man, a reStructuredText man page generator
configure.ac: fix the check for xmlto availability
alsabat: add amixer config files
alsabat: automation test scripts
ALSA Control (alsactl)
alsactl: Fix potential NULL dereferences in daemon mode
ALSA RawMidi Utility (amidi)
amidi: add sysex-interval option
amidi: fix timeout handling
amidi: ignore not only Active Sensing but also Clock bytes
Speaker Test
speaker-test: Fix chmap wav file selection.
alsaloop
alsaloop: try adapt avail_min for playback to avoid 100% CPU usage
alsaucm
alsaucm: add a man page, generated from reStructuredText
alsaucm: mention the "list1" command in the usage output
aplay/arecord
aplay: Fix to handle pause when system is suspended/Resumed
bat (basic audio tester)
alsabat: add system power management S3 test
alsabat: fix alsabat -86 error
alsabat: add amixer config files
alsabat: automation test scripts
1.1.2
Core
Release v1.1.2
alsabat: align the data type on float
aplay/arecord
aplay: fix lurking capture file overwrite bug
bat (basic audio tester)
alsabat: make snr_is_valid static
alsabat: fix a missing break in switch
alsabat: add noise detection
alsabat: add a single channel sine wave generator
alsabat: add channels parameter for adjust_waveform()
alsabat: align the data type on float
alsabat: add round trip audio latency test
alsabat: fix a possible memory leak
alsabat: add buffer size and period size settings
alsabat: add terminate status check for capture thread
Changelog:
1.2.4
Core
Release v1.2.4
pcm: dmix: make lockless operation optional
Control API
control: Add documentation for snd_ctl_elem_value_*.
control: Improve general control interface documentation.
control: Add documentation for snd_ctl_elem_list_*.
control: ctlparse - fix enum values in or ""
ctl: improve documentation for identifier of control element
PCM API
pcm: file plugin - implement safe_write
pcm: fix the pcm_frames_diff -> pcm_frame_diff typo
pcm: dshare - apply the boundary wrap in snd_pcm_dshare_sync_area()
pcm: introduce pcm_frame_diff and pcm_frame_diff2 helpers
pcm: meter / s16 - add protection for the maximum copied frames
dlmisc, pcm: export the old symbols (for -flto)
pcm: fix the snd_pcm_plugin_status() avail and delay fields
pcm: dmix: fix access to sum-buffer in non-interleaved mixing mode
pcm: iec958: set channel status bits according to rate and format
pcm: iec958: implement HDMI HBR audio formatting
pcm: dmix: Fix semaphore usage with lockless operation
pcm: dmix: make lockless operation optional
Topology API
topology: straight printf and error path fixes
topology: save_config - fix the error path handling
tplg: fix the unaligned_get32/put32 helpers for big endian
topology: improve the printf buffer management
topology: fix the unaligned access
topology: fix sort_config()
topology: fix some gcc10 warnings (labs, signess)
topology: return correct value in tplg_save_printf()
topology: Make buffer for saving dynamic size
topology: decode: Add DAI name printing
topology: decode: Print sig_bits field in PCM capabilities section
topology: decode: Fix decoding PCM formats and rates
topology: decode: Change declaration of enum decoding function
topology: decode: Fix printing texts section
topology: decode: Add enum control texts as separate element
topology: decode: Remove decoding values for enum control
topology: decode: Fix infinite loop in decoding enum control
topology: decode: Fix channel map memory allocation
Use Case Manager API
ucm: handle correctly Linked configuration
ucm: rename once_list to boot_list
ucm: substitute the comment string also in the main configuration file
ucm: add a check for the empty configuration
ucm: Handle 'Error' keyword in the master file
ucm: substitute the merged tree completely
ucm: fix parse_get_safe_name() - safe name must be checked after substitution
ucm: substitution - remove duplicate allow_empty assignment
Configuration
conf: quote also strings with '*' and '#' characters in string_print()
conf: USB-Audio: Disable IEC958 on Lenovo ThinkStation P620
conf: pcm - USB - Added S/PDIF fix for Asus Xonar SE
Documentation
README: add patch submission instructions
Dynamic Loader helpers
dlsym: use the only alsa plugins directory for the internal modules
dlmisc, pcm: export the old symbols (for -flto)
dlsym: add support for ALSA_PLUGIN_DIR environment variable
1.2.3
Core
Release v1.2.3
snd_dlopen: implement the relocatable version for glibc
github actions: ubuntu - fix the non-interactive build
pcm: dmix: assembly: fix the interface for safety (mmx)
configure: add --embed for python3-config (python 3.8)
Config API
conf: add snd_config_is_array() function
Control API
tlv: implement nearest rounding in snd_tlv_convert_from_dB() for xdir == 0
control: use more precise rounding in snd_ctl_ascii_value_parse()
snd_dlopen: do not use absolute plugin path for snd_dlopen() calls
namehint: remember the direction from the upper levels
conf: namehint - add omit_noargs to the hint section
Mixer API
tlv: implement nearest rounding in snd_tlv_convert_from_dB() for xdir == 0
snd_dlopen: do not use absolute plugin path for snd_dlopen() calls
PCM API
pcm: Fix memory leak at snd_pcm_new when THREAD_SAVE_API is defined
pcm: clarify -ENODATA description (recovery, event)
pcm: fix spelling in documentation for -EBADFD
pcm: add documentation for -ENODATA error code
snd_dlopen: do not use absolute plugin path for snd_dlopen() calls
pcm: return immediately when the state is SETUP in snd_pcm_drain()
pcm: fix snd_pcm_drain() excluding SETUP state from valid states
pcm: rate: Fix uninitialized variable warning
pcm: rate: Fix compile warning wrt bit ops and comparison
pcm: dmix: assembly: give more freedom over the constraints
pcm: dmix: assembly: refactor the PIC mode
pcm: dmix: assembly: fix the interface for safety (mmx)
pcm: dmix: assembly: fix the interface for safety
pcm: dmix: assembly: change the token by symbolic names
fix infinite draining of the rate plugin in SND_PCM_NONBLOCK mode
pcm: rate - fix the remaining size calculation in snd_pcm_rate_drain()
pcm: dmix: fix sw_params handling of timestamp types in direct plugins
pcm: add chmap option to route plugin
Topology API
topology: Add missing ATTRIBUTE_UNUSED
topology: use snd_config_is_array() function
topology: Use bool parser to parse boolean value
topology: add back asrc to widget_map in dapm.c
Use Case Manager API
ucm: fix the wrong return value in uc_mgr_open_ctl()
ucm: remove strict: in ${OpenName} substitution
ucm: fix the error path in parse_toplevel_path()
ucm: fix the wrong uc_mgr_open_ctl() call in if_eval_control_exists()
use-case.h: define Linked variable
ucm: implement CardIdByName substitution
ucm: shuffle code in compound_merge()
ucm: substitute arguments in sequences only for syntax 3+
ucm: substitute RenameDevice and DeleteDevice lists
ucm: substitute Comment in Transition and Device
ucm: substitute verb name and file field
ucm: substitute component sequence string
ucm: substitute device strings in the device lists
ucm: substitute device / modifier names, too
ucm: implement the toplevel ucm configuration file parser
ucm: substitute ${CardNumber}
ucm: substitute ${OpenName}
ucm: Define/DefineRegex is supported in Syntax 3
ucm: String condition - implement Empty
ucm: handle strict: prefix correctly for the UCM card name
ucm: substitute also value strings
ucm: allow to specify the toplevel directory using '/' as first character in File path
ucm: config - change the in-place include evaluation order
ucm: allow syntax version 3
ucm: substitute arguments in sequences
ucm: configuration - add DefineRegex
ucm: configuration - allow to define the configuration variables
ucm: config - substitute File string to allow variables in include
ucm: configuration - substitute ${ConfDir} and ${ConfTopDir}
ucm: configuration - implement in-place Include
ucm: rename _once command to _boot command
ucm: rename SectionOnce to BootSequence
ucm: fix compilation error in set_defaults_user()
ucm: fix SectionOnce comment
ucm: initialize mgr->once_list
ucm: handle 'set _defaults' command
ucm: handle 'set _once' command
ucm: execute SectionDefaults lately (when the first verb is set)
ucm: parse SectionOnce section in the master UCM configuration file
ucm: merge the array items from the condition blocks
use-case.h: add USB as allowed device name
ucm: fix copy-n-paste typo (RemoveDevice list)
ucm: fix the device remove operation
usecase: allow indexes also for modifier names
ucm: fix uc_mgr_scan_master_configs()
ucm: clarify the index syntax for the device names
Configuration
conf: USB-Audio: Add HP Thunderbolt Dock in the IEC958 blacklist
conf: remove debug printf() in snd_config_hook_load()
conf: add support for XDG_CONFIG_HOME search path
conf: load function (hook) - add OR support
conf: USB-Audio.conf - add another card name for Asus Xonar 5
conf: add snd_config_is_array() function
conf: use bool type for the join member in the config structure
conf: change namehint for pcm.front
conf: USB-Audio: Fix S/PDIF output of ASUS Xonar AE
pcm: dmix: fix sw_params handling of timestamp types in direct plugins
conf: fix namehint for pcm.front and pcm.iec958
conf: USB-Audio: Add C-Media USB Headphone Set to the IEC958 blacklist
Change PCM device number of Asus Xonar U5
conf: namehint - add omit_noargs to the hint section
conf: changc Loader helpers
dlsym: fix the snd_dlopen(), incorrect variable use
dlsym: fix again snd_dlpath()
dlsym: fix the reference to the origin lib directory
snd_dlopen: implement the relocatable version for glibc
Kernel Headers
header: Fix build error with old kernel headers
Simple Abstraction Mixer Modules
snd_dlopen: implement the relocatable version for glibc
snd_dlopen: do not use absolute plugin path for snd_dlopen() calls
Test/Example code
test: pcm_min - add snd_pcm_drain() call and indentation fixes
1.2.1.2
Core
Release v1.2.1.2
local.h: remove sound/asoundef.h dependency
asoundef.h: add CEA861_AUDIO_INFOFRAME defines
Control API
control: ctlparse - accept enum values in or ""
PCM API
pcm_file: fix pipe stall when pclose() is called too early
Topology API
include/sound: sync with the kernel v5.4
Use Case Manager API
ucm: add support for ControlEnum in ControlExists condition
ucm: conditions - fix the wrong string/substring match
use-case: add priority values from pulseaudio
use-case: improve comment for mixer elements
ucm: rename mixer element identifiers
ucm: fix the cdev initialization sequence
ucm: remove the new-line for uc_error() calls
ucm: use-case.h - add <alsa/asoundlib.h> include
ucm: add ${CardDriver} substitution
ucm: implement ${sys:sysfs/path} substitution
Kernel Headers
include/sound/Makefile.am: remove asoundef.h
local.h: remove sound/asoundef.h dependency
include/sound: sync with the kernel v5.4
Utils
alsa.m4: Fix the detection of topology library availability 1.2.1.2
Core
Release v1.2.1.2
local.h: remove sound/asoundef.h dependency
asoundef.h: add CEA861_AUDIO_INFOFRAME defines
Control API
control: ctlparse - accept enum values in or ""
PCM API
pcm_file: fix pipe stall when pclose() is called too early
Topology API
include/sound: sync with the kernel v5.4
Use Case Manager API
ucm: add support for ControlEnum in ControlExists condition
ucm: conditions - fix the wrong string/substring match
use-case: add priority values from pulseaudio
use-case: improve comment for mixer elements
ucm: rename mixer element identifiers
ucm: fix the cdev initialization sequence
ucm: remove the new-line for uc_error() calls
ucm: use-case.h - add <alsa/asoundlib.h> include
ucm: add ${CardDriver} substitution
ucm: implement ${sys:sysfs/path} substitution
Kernel Headers
include/sound/Makefile.am: remove asoundef.h
local.h: remove sound/asoundef.h dependency
include/sound: sync with the kernel v5.4
Utils
alsa.m4: Fix the detection of topology library availability
1.2.1.1
Core
Release v1.2.1.1
PCM API
pcm: add braces to condition (coverity)
Use Case Manager API
ucm: quick fix for the previous commit when ALSA_CONFIG_UCM_VAR is set
ucm: fix again the long name configuration filename lookup
ucm: parser: Fix snprintf usage
ucm: Only look in ucm[1] or ucm2 dir once we've found a config file in one
ucm: Fix fallback to card_name (shortname) config for ucm1 profiles
ucm: Fix opening of master-configs by the card's longname
ucm: fix memory leaks detected by the coverity checker
Configuration
conf: check for include path duplicates
conf: fix the include paths support
1.2.1
Core
Release v1.2.1
conf: implement snd_config_add_before() and snd_config_add_after()
topology: remove configuration files (moved to alsa-topology-conf repository)
create separated libatopology library with the topology routines
ucm: remove configuration files (moved to alsa-ucm-conf repository)
conf: improve the include paths code
Use __func__ instead of __FUNCTION__
rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
Config API
conf: implement snd_config_add_before() and snd_config_add_after()
ucm: change the If block parsing
ucm: add If condition block
Control API
control_shm: add missing socket close to the error path (coverity)
control_shm: remove duplicate code (coverity)
Mixer API
mixer: simple - add snd_mixer_selem_id_parse() from amixer
PCM API
pcm: the maximal rate is 768000Hz, fix the remain code
pcm: fix the period_size for direct plugins (dmix, dsnoop, dshare)
pcm: Fix the wrong PCM object passed for locking/unlocking
pcm: chmap: Fix memory leak at snd_pcm_set_chmap()
pcm: dshare: allow missing bindings
pcm: return -ENOSYS when ops or fast_ops callback is NULL
pcm_file: improve error checking in write_wav_header function
pcm_file: in case of failed write clear file buffer variables
pcm_file: use EIO instead of EPIPE when failing to write output file
pcm_file: return errno in case of a failed write operation
pcm_file: remove double line
pcm_file: report write output file error to api user
pcm_file: do not disrupt playback on output file write fail
pcm: rate: Avoid pointer arithmetic on `void *`
pcm: direct: Remove unused empty struct
pcm: Make sure parameter qualifiers match between declaration and definition
pcm: hw: Don't return in a void function
Use __func__ instead of __FUNCTION__
pcm_file: another locking fix (coverity)
pcm_file: coverity fixes (including double locking)
pcm_hw: close file descriptor in the error path in snd_pcm_hw_open() (coverity)
pcm_file: call pclose() correctly for popen() (coverity)
pcm: fix memory leak in _snd_pcm_parse_config_chmaps() (coverity)
pcm: file: add infile read support for mmap mode
pcm: add mmap_begin callback to snd_pcm_fast_ops_t api
pcm: file: add missing unlock on early return
pcm: file: use snd_pcm_file_areas_read_infile for readi
pcm: file: add support for infile reading in non interleaved mode
pcm: dsnoop: Added "hw_ptr_alignment" option in configuration for slave pointer alignment
pcm: dshare: Added "hw_ptr_alignment" option in configuration for alignment of slave pointers
pcm: direct: Add generic hw_ptr_alignment function for dmix, dshare and dsnoop
PCM Plugin API
pcm: the maximal rate is 768000Hz, fix the remain code
RawMidi API
rawmidi_hw: add sanity check for the invalid stream arguments (coverity)
rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
Topology API
create separated libatopology library with the topology routines
topology: Fix variable overflow in split_format
topology: add support to parse private data for pcm
topology: next round of coverity fixes
topology: various coverity fixes
Use Case Manager API
ucm: add possibility to keep order of childs for If blocks
ucm: change the If block parsing
ucm: docs: Add MinBufferLevel value
ucm: docs: Add EDID File value
use-case header file: add more references to correct ASCII ID parsers for CTL/mixer IDs
ucm: add snd_use_case_parse_selem_id()
ucm: add If.Condition.RegexMatch
ucm: add ${CardComponents} substitution to the value string processing
ucm: evaluate nested If blocks also in True/False blocks
ucm: add If.Condition.String to match strings and substrings
ucm: add snd_use_case_parse_ctl_elem_id()
ucm: add PlaybackCTL and CaptureCTL default values when they are not set
ucm: small cosmetic uc_error change in execute_sequence()
ucm: add If condition block
ucm: do not cache all control devices in get_card_long_name()
ucm: parser - use less memory for integer/real values in parse_value()
ucm: save the whole ctl info to the ctl_list structure
ucm: add the run-time variable substitution
ucm: fix memory leaks for cdev, bin-file and tlv elements
ucm: do not report failure when long name configuration does not exist
ucm: add support for multiple control devices, more aggresive caching
ucm: extend snd_use_case_mgr_open() to address the sound card directly
ucm: switch to ucm2 directory and v2 format, keep backward compatibility
conf: improve the include paths code
ucm: parse_verb_file() - remove folder_name variable and extra logic
ucm: fix uc_mgr_scan_master_configs() - skip correctly component directories
ucm: cosmetic fix in get_card_long_name()
ucm: another coverity fix in uc_mgr_config_load()
ucm: coverity fixes
/Makefile.am
create separated libatopology library with the topology routines
/src/Makefile.am
create separated libatopology library with the topology routines
ALSA Server
Use __func__ instead of __FUNCTION__
aserver: fix resource leak coverity
Configuration
conf: implement snd_config_a_config_add_after()
topology: remove configuration files (moved to alsa-topology-conf repository)
ucm: remove configuration files (moved to alsa-ucm-conf repository)
conf: improve the include paths code
conf: List cases in range explicitly
config: parse_string() fix the dynamic buffer allocation failure code (coverity)
src/conf.c: add missing va_end() call (coverity)
ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles
Dynamic Loader helpers
rawmidi: use snd_dlobj_cache_get2() in rawmidi open (coverity)
Utils
create separated libatopology library with the topology routines
1.1.9
Core
Release v1.1.9
add support for GCC's LTO
add snd_strlcpy() and use it everywhere
ucm: Add ucm files for DB820c board
Control API
add support for GCC's LTO
Print unsigned ints with %u instead of %i. (snd_ctl_ascii_elem_id_get)
add snd_strlcpy() and use it everywhere
PCM API
add support for GCC's LTO
pcm: multi plugin: reset hw/appl pointers in prepare/reset functions
pcm: multi plugin: detach the hw_ptr and appl_ptr from master_slave
pcm: fix wait condition in snd_pcm_write_areas() to avoid return zero
pcm: multi plugin - fix wait_for_avail_min
pcm: null: Do not allow a period size of 0
pcm: rate plugin - fix signess in snd_pcm_rate_avail_update() comparison
add snd_strlcpy() and use it everywhere
pcm: add the missing <strings.h> include
pcm: dshare: Fix overflow when slave_hw_ptr rolls over boundary
pcm: Preserve period_event in snd_pcm_hw_sw_params() call
Sequencer API
add snd_strlcpy() and use it everywhere
Timer API
add support for GCC's LTO
Topology API
Close topology config file after parsing it.
add snd_strlcpy() and use it everywhere
Use Case Manager API
Android: avoid using versionsort
/include/Makefile.am
Drop -I$includedir/alsa from alsa.pc
ALSA Lisp
alisp: add the missing include
Configuration
Android: avoid using versionsort
conf: pcm dmix - add CHANNELS argument
ucm: bytcr/PlatformEnableSeq.conf update some comments
ucm: Add ucm files for DB820c board
Revert "conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio"
conf/ucm: Add a UCM profile for Dell WD19 Dock USB-audio
Dynamic Loader helpers
add support for GCC's LTO
Error handler
add snd_strlcpy() and use it everywhere
Test/Example code
Printf unsigned longs with %lu instead of %ld (playmidi1.c)
Printf unsigned ints with %u instead of %i (pcm.c)
Printf unsigned long longs with %llu (mixtest.c)
Printf unsigned longs with %lu instead of %li (midifile.c)
Printf unsigned long with %lu instead of %li (latency.c)
test/latency: use frame bytes correctly in writebuf()
Utils
Drop -I$includedir/alsa from alsa.pc
1.1.8
Core
Release v1.1.8
conf: rename snd_conf_load1() to _snd_config_load_with_include()
conf/ucm: bytcht-es8316: Add long-name UCM profiles
conf/ucm: Add UCM profile for bytcht-es8316 boards
Create shared {En,Dis}ableSeq.conf components for rt5645 variants
conf/ucm: bytcr-rt5651: Add bytcr-rt5651-stereo-spk-dmic-mic config
conf/ucm: kblrt5660: Add ucm setting for Dell Edge IoT platform
conf/ucm: chtrt5650: Add UCM config for chtrt5650
ucm: Set default include path
conf: Move UCM profile snippets into components subdirectory
initial version of .travis.yml file
Control API
control: fix the assert() in snd_ctl_elem_set_bytes
PCM API
pcm: ioplug: Fix the regression of pulse plugin drain
pcm: extplug: Keep format and channels the same if requested
pcm: dshare: Fix segfault when not binding channel 0
pcm: dmix: Add option to allow alignment of slave pointers
pcm: interval: Interpret (x x+1] correctly and return x+1
Use Case Manager API
conf: rename snd_conf_load1() to _snd_config_load_with_include()
ucm: Set default include path
conf: Move UCM profile snippets into components subdirectory
Configuration
conf: rename snd_conf_load1() to _snd_config_load_with_include()
conf/ucm: bytcht-es8316: Add long-name UCM profiles
conf/ucm: Add UCM profile for bytcht-es8316 boards
Create device component for rt5645 Internal Analog Mic UCM
Factor out rt5645 variants Headset+Digital Mic UCM shared {en,dis}able sequences
Factor out rt5645 variants Speaker+Headphones shared UCM enable sequences
Create shared {En,Dis}ableSeq.conf components for rt5645 variants
Update chtrt5645 ucm variants to use bytcr/PlatformEnableSeq.conf component
conf/ucm: bytcr-rt5651: Document mono speaker wiring
conf/ucm: bytcr-rt5651: Add bytcr-rt5651-stereo-spk-dmic-mic config
conf/ucm: bytcr-rt5651: Add digital mic support
conf/ucm: bytcr-rt5651: Add support for a headset-mic on IN2
conf/ucm: bytcr-rt5651: Enable Stereo? ADC MIXL ADC? switches when enabling inputs
conf/ucm: kblrt5660: Add ucm setting for Dell Edge IoT platform
conf/ucm: chtrt5650: Add UCM config for chtrt5650
ucm: Set default include path
conf: Move UCM profile snippets into components subdirectory
conf: USB-Audio: Add Dell WD19 Dock in the IEC958 blacklist
conf/ucm/Dell-WD15-Dock: Fix incorrect device names
Documentation
README.md: add link to www.alsa-project.org
initial version of README.md for github
External PCM Filter Plugin SDK
pcm: extplug: Keep format and channels the same if requested
Test/Example code
test/audio_time: remove unused variables
test: rename code to more approriate mixtest
test/code: make it work again
test/latecy: fix typo in tstamp compare
Utils
utils/alsa.m4: conditionally enable libdl in AM_PATH_ALSA m4 macro
1.1.7
Core
Release v1.1.7
conf/ucm: bytcr-rt5651: Add bytcr-rt5651-mono-spk-in2-mic-hp-swapped config
conf/ucm: bytcr-rt5651: Add long-name UCM profiles
conf/ucm: bytcr-rt5651: Use generic SSP enable + disable sequence, support SSP0
conf/ucm: chtnau8824: Add Cube iWork8 Air and Pipo W2S specific profiles
conf/ucm: chtnau8824: Add UCM profile for chtnau8824 boards
conf/ucm: bytcr-rt5640: Add long-name UCM profiles
conf/ucm: bytcr-rt5640: Add generic bytcr-rt5640 UCM profile
configure: Fix forgotten ucm entry
conf/ucm: chtrt5645: At config for the Lenovo Ideapad Miix 320
conf/ucm: chtrt5645: At config for the Asus T100HA
configure: remove src/conf/alsa.conf.d/Makefile
Control API
control_hw: Fix issue when applying seccomp policy
hcontrol: use position offset macro of TLV data
control: use position offset macro of TLV data
PCM API
pcm: ioplug: Transfer all available data
pcm: rate: Add error check for snd_pcm_avail_update()
pcm: ioplug: Provide avail helper function for plugins
pcm: snd_interval_refine_first/last: exclude value only if also excluded before
pcm: Define refine mask bits explicitly (and fix missing DSD support)
pcm: dmix: Fix hwptr updates at status call
pcm ioplug: fix some coverity issues (switch, missing unlock in snd_pcm_ioplug_drain())
pcm: add missing flags initialization for the fallback control data
pcm: softvol: use position offset macro of TLV data
pcm: hw: use position offset macro of TLV data
pcm: softvol: Allow up to 90 dB of gain
PCM Plugin API
pcm: Fix header guard in pcm_plugin.h
Sequencer API
seq: Fix signedness in MIDI encoder/decoder
Topology API
ASoC: topology: Add alias conf parameter names for hw_configs
ASoC: topology: Add definitions for mclk_direction values
ASoC: topology: Add missing clock gating parameter when parsing hw_configs
ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
Use Case Manager API
ucm: adding the folder of card_long_name when finding verb conf file
Configuration
conf/ucm: bytcr-rt5640: Improve human readable input/output names
conf/ucm: bytcr-rt5651: Add bytcr-rt5651-mono-spk-in2-mic-hp-swapped config
conf/ucm: bytcr-rt5651: Add long-name UCM profiles
conf/ucm: bytcr-rt5651: Add mono speaker output profile
conf/ucm: bytcr-rt5651: Split into 1 .conf file per input / output
conf/ucm: bytcr-rt5651: Add support for mic input on various pins
conf/ucm: bytcr-rt5651: Fix ADC and Mic capture volumes
conf/ucm: bytcr-rt5651: Use generic SSP enable + disable sequence, support SSP0
conf/ucm: bytcr-rt5651: Change Speaker/Headphone en/disable sequences to fix switching
conf/ucm: bytcr-rt5651: Start with all outputs and inputs disabled
conf/ucm: bytcr-rt5651: Configure all volumes at 0dB
conf/ucm: bytcr-rt5651: Do not use both DAC1 and HPVOL inputs for HP
conf/ucm: bytcr-rt5645: Use the generic bytcr/PlatformEnableSeq.conf
conf/ucm: VEYRON-I2S: Add internal speakers and mic, other fixes
conf/ucm: chtnau8824: Add Cube iWork8 Air and Pipo W2S specific profiles
conf/ucm: chtnau8824: Add UCM profile for chtnau8824 boards
conf/ucm: bytcr-rt5640: Add default DisableSequence
conf/ucm: bytcr-rt5640: Add long-name UCM profiles
conf/ucm: bytcr-rt5640: Add generic bytcr-rt5640 UCM profile
conf: USB-audio: Fix for Xonar U7 SPDIF device
conf/ucm: Add a UCM profile for Dell WD15 Dock USB-audio
conf/ucm: chtrt5645: At config for the Lenovo Ideapad Miix 320
conf/ucm: chtrt5645: At config for the Asus T100HA
conf/ucm: chtrt5645: Fix recording from internal analog microphone
conf/ucm: chtrt5645: Microphone recording fixes
conf/ucm: chtrt5645: Cleanup and playback fixes
conf/ucm: increase the input volume for LineIn
ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
conf: remove alsa.conf.d from the datadir
alsa.conf: change the location for add-on configs to /etc/alsa/conf.d
External PCM I/O Plugin SDK
ioplug: Fix comment in struct snd_pcm_ioplug
pcm: ioplug: Provide avail helper function for plugins
Kernel Headers
timer: fix wrong comment to refer to 'SNDRV_TIMER_PSFLG_*'
control: add a series of macro for offset of several types of TLV
ASoC: topology: Add definitions for mclk_direction values
ASoC: topology: Add missing clock gating parameter when parsing hw_configs
ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
Test/Example code
test: use position offset macro of TLV data
1.1.6
Core
Release v1.1.6
a set of fixes to reduce gcc warnings
modules: smixer_python - add support for python3
conf/ucm: Add chtrt5645-mono-speaker-analog-mic configuration
core: Proper reference of internal snd_dlopen()
conf/ucm: Add Gigabyte mobo UCM profile with dual HD-audio codecs
conf/ucm: Add dual HD-audio codecs config for Lenovo
conf/ucm: Rearrange Makefile.am
configure.ac: do not enable alisp code by default
configure.ac: build extra mixer modules conditionally
Change snd_dlopen() function to return the error string
Change FSF address (Franklin Street)
Control API
control ext: fix the default .rawmidi_next_device callback
control: Proper reference of internal versioned functions
HWDEP API
core: Proper reference of internal snd_dlopen()
Mixer API
core: Proper reference of internal snd_dlopen()
PCM API
pcm: ioplug: Implement proper drain behavior
pcm: Skip avail_min check during draining
a set of fixes to reduce gcc warnings
pcm: hw: Keep control data from kernel when SND_PCM_APPEND
pcm: ioplug: update prepare and draining state correctly
pcm: Provide areas_copy function which handles buffer wrap around
pcm: ioplug: Provide hw_avail helper function for plugins
pcm: Do not access lock_enabled if thread safe API
pcm: ioplug: Use boundary for wrap around
pcm: another fix for the snd_pcm_area_silence() fast path
pcm: fix a bug to copy silent samples aligned to 64
pcm: Fix two bugs in snd_pcm_area_silence()
pcm: Return the consistent error code for unexpected PCM states
core: Proper reference of internal snd_dlopen()
timer: Proper reference of internal versioned symbols
pcm: fix wrong comments for some cases of linear interpolation of PCM samples
pcm: remove unused macros of NORMS_LABELS/NORMS_END
pcm: remove unused macros of GETU_LABELS/GETU_END
pcm: remove unused macros of COPY_LABELS/COPY_END
pcm: plug: add SND_PCM_FORMAT_{S, U}20 to linear_preferred_formats
pcm: linear, route: handle linear formats with 20-bit sample on 4 bytes
pcm: add and describe SND_PCM_FORMAT_{S, U}20
pcm: route: Fix use_getput flag computation for 3 byte formats
Timer API
timer: Proper reference of internal versioned symbols
Topology API
a set of fixes to reduce gcc warnings
topology: Fix parsing config with multiple hw_configs
topology: Fix to skip writing of header for compound elements
ALSA Lisp
control: Proper reference of internal versioned functions
Change FSF address (Franklin Street)
ALSA Server
a set of fixes to reduce gcc warnings
Change FSF address (Franklin Street)
Compatibility routines
Change FSF address (Franklin Street)
Configuration
conf: USB-Audio: Add second S/PDIF device on Phiree U2SX
conf/ucm: Add chtrt5645-mono-speaker-analog-mic configuration
core: Proper reference of internal snd_dlopen()
conf/ucm: Add Gigabyte mobo UCM profile with dual HD-audio codecs
conf/ucm: Add dual HD-audio codecs config for Lenovo
conf/ucm: Rearrange Makefile.am
configure.ac: build extra mixer modules conditionally
Change snd_dlopen() function to return the error string
Documentation
Change FSF address (Franklin Street)
Dynamic Loader helpers
core: Proper reference of internal snd_dlopen()
External PCM I/O Plugin SDK
pcm: ioplug: Provide hw_avail helper function for plugins
pcm: ioplug: Use boundary for wrap around
Kernel Headers
asound.h: add SNDRV_PCM_FORMAT_{S, U}20
Simple Abstraction Mixer Modules
modules: smixer_python - add support for python3
configure.ac: build extra mixer modules conditionally
Change snd_dlopen() function to return the error string
Test/Example code
test: correct emulation for channel-map TLV
1.1.5
Core
Release v1.1.5
conf/ucm: rt5651: Add UCM config for bytcr-rt5651
snd_user_file: avoid use wordexp
cleanup: fix poll.h includes
Release v1.1.4.1
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
Control API
ctl: deprecate APIs of dimensional information
ctl: ext: Fail with error code if snd_ctl_ext_callback::read_event() callback is not defined
cleanup: fix poll.h includes
PCM API
pcm: softvol: add support for S24_LE
cleanup: Use uint*_t instead of u_int*_t everythwere
cleanup: fix poll.h includes
pcm: hw: remove superfluous code to call of SNDRV_PCM_IOCTL_SYNC_PTR in snd_pcm_hw_forward()
pcm: hw: add a helper function to issue avail_min without side-effects
pcm: hw: add a helper function to issue appl_ptr without side-effects
pcm: hw: add a helper function to request hwsync without side-effects
pcm: hw: add a helper function just to query status data
pcm: hw: add a helper function to query status/control data
pcm: hw: minor refactoring for initialization of control data
pcm: hw: fix to initialize function local variable
pcm: hw: Call USER_PVERSION ioctl at open
pcm: hw: maintain fallback mode for control data mapping independently
pcm: hw: maintain fallback mode for status data mapping
pcm: hw: allocate fallback buffer in advance of trials of mapping
pcm: hw: deallocate fallback buffer when trials of unmapping finished
pcm: hw: add an arrangement for initialization of appl_ptr/avail_min
pcm: hw: add helper functions to map/unmap status/control data for runtime of PCM substream
pcm: hw: Remove superfluous call of snd_pcm_set_appl_ptr()
pcm: minor code cleanup for ioctl call
pcm: obsolete 'mmap_emulation' parameter of snd_pcm_hw_open_fd()
pcm: dmix: Fix the inconsistent PCM state
pcm: dshare: Call snd_pcm_dshare_state() directly
pcm: dmix: Workaround for binary incompatibility
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
build: Define __USE_UNIX98 for old glibc
RawMidi API
rawmidi: symbols: use rawmidi_virt only when available
Sequencer API
seq: fix snd_seq_set_queue_tempo() usage example in the documentation
cleanup: fix poll.h includes
Topology API
alsa-lib: topology: fix DSP_B mode string
topology: fix coverity issues
topology: fix usage of SND_TPLG_INDEX_ALL when checking routes
topology: Fix private data for BEs
topology: improve verbose output for block output.
topology: Add support for new widget types
topology: Add parsing for rates from conf
topology: disable alsa-lib topology debug output by default.
topology: Add support for missing fields parser.
ALSA Server
cleanup: fix poll.h includes
Compatibility routines
cleanup: Use uint*_t instead of u_int*_t everythwere
Configuration
conf/ucm: rt5651: Mute speakers on boot
conf/ucm: rt5651: Add missing cdev
conf/ucm: rt5651: Fix HiFi file name
conf/ucm: rt5651: Add UCM config for bytcr-rt5651
conf: HdmiLpeAudio: remove the "front" pcm definition
conf: HdmiLpeAudio: add support for 3 devices
conf/ucm: DB410c-HiFi: add CIC selection
conf: USB-Audio: allow custom definitions for "default" devices
conf: USB-Audio: fix dsnoop args for Audiophile USB card
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
Filename helpers
snd_user_file: avoid use wordexp
Kernel Headers
topology: Add support for new widget types
pcm: hw: Call USER_PVERSION ioctl at open
SHM helpers
cleanup: fix poll.h includes
Test/Example code
test: obsolete usage of APIs of dimensional information
test/seq-decoder: enable timestamping for external subscribers
test: apply optimization for v4.14 kernel about changes for TLV data handling on user-defined element set
test: add a test for list operation to user-defined element sets
1.1.4.1
Core
Release v1.1.4.1
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
PCM API
pcm: dmix: Fix the inconsistent PCM state
pcm: dshare: Call snd_pcm_dshare_state() directly
pcm: dmix: Workaround for binary incompatibility
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
build: Define __USE_UNIX98 for old glibc
Configuration
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
Test/Example code
test: add a test for list operation to user-defined element sets
Updates to latest librespot, bringing along some larger changes under the hood.
Maintenance:
-Display error when command can not be parsed (#161)
-Add rounding to volume percentage display (#493)
-Log warning instead of panicking on invalid color (#498)
-Update to librespot 0.2.0
-As part of this, a lot of the Future implementations were migrated to
async/.await and cleaned up
-Flip play/pause indicators (#511)
Features:
-Add audio_cache_size to set maximum cache size (#429)