everything related to duct tape audio suite (dtas)
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] dtas 0.20.0 - duct tape audio suite for *nix
@ 2022-02-03  5:15  4% 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 4%]

* [PATCH 2/3] splitfx: add --filter option to limit match to comments
  2022-01-24 11:35  5% [PATCH 0/3] some splitfx-related enhancements Eric Wong
@ 2022-01-24 11:35  7% ` Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-01-24 11:35 UTC (permalink / raw)
  To: dtas-all

This can allow filtering for tracks with a given comment
declared via the ".#{COMMENT}" mechanism or the track title.
If no prefix is given (before the '='), then all comment
values are matched.
---
 bin/dtas-splitfx    | 1 +
 lib/dtas/splitfx.rb | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/bin/dtas-splitfx b/bin/dtas-splitfx
index 6ce6521..d0afc7b 100755
--- a/bin/dtas-splitfx
+++ b/bin/dtas-splitfx
@@ -13,6 +13,7 @@
   op.on('-n', '--dry-run') { opts[:dryrun] = true }
   op.on('-j', '--jobs [JOBS]', Integer) { |val| opts[:jobs] = val } # nil==inf
   op.on('-s', '--quiet', '--silent') { opts[:silent] = true }
+  op.on('-f', '--filter FILTER') { |val| (opts[:filter] ||= []) << val }
   op.on('-D', '--no-dither') { opts[:no_dither] = true }
   op.on('-O', '--outdir OUTDIR') { |val| opts[:outdir] = val }
   op.on('-C', '--compression FACTOR') { |val| opts[:compression] = val }
diff --git a/lib/dtas/splitfx.rb b/lib/dtas/splitfx.rb
index 1ce2007..696b9ce 100644
--- a/lib/dtas/splitfx.rb
+++ b/lib/dtas/splitfx.rb
@@ -360,6 +360,14 @@ def run(target, opts = {})
 
     fails = []
     tracks = @tracks.dup
+    (opts[:filter] || []).each do |re|
+      field, val = re.split(/=/, 2)
+      if val
+        tracks.delete_if { |t| (t.comments[field] || '') !~ /#{val}/ }
+      else
+        tracks.delete_if { |t| t.comments.values.grep(/#{re}/).empty? }
+      end
+    end
     pids = {}
     jobs = opts[:jobs] || tracks.size # jobs == nil => everything at once
     if opts[:sox_pipe]


^ permalink raw reply related	[relevance 7%]

* [PATCH 0/3] some splitfx-related enhancements
@ 2022-01-24 11:35  5% Eric Wong
  2022-01-24 11:35  7% ` [PATCH 2/3] splitfx: add --filter option to limit match to comments Eric Wong
  0 siblings, 1 reply; 3+ results
From: Eric Wong @ 2022-01-24 11:35 UTC (permalink / raw)
  To: dtas-all

1 and 2 make splitfx nicer-to-use, and 3/3 makes repeated splitfx
invocations interact better with dtas-player

Eric Wong (3):
  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

 bin/dtas-splitfx    |  1 +
 lib/dtas/mcache.rb  | 13 ++++++++++++-
 lib/dtas/splitfx.rb |  9 +++++++++
 test/test_mcache.rb | 20 +++++++++++++++-----
 4 files changed, 37 insertions(+), 6 deletions(-)


^ permalink raw reply	[relevance 5%]

Results 1-3 of 3 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2022-01-24 11:35  5% [PATCH 0/3] some splitfx-related enhancements Eric Wong
2022-01-24 11:35  7% ` [PATCH 2/3] splitfx: add --filter option to limit match to comments Eric Wong
2022-02-03  5:15  4% [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).