* [PATCH 1/2] splitfx: disallow combining --trim and --filter
2022-02-03 0:48 [PATCH 0/2] splitfx updates ahead of 0.20.0 release Eric Wong
@ 2022-02-03 0:48 ` Eric Wong
2022-02-03 0:48 ` [PATCH 2/2] splitfx: document changes ahead of 0.20.0 release Eric Wong
1 sibling, 0 replies; 3+ messages in thread
From: Eric Wong @ 2022-02-03 0:48 UTC (permalink / raw)
To: dtas-all
They're two different ways of accomplishing roughly the same thing,
but --filter can be more flexible given the use of per-track
environment variables.
---
lib/dtas/splitfx.rb | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/dtas/splitfx.rb b/lib/dtas/splitfx.rb
index 696b9ce..c7eaf42 100644
--- a/lib/dtas/splitfx.rb
+++ b/lib/dtas/splitfx.rb
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# 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_relative '../dtas'
@@ -357,7 +357,9 @@ def run(target, opts = {})
@rate = opts[:rate]
@bits = opts[:bits]
trim = opts[:trim] and @tracks = [ UTrim.new(trim, @env, @comments) ]
-
+ if trim && opts[:filter]
+ raise ArgumentError, 'trim and filter are mutually exclusive'
+ end
fails = []
tracks = @tracks.dup
(opts[:filter] || []).each do |re|
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] splitfx: document changes ahead of 0.20.0 release
2022-02-03 0:48 [PATCH 0/2] splitfx updates ahead of 0.20.0 release Eric Wong
2022-02-03 0:48 ` [PATCH 1/2] splitfx: disallow combining --trim and --filter Eric Wong
@ 2022-02-03 0:48 ` Eric Wong
1 sibling, 0 replies; 3+ messages in thread
From: Eric Wong @ 2022-02-03 0:48 UTC (permalink / raw)
To: dtas-all
--filter, per-track comments and environments are the subtle but
major new features for the next release.
---
Documentation/dtas-splitfx.pod | 41 ++++++++++++++++++++++++++++------
1 file changed, 34 insertions(+), 7 deletions(-)
diff --git a/Documentation/dtas-splitfx.pod b/Documentation/dtas-splitfx.pod
index 717cfa6..f8de59b 100644
--- a/Documentation/dtas-splitfx.pod
+++ b/Documentation/dtas-splitfx.pod
@@ -26,7 +26,8 @@ to use L<ecasound(1)>, too.
=item -j, --jobs [JOBS]
Number of jobs to run in parallel. If no number is specified, all
-jobs are run in parallel.
+jobs are run in parallel. Default: number of CPUS (dtas 0.20.0+),
+previous versions of dtas defaulted to 1.
=item -n, --dry-run
@@ -76,6 +77,16 @@ outputs the result as a single file with the TRACKNUMBER
of "000". For ease-of-typing, commas in this command-line
argument are automatically expanded to spaces when passed to sox.
+This switch may not be combined with L</--filter>
+
+=item -f, --filter [FIELD=]VALUE
+
+Only process tracks matching a given comment FIELD and VALUE.
+If no C<=> is exists, then all comment fields are matched
+against the specified VALUE.
+
+This switch may not be combined with L</--trim>
+
=item -p, --sox-pipe
Used in place of an output target to specify outputting audio data in
@@ -121,7 +132,12 @@ highest-numbered track. Default: true
=item targets - hash, see "TARGETS" section
-=item command - used only by L<dtas-player(1)>
+=item command - override the default sox invocation
+
+This command may be used to specify an alternate command to process each
+track.
+
+Default: sox "$INFILE" $COMMENTS $OUTFMT $OUTDST $TRIMFX $FX $RATEFX $DITHERFX
=back
@@ -133,11 +149,22 @@ segment.
=over
-=item t TIME TITLE [fade_in/fade_out=FADE_ARGS]
+=item t TIME TITLE [fade_in/fade_out=FADE_ARGS] [.FIELD=VALUE] [env.X=Y]
+
+The start of a new track at TIME with TITLE.
+An optional L</fade_in> and L</fade_out> may be specified for any tracks.
+Per-track comments may be specified in the form of C<.FIELD=VALUE>.
+Using per-track C<.ARTIST=FOO> allows proper tagging of multi-artist
+compilations.
-The start of a new track
-at TIME with TITLE. An optional fade_in and fade_out may be specified
-for the first/last tracks.
+Per-track environment variables may be specified in the form
+of C<env.K=V> where C<K> is the environment variable name and
+C<V> is its value. Per-track environment variables do not affect
+playback of YAML files via L<dtas-player(1)> nor use of the L</--trim>
+command-line option. However, per-track environment variables do affect
+any tracks written to the filesystem, including those using the L</--filter>
+switch. These environment variables are intended to affect the specified
+L</command> or default L<sox(1)> invocation.
=item skip TIME - skip a segment starting at TIME
@@ -268,7 +295,7 @@ imbalance in a live concert recording from the audience:
=head1 COPYRIGHT
-Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
+Copyright all contributors L<mailto:dtas-all@nongnu.org>
License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
^ permalink raw reply related [flat|nested] 3+ messages in thread