Sha256: 7744d78aef8ef836080516673afe04dea274aa6227af121830762c1efe988f61
Contents?: true
Size: 846 Bytes
Versions: 1
Compression:
Stored size: 846 Bytes
Contents
module Music class Chord def initialize(notes) @notes = notes.collect do |note| if note.is_a?(Note) note else Note.new(note) end end.sort end def note_strings @notes.collect(&:note_string) end def describe distances = (1...@notes.size).collect do |i| @notes[0].distance_to(@notes[i]) end quality = case distances when [4, 7] :major when [3, 7] :minor when [3, 6] :diminished when [4, 8] :augmented when [4, 7, 11] :major_7 when [3, 7, 10] :minor_7 when [3, 6, 9] :diminished_7 when [3, 6, 10] :half_diminished_7 when [4, 8, 10] :augmented_7 end [@notes.first.letter, quality] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
music-0.5.1 | lib/music/chord.rb |