Sha256: 46d9173f1deea7108f9ff4a7616acd6ed3864cf5c32bd9a1ff8a8f512ea86acb

Contents?: true

Size: 538 Bytes

Versions: 3

Compression:

Stored size: 538 Bytes

Contents

module Coltrane
  class Progression
    extend ClassicProgressions

    attr_reader :scale

    def initialize(roman_notation, key: nil, scale: nil)
      if !key.nil?
        @scale = get_scale_from_key(key)
      end
    end

    def chords
      all_chords.values_at(*chord_indexes)
    end

    def on_guitar
      chords.map(&:on_guitar)
    end

    def on_piano
      chords.map(&:on_piano)
    end

    private

    def all_chords
      scale.sevenths
    end

    def chord_indexes
      degrees.map { |d| d-1 }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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