Sha256: c96f960bb19a8ada1a4bf5da1e8f5fdecf5cf1d7838f8c01d43f6564000c7b1c

Contents?: true

Size: 983 Bytes

Versions: 3

Compression:

Stored size: 983 Bytes

Contents

module Coltrane
  module ClassicProgressions
    PROGRESSIONS = {
      pop:        [:major, [1,5,6,4]],
      fifties:    [:major, [1,6,4,5]],
      blues:      [:major, [1,4,1,5,4,1]],
      jazz:       [:major, [2,5,1]],
      jazz_minor: [:minor, [2,5,1]],
      andalusian: [:minor, [1,7,6,5]]
    }

    def pop(tone)
      scale, degrees = PROGRESSIONS[:pop]
      Scale.public_send(scale, tone).progression(*degrees)
    end

    def fifties(tone)
      scale, degrees = PROGRESSIONS[:fifties]
      Scale.public_send(scale, tone).progression(*degrees)
    end

    def blues(tone)
      scale, degrees = PROGRESSIONS[:blues]
      Scale.public_send(scale, tone).progression(*degrees)
    end

    def jazz(tone)
      scale, degrees = PROGRESSIONS[:jazz]
      Scale.public_send(scale, tone).progression(*degrees)
    end

    def andalusian(tone)
      scale, degrees = PROGRESSIONS[:andalusian]
      Scale.public_send(scale, tone).progression(*degrees)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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