Module: MusicTheory::Output

Included in:
Arpeggio, Chord, Harmonize, Note, Octave, Play, Scale, Third, Transpose
Defined in:
lib/music_theory/output.rb

Instance Method Summary collapse

Instance Method Details

#buffer_formatObject



12
13
14
# File 'lib/music_theory/output.rb', line 12

def buffer_format
  WaveFile::Format.new :mono, :float, sample_rate
end

#formatObject



8
9
10
# File 'lib/music_theory/output.rb', line 8

def format
  WaveFile::Format.new :mono, :pcm_16, sample_rate
end

#output_trackObject



16
17
18
19
20
21
# File 'lib/music_theory/output.rb', line 16

def output_track
  WaveFile::Writer.new "#{output_file_name || 'music'}.wav", format do |writer|
    buffer = WaveFile::Buffer.new samples, buffer_format
    writer.write buffer
  end
end

#playObject



23
24
25
26
27
# File 'lib/music_theory/output.rb', line 23

def play
  output_track unless File.file?("#{output_file_name || 'music'}.wav")
  `afplay #{output_file_name}.wav`
  nil
end

#sample_rateObject



4
5
6
# File 'lib/music_theory/output.rb', line 4

def sample_rate
  22050
end