class Chaussettes::Clip
encapsulates an invocation of sox
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/chaussettes/clip.rb, line 10 def initialize @combine = nil @globals = [] @inputs = [] @output = nil @effect_chains = [] yield self if block_given? end
Public Instance Methods
_append_effects(sox)
click to toggle source
# File lib/chaussettes/clip.rb, line 55 def _append_effects(sox) @effect_chains.each.with_index do |chain, idx| sox << ':' if idx > 0 sox.concat(chain.commands) end end
_append_globals(sox)
click to toggle source
# File lib/chaussettes/clip.rb, line 43 def _append_globals(sox) @globals.each { |global| sox << global } end
_append_inputs(sox)
click to toggle source
# File lib/chaussettes/clip.rb, line 47 def _append_inputs(sox) @inputs.each { |input| sox.concat(input.commands) } end
_append_output(sox)
click to toggle source
# File lib/chaussettes/clip.rb, line 51 def _append_output(sox) sox.concat(@output.commands) if @output end
_build_command(sox)
click to toggle source
# File lib/chaussettes/clip.rb, line 35 def _build_command(sox) sox << '--combine' << @combine if @combine _append_globals sox _append_inputs sox _append_output sox _append_effects sox end
chain()
click to toggle source
# File lib/chaussettes/clip.rb, line 112 def chain EffectChain.new.tap do |chain| @effect_chains << chain end end
combine(method)
click to toggle source
# File lib/chaussettes/clip.rb, line 62 def combine(method) @combine = method self end
command(cmd = 'sox')
click to toggle source
# File lib/chaussettes/clip.rb, line 20 def command(cmd = 'sox') raise 'a clip requires at least one input' if @inputs.empty? Tool.new(cmd).tap { |sox| _build_command(sox) } end
guard()
click to toggle source
# File lib/chaussettes/clip.rb, line 67 def guard @globals << '--guard' self end
in(source = nil, device: nil)
click to toggle source
# File lib/chaussettes/clip.rb, line 102 def in(source = nil, device: nil) Input.new(source, device: device).tap do |input| @inputs << input end end
merge()
click to toggle source
# File lib/chaussettes/clip.rb, line 72 def merge @combine = :merge self end
mix()
click to toggle source
# File lib/chaussettes/clip.rb, line 77 def mix @combine = :mix self end
multiply()
click to toggle source
# File lib/chaussettes/clip.rb, line 82 def multiply @combine = :multiply self end
out(dest = nil, device: nil)
click to toggle source
# File lib/chaussettes/clip.rb, line 108 def out(dest = nil, device: nil) @output = Output.new(dest, device: device) end
play()
click to toggle source
# File lib/chaussettes/clip.rb, line 30 def play system(command('play').to_s) self end
repeatable()
click to toggle source
# File lib/chaussettes/clip.rb, line 92 def repeatable @globals << '-R' self end
run()
click to toggle source
# File lib/chaussettes/clip.rb, line 25 def run system(command.to_s) self end
show_progress(flag)
click to toggle source
# File lib/chaussettes/clip.rb, line 87 def show_progress(flag) @globals << (flag ? '--show-progress' : '--no-show-progress') self end
verbose(level)
click to toggle source
# File lib/chaussettes/clip.rb, line 97 def verbose(level) @globals << "-V#{level}" self end