diff options
author | Eric Wong <e@80x24.org> | 2015-05-17 02:00:47 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-05-17 02:19:58 +0000 |
commit | 93ff56a7a27a166ce92307c470d4f54c3c28aa53 (patch) | |
tree | 2981db2a951cd1f4f61c259dbbfe3bf5621d553f | |
parent | 8705ec176fc03314da215af2d17935b3178f83d9 (diff) | |
download | dtas-93ff56a7a27a166ce92307c470d4f54c3c28aa53.tar.gz |
It can often be useful to expose only part of a track for quick inspection. This lets us do that.
-rw-r--r-- | Documentation/dtas-splitfx.txt | 8 | ||||
-rwxr-xr-x | bin/dtas-splitfx | 1 | ||||
-rw-r--r-- | lib/dtas/splitfx.rb | 9 |
3 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/dtas-splitfx.txt b/Documentation/dtas-splitfx.txt index 049371f..2a599ea 100644 --- a/Documentation/dtas-splitfx.txt +++ b/Documentation/dtas-splitfx.txt @@ -51,6 +51,14 @@ to use ecasound(1), too. -b, \--bits BITS : Override the output bit depth in the specified TARGET +-t, \--trim POSITION +: Passes a POSITION argument to the sox "trim" effect to allow + limiting output to only process a portion of the original. + This bypasses the "tracks" section and of the YAML file and + 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. + # FILE FORMAT * infile - string, the pathname of the original audio file diff --git a/bin/dtas-splitfx b/bin/dtas-splitfx index a764cb3..d28cc5d 100755 --- a/bin/dtas-splitfx +++ b/bin/dtas-splitfx @@ -18,6 +18,7 @@ OptionParser.new('', 24, ' ') do |op| op.on('-C', '--compression FACTOR') { |val| opts[:compression] = val } op.on('-r', '--rate RATE') { |val| opts[:rate] = val } op.on('-b', '--bits RATE', Integer) { |val| opts[:bits] = val } + op.on('-t', '--trim POSITION') { |val| opts[:trim] = val.tr(',', ' ') } op.parse!(ARGV) end diff --git a/lib/dtas/splitfx.rb b/lib/dtas/splitfx.rb index e4997cc..b657179 100644 --- a/lib/dtas/splitfx.rb +++ b/lib/dtas/splitfx.rb @@ -16,6 +16,14 @@ class DTAS::SplitFX # :nodoc: include DTAS::XS attr_reader :infile, :env + class UTrim + attr_reader :env, :comments + def initialize(trim_arg, env, comments) + @env = env.merge("TRIMFX" => "trim #{trim_arg}") + @comments = comments.merge('TRACKNUMBER' => '000') + end + end + class Skip < Struct.new(:tbeg) # :nodoc: def commit(_) # noop @@ -353,6 +361,7 @@ class DTAS::SplitFX # :nodoc: @compression = opts[:compression] @rate = opts[:rate] @bits = opts[:bits] + trim = opts[:trim] and @tracks = [ UTrim.new(trim, @env, @comments) ] fails = [] tracks = @tracks.dup |