Sha256: 20cb440367998f06dd60ed5475025188ff378aee84784d380c8342607a0d9f92

Contents?: true

Size: 594 Bytes

Versions: 3

Compression:

Stored size: 594 Bytes

Contents

module Coltrane
  # It describe the quality of a chord, like maj7 or dim.
  class ChordQuality < IntervalSequence
    attr_reader :name
    include Qualities

    def initialize(name: nil, notes: nil)
      if !name.nil?
        if(intervals = CHORD_QUALITIES[name])
          @name = name
          super(intervals: intervals)
        else
          raise ChordNotFoundError.new
        end
      elsif !notes.nil?
        super(notes: notes)
        @name = CHORD_QUALITIES.key(intervals_semitones)
      else
        raise WrongKeywords.new('[name:] || [notes:]')
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
coltrane-1.0.11 lib/coltrane/chord_quality.rb
coltrane-1.0.1 lib/coltrane/chord_quality.rb
coltrane-1.0.0 lib/coltrane/chord_quality.rb