* [ANN] dtas 0.20.0 - duct tape audio suite for *nix
@ 2022-02-03 5:15 5% Eric Wong
0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-02-03 5:15 UTC (permalink / raw)
To: dtas-all, ruby-talk
Free Software command-line tools for audio playback, mastering, and
whatever else related to audio. dtas follows the worse-is-better
philosophy and acts as duct tape to combine existing command-line tools
for flexibility and ease-of-development. dtas is currently implemented
in Ruby, Perl5, and some embedded shell, but may use other languages in
the future.
Changes:
dtas 0.20.0 - ruby 3.1+ compatibility, splitfx improvements
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
* homepage: https://80x24.org/dtas/
* https://80x24.org/dtas/INSTALL
* https://80x24.org/dtas/dtas-player.txt
* https://80x24.org/dtas/NEWS.atom
* git clone https://80x24.org/dtas.git
* dtas-all@nongnu.org (plain-text only, no HTML mail, please)
* mail archives: https://80x24.org/dtas-all/
nntps://news.public-inbox.org/inbox.comp.audio.dtas
imaps://anon:mous@public-inbox.org/inbox.comp.audio.dtas.0
nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas
imap://anon:mous@7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas.0
https://80x24.org/dtas-all/new.atom
note: .onion URLs require Tor: <https://www.torproject.org/>
^ permalink raw reply [relevance 5%]
* [PATCH 2/9] player: remove omap conversion
@ 2022-01-23 21:37 6% ` Eric Wong
0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-01-23 21:37 UTC (permalink / raw)
To: dtas-all
"omap" is specific to Ruby and makes interopability with other
languages more difficult.
While it's true environment variables are stored as an ordered
array of C strings (see environ(7)); order doesn't matter in
practice. Everyone in the real world treats the environment as
an unordered key-value store.
Followup-to: cac63517e7f751cc (doc: drop ordered map from examples, 2022-01-07)
---
lib/dtas/player.rb | 7 -------
1 file changed, 7 deletions(-)
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index 243f0b0..3db15c3 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -1,7 +1,6 @@
# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
-require 'yaml'
require 'shellwords'
require_relative '../dtas'
require_relative 'xs'
@@ -123,10 +122,6 @@ def to_hsh
rv
end
- def to_omap(hash)
- YAML::Omap === hash ? hash : YAML::Omap.new.merge!(hash)
- end
-
def self.load(hash)
rv = new
rv.instance_eval do
@@ -157,7 +152,6 @@ def self.load(hash)
@source_map.each do |name, src|
src_hsh = v[name] or next
src.load!(src_hsh)
- src.env = to_omap(src.env)
end
source_map_reload
end
@@ -170,7 +164,6 @@ def self.load(hash)
sinks.each do |sink_hsh|
sink_hsh['name'] = -sink_hsh['name']
sink = DTAS::Sink.load(sink_hsh)
- sink.env = to_omap(sink.env)
@sinks[sink.name] = sink
end
end
^ permalink raw reply related [relevance 6%]
* [PATCH 6/4] doc: drop ordered map from examples
@ 2022-01-07 9:35 7% ` Eric Wong
0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-01-07 9:35 UTC (permalink / raw)
To: dtas-all
"omap" is specific to Ruby and makes interopability with other
languages more difficult.
While it's true environment variables are stored as an ordered
array of C strings (see environ(7)); order doesn't matter in
practice. Everyone in the real world treats the environment as
an unordered key-value store, and we shall follow.
---
Documentation/dtas-splitfx.pod | 4 ++--
examples/splitfx.sample.yml | 2 +-
examples/tfx.sample.yml | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/dtas-splitfx.pod b/Documentation/dtas-splitfx.pod
index f10c6a3..717cfa6 100644
--- a/Documentation/dtas-splitfx.pod
+++ b/Documentation/dtas-splitfx.pod
@@ -90,9 +90,9 @@ moves printing of output to stderr and disables parallel job invocation.
=item infile - string, the pathname of the original audio file
-=item env - ordered hash of environment variables to set for all commands
+=item env - hash of environment variables to set for all commands
- env: !omap
+ env:
FX: gain 3 stats
=item comments - hash of common tags for all audio (e.g. ARTIST, ALBUM, YEAR)
diff --git a/examples/splitfx.sample.yml b/examples/splitfx.sample.yml
index 9c29df2..979ba0d 100644
--- a/examples/splitfx.sample.yml
+++ b/examples/splitfx.sample.yml
@@ -11,7 +11,7 @@ comments:
# the sox command for dtas-player playback, there is no need to
# specify this as it is the default:
# command: exec sox "$INFILE" $SOXFMT - $TRIMFX $RGFX $FX
-env: !omap
+env:
PATH: $PATH
# these effects may be used in any command in this file, including targets
SOX_OPTS: $SOX_OPTS -R
diff --git a/examples/tfx.sample.yml b/examples/tfx.sample.yml
index b8add0b..144129f 100644
--- a/examples/tfx.sample.yml
+++ b/examples/tfx.sample.yml
@@ -4,7 +4,7 @@
# test_trimfx.rb relies on this.
---
infile: foo.flac
-env: !omap
+env:
PATH: $PATH
SOX_OPTS: $SOX_OPTS -R
I2: second.flac
^ permalink raw reply related [relevance 7%]
Results 1-3 of 3 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2022-01-07 5:35 [PATCH 0/4] a pile of misc improvements Eric Wong
2022-01-07 9:35 7% ` [PATCH 6/4] doc: drop ordered map from examples Eric Wong
2022-01-23 21:37 [PATCH 0/9] various cuts for memory savings Eric Wong
2022-01-23 21:37 6% ` [PATCH 2/9] player: remove omap conversion Eric Wong
2022-02-03 5:15 5% [ANN] dtas 0.20.0 - duct tape audio suite for *nix Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/dtas.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).