Sha256: a06e0253f26a9835cbd891b85fe7335ce50883ec35c960a91c030a3767fd3863

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

require 'securerandom'

require 'fileutils'
require 'sox'

require 'mixins/descendents'
require 'mixins/sox_options'

require 'utils/file_name'
require 'utils/sox_wrapper'

require 'serinette/effect'
require 'serinette/reverb_effect'

require 'serinette/noise'
require 'serinette/synth_noise'
require 'serinette/source_noise'

require 'serinette/song'
require 'serinette/track'

# Contains functions for running essential commands and
# defining app level constants
module Serinette
  OUTPUT_FILE_NAME = 'output'
  TMP_DIR = './tmp/'
  SOUND_FILE_TYPE = '.wav'

  # Returns pull path of output file from project root
  def self.output_path
    Serinette::TMP_DIR +
      Serinette::OUTPUT_FILE_NAME +
      Serinette::SOUND_FILE_TYPE
  end

  # Removes all files in TMP_DIR of type SOUND_FILE_TYPE
  def self.clean
    FileUtils.rm_rf(Dir.glob("#{TMP_DIR}*#{SOUND_FILE_TYPE}"))
  end

  # Primary function for creating and outputing new songs
  def self.orchestrate
    clean

    sox = Sox::Cmd.new(combine: :mix)

    song = Song.new
    song.configure_command(sox)
    puts "Running sox with: #{sox.to_s}"

    sox.run
  end

  # Basic Serinette error:
  class Error < StandardError
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
serinette-0.0.3 lib/serinette.rb
serinette-0.0.2 lib/serinette.rb
serinette-0.0.0.pre lib/serinette.rb