class MorseCode::Wave
Attributes
message[R]
Public Class Methods
new(message, frequency = 600, sample_rate = 8000)
click to toggle source
# File lib/morse_code/wave.rb, line 9 def initialize(message, frequency = 600, sample_rate = 8000) @message = message @sample_rate = sample_rate @sample = MorseCode::Sample.new(message, frequency, sample_rate) end
Public Instance Methods
generate()
click to toggle source
# File lib/morse_code/wave.rb, line 15 def generate buffer = WaveFile::Buffer.new(pcm_samples, WaveFile::Format.new(:mono, :float, @sample_rate)) WaveFile::Writer.new(filepath, WaveFile::Format.new(:mono, :pcm_16, @sample_rate)) do |writer| writer.write(buffer) end filepath end
Private Instance Methods
filename()
click to toggle source
# File lib/morse_code/wave.rb, line 29 def filename "#{Digest::MD5.hexdigest(message)[0, 10]}.wav" end
filepath()
click to toggle source
# File lib/morse_code/wave.rb, line 25 def filepath "/tmp/morse_code-#{filename}" end
pcm_samples()
click to toggle source
# File lib/morse_code/wave.rb, line 33 def pcm_samples @pcm_samples ||= @sample.pcm_samples end