Class: StepSequencer::SoundBuilder::DefaultEffects::Overlay

Inherits:
Object
  • Object
show all
Defined in:
lib/step_sequencer/sound_builder/default_effects/overlay.rb

Class Method Summary collapse

Class Method Details

.build(sources:, filename: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/step_sequencer/sound_builder/default_effects/overlay.rb', line 5

def self.build(sources:, filename: nil)
  # ensure_correct_sample_rates(sources)
  outfile = filename || build_outfile_path
  # `sox --combine mix #{sources.join(" ")} #{outfile}`
  system <<-SH
    ffmpeg -i #{sources.join(" -i ")} \
    -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 \
    #{outfile} 2> /dev/null
  SH
  outfile
end

.build_outfile_pathObject



19
20
21
# File 'lib/step_sequencer/sound_builder/default_effects/overlay.rb', line 19

def build_outfile_path
  "#{output_dir}/#{SecureRandom.urlsafe_base64}.mp3"
end