Method: Musicality::NoteArray#initialize

Defined in:
lib/musicality/composition/sequencing/note_array.rb

#initialize(notes) ⇒ NoteArray

Returns a new instance of NoteArray.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
# File 'lib/musicality/composition/sequencing/note_array.rb', line 7

def initialize notes
  raise ArgumentError if notes.empty?

  @notes = notes.clone.freeze
  @notes_idx = 0
  @notes_count = notes.size

  @duration = @notes.inject(0) {|sum, note| sum + note.duration}
end