Module: Hammelin

Extended by:
Hammelin
Included in:
Hammelin
Defined in:
lib/hammelin/note.rb,
lib/hammelin/version.rb,
lib/hammelin/hammelin.rb,
lib/hammelin/notes_range.rb

Defined Under Namespace

Classes: Note, NotesRange

Constant Summary collapse

VERSION =
"0.0.3"
PADDING =
" "

Instance Method Summary collapse

Instance Method Details

#compose(filename = nil, &block) ⇒ Object



34
35
36
37
38
39
# File 'lib/hammelin/hammelin.rb', line 34

def compose(filename=nil,&block)
  instance_eval &block
  save_to_file(filename) if filename
ensure
  player.close
end

#play(tune) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/hammelin/hammelin.rb', line 17

def play(tune)
  tune.play
rescue NoMethodError
  case tune
  when String
    Note.new(tune).play
  when Array
    NotesRange.from_array(tune).play
  end
end

#play_string(tune) ⇒ Object



28
29
30
31
32
# File 'lib/hammelin/hammelin.rb', line 28

def play_string(tune)
  player.play(tune)
  add_to_log(tune)
  player.close
end