class Diapason::Sound::WaveFileWriter

Attributes

sample_rate[RW]

Public Class Methods

new(sample_rate = 44100) click to toggle source
# File lib/diapason/sound/wave_file_writer.rb, line 6
def initialize(sample_rate = 44100)
  @sample_rate = sample_rate.to_f
end

Public Instance Methods

buffer(samples) click to toggle source
# File lib/diapason/sound/wave_file_writer.rb, line 18
def buffer(samples)
  WaveFile::Buffer.new(samples, format(:float))
end
format(sample_format) click to toggle source
# File lib/diapason/sound/wave_file_writer.rb, line 22
def format(sample_format)
  WaveFile::Format.new(:mono, sample_format, sample_rate)
end
write_samples(samples, path) click to toggle source
# File lib/diapason/sound/wave_file_writer.rb, line 10
def write_samples(samples, path)
  wave_file = WaveFile::Writer.new(path, format(:pcm_16)) do |writer|
    writer.write(buffer(samples))
  end

  File.new(wave_file.file_name)
end