# frozen_string_literal: true module Coltrane # It's totally a wip yet. 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]] }.freeze 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