There's two minor fixes for dtas-splitfx, and one for dtas-player users using the rate=bypass optimization. 3 changes since v0.20.0 (2022-02-03): splitfx: fix error reporting of failed tracks splitfx: warn on improper encodings for titles player: drain sinks completely before changing sink rate
This release catches up with Psych (YAML) changes in Ruby 3.1+ Ruby 2.3+ is now the minimum version, though keep in mind the ruby-core team already dropped support for it long ago. Most of the features are focused on audio engineering capabilities of dtas-splitfx. dtas-splitfx gains the --filter switch, along with per-track environment variables and comments. These new features have made my workflow significantly better. dtas-archive supports explicit comments, and omits the default SoX comment. To better cope with temporary and modified files during editing, dtas-player metadata now checks ctime before reusing the cache, handy for frequently-modified files. "dtas-tl prune" is now supported to cull temporary files from the player tracklist. There's a few dtas-console improvements, too. 28 changes since v0.19.0 (2021-09-05): archive: support comments, default to none splitfx: use Etc.nprocessors for jobs if unspecified dtas-console: set X11 terminal title iff DISPLAY is set dtas-console: add 'i' toggle to show comments (metadata) splitfx: fix track_zpad with integer arg doc: drop ordered map from examples player: reduce syscalls when splicing to single target dtas-console: support Wayland terminal titles, too console: workaround safe warnings in outdated `curses' gem require Ruby 2.3+ get rid of DTAS.dedupe_str wrapper move dtas-graph into script/, support Perl for dtas.sh use YAML.unsafe_load in Psych 4.x (Ruby 3.1+) deduplicate and freeze pathnames + metadata player: remove omap conversion dtas: drop unnecessary "require 'yaml'" statements dtas-tl prune: cull missing files from tracklist dtas-tl: drop encoding hacks, use binary stdout+stderr use IO#wait_readable consistently get rid of DTAS::Nonblock wrapper for Ruby <= 2.0 unix_accepted: drop Ruby < 2.3 support code do not check IO#closed? before calling IO#close splitfx: support per-track environment variables splitfx: add --filter option to limit match to comments player: expire sox metadata cache on file st_ctime changes readahead: do not call -@ on non-String splitfx: disallow combining --trim and --filter splitfx: document changes ahead of 0.20.0 release
Non-UTF-8-encoded pathnames now handled properly by dtas-mlib. Shell-unfriendly filenames are handled properly if they require ffmpeg (they were always handled properly when using sox). Some minor URL and doc updates, too, and there's a new "make symlink-install" target for users who lack permissions to install RubyGems. 6 changes since v0.18.1 (2021-02-13): mlib: pathnames may be blobs README: replace NNTP URL with NNTPS gemspec: allow building gem without setting VERSION build: add "symlink-install" target do not shell-quote filenames for environment doc: use Tor v3 .onion URLs
Mainly seek improvements to dtas-player. The fallback to use charlock-holmes for strangely-encoded files is fixed. 7 changes since 0.18.0 (2020-02-03): splitfx: reduce syscalls for writing comments file splitfx: support --err-suffix option player: fix +/- directional seeks while paused README: update and add more URLs for archives encoding: use CharlockHolmes properly on first run dtas-console: gracefully handle seek failures INSTALL: update dependencies for current Debian stable
fiddle is now supported for Linux users without a C compiler or Ruby headers installed to take advantage of inotify(7) functionality and efficiency improvements with splice(2) and eventfd(7). For non-RubyGems users, there's some setup.rb fixes thanks to James Rowe. Eric Wong (8): doc: fixup leftover ftp://lists.gnu.org links pipe: avoid loading sleepy_penguin provide fiddle-based eventfd implementation buffer: replace sleepy_penguin with fiddle watchable: use fiddle for inotify support doc: remove most recommendations for sleepy_penguin INSTALL: s/bogomips.org/yhbt.net/ doc: update copyrights for 2020 James Rowe (2): setup: update to use RbConfig setup: fix duplicate variable warning
dtas-player automatically pauses on sink death (e.g. when an external DAC is unplugged), thanks to Rene Maurer for the feature suggestion. zsh completions are also bundled in the examples/ directory thanks to James Rowe. There's also a couple of minor bugfixes and documentation updates. There's also kwarg warning fixes for Ruby 2.7.0dev. Future components will probably use a more stable glue language than Ruby, and we already have dtas-graph which is Perl5. Eric Wong (11): doc: remove inaccurate comment about "GNU-ism" doc: update homepage to point to cgit /about/ dtas-graph: show inode number in hex, too dtas-graph: add a short blurb about what it does dtas-console: remove unused variables dtas-console: pass kwargs as-is to String#encode buffer/splice: pass kwargs as-is to tee/splice player: automatically pause if last sink dies readahead: avoid Array#compact and Array#max on `false' doc: use new HTTPS address at lists.gnu.org TODO: add a note about using a more stable glue language James Rowe (2): doc: trivial typo fixes Add zsh completion support
Brown paper bag release to fix hanging at the end of a track/playlist when using a single audio output with Linux splice.
A bunch of minor fixes and cleanups accumulating for the past two years since the last release. It's tough to remember to make releases when I'm always running the latest version from git :x Most notably, "io_splice" is no longer used for dtas-linux users since "sleepy_penguin" includes all the functionality we use. This is to reduce memory overhead from extra DSOs(*) There's also some deprecation warning fixes for the still-undocumented "dtas-mlib" command. 12 changes since v0.15.0 (2017-04-07): pipeline: new module for running process pipelines console: ensure time calculations are done in UTC Rakefile: update path for uploads player: support guessing encodings for comments get rid of Windows-31J regexps mlib: compatibility with Sequel 5.x mlib: remove redundant tag massaging and encoding mlib: use flock to get around SQLite busy errors mlib: ignore files with nil times dtas/watchable: check SystemCallError mlib: fix unused variable warning use sleepy_penguin 3.5+ for splice and tee support (*) https://udrepper.livejournal.com/8790.html
There's a couple of minor bugfixes and features that's been sitting around for a while in git. Internally there's some garbage reductions so player processes might be a bit smaller. 21 changes since dtas 0.14.2 (2016-03-18): player: "cue prev" reliably hits previous cue breakpoint README: add link to gmane NNTP server player: extra "cue" seeking functionality archive: fix suffix replacement for stats dtas-readahead: cleanup open files on pause readahead: handle queued commands properly mlib: use transaction for removing stale entries splitfx: more consistently generate fade_in effects format.from_file: reduce soxi invocations introduce mcache class for caching audio metadata source/sox: integrate mcache support to reduce soxi calls test/test_rb_state: quiet deprecation warning http -> https, and relocate homepage to https://80x24.org/dtas/ player: freeze sink name to avoid needless dup source/sox: simplify conditional, slightly buffer/splice: remove MAX_SIZE constant rg_state: fix no-op gain detection source/sox: relax comment NAME restriction readahead: handle queued commands properly (again) readahead: fix running commands with non-files deduplicate strings using String#-@ (uminus) in Ruby 2.5+
This release contains several fixes needed to run dtas-player under Debian jessie systems where libav-tools no longer provides ffprobe. dtas-player should now fall back more smoothly to its splitfx YAML format if neither libav-tools nor ffmpeg are installed, as they are optional dependencies. Note: mp3gain is missing under Debian jessie, so you will not be able to use ReplayGain with MP3 files. This will be worked around in another release. Finally, this also fixes a bug in 0.12.0 for non-sleepy_penguin RubyGem users which relied on pipes for notification. 3 changes since 0.14.0: av_ff_common: fixes for libav-tools under Debian Jessie dtas-readahead: do not barf on missing ffprobe/avprobe sigevent/pipe: require file for DTAS::Nonblock properly Note: ignore the 0.14.1 tag, it was broken and missed INSTALL changes