def guess(cls, notes): notes = list(map(Note, notes)) for root in notes: progression = list(map(lambda note: Note.get_scale_number(root, note), notes)) progression = sorted(set(progression)) for chord_type, chord_progression in cls.blueprints.items(): if chord_progression == progression: return str(root.note) + ' ' + chord_type.title() return 'Unkown Chord'
def get_scale_number(self, note): return Note.get_scale_number(self.root, note)