def do_scale(options, scale): g = Guitar(frets=options.frets) scope = get_scope(options, g) if options.mode == "major": notes = scales.diatonic(scale) elif options.mode == "minor": notes = scales.harmonic_minor(scale) elif options.mode == "natural_minor": notes = scales.natural_minor(scale) elif options.mode == "harmonic_minor": notes = scales.harmonic_minor(scale) elif options.mode == "melodic_minor": notes = scales.melodic_minor(scale) elif options.mode == "ionian": notes = scales.ionian(scale) elif options.mode == "dorian": notes = scales.dorian(scale) elif options.mode == "phrygian": notes = scales.phrygian(scale) elif options.mode == "lydian": notes = scales.lydian(scale) elif options.mode == "mixolydian": notes = scales.mixolydian(scale) elif options.mode == "aeolian": notes = scales.aeolian(scale) elif options.mode == "locrian": notes = scales.locrian(scale) lines = g.get_notes(notes, scope) for line in lines: print(line)
def get_scale(basetone, mode): scale = [] if mode == "major": scale = scales.major(basetone) if mode == "minor": scale =scales.minor(basetone) if mode == "ionian": scale = scales.ionian(basetone) if mode == "dorian": scale = scales.dorian(basetone) if mode == "phrygian": scale = scales.phrygian(basetone) if mode == "lydian": scale = scales.lydian(basetone) if mode == "mixolydian": scale = scales.mixolydian(basetone) if mode == "aeolian": scale = scales.aeolian(basetone) if mode == "locrian": scale = scales.locrian(basetone) # TODO implement chromatic scales return scale
def Notes(self): """Returns a list of the notes in the scale""" return scales.mixolydian(self.root)