Module: Cheep

Defined in:
lib/cheep/play.rb,
lib/cheep/noise/noise.rb,
lib/cheep/noise/noise.rb

Defined Under Namespace

Classes: Noise, Sine

Class Method Summary collapse

Class Method Details

.play(samples, filename = 'cheep.wav') ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/cheep/play.rb', line 5

def self.play(samples, filename = 'cheep.wav')
  writer_format = WaveFile::Format.new :mono, :pcm_16, SAMPLE_RATE
  buffer_format = WaveFile::Format.new :mono, :float,  SAMPLE_RATE

  WaveFile::Writer.new filename, writer_format do |writer|
    writer.write(WaveFile::Buffer.new samples, buffer_format)
  end

  platform = `uname`.chomp
  case platform
  when 'Darwin'
    system "afplay #{filename}"
  when 'Linux'
    system "aplay #{filename}"
  else
    abort "I don't know how to play wavs on #{platform}"
  end
end