Spaces:
Running on Zero
Running on Zero
| import music21.interval | |
| PITCH_CLASS_MAP = { | |
| 'Cbb': 0, | |
| 'Cb': 1, | |
| 'C': 2, | |
| 'C#': 3, | |
| 'Cx': 4, | |
| 'Dbb': 5, | |
| 'Db': 6, | |
| 'D': 7, | |
| 'D#': 8, | |
| 'Dx': 9, | |
| 'Ebb': 10, | |
| 'Eb': 11, | |
| 'E': 12, | |
| 'E#': 13, | |
| 'Ex': 14, | |
| 'Fbb': 15, | |
| 'Fb': 16, | |
| 'F': 17, | |
| 'F#': 18, | |
| 'Fx': 19, | |
| 'Gbb': 20, | |
| 'Gb': 21, | |
| 'G': 22, | |
| 'G#': 23, | |
| 'Gx': 24, | |
| 'Abb': 25, | |
| 'Ab': 26, | |
| 'A': 27, | |
| 'A#': 28, | |
| 'Ax': 29, | |
| 'Bbb': 30, | |
| 'Bb': 31, | |
| 'B': 32, | |
| 'B#': 33, | |
| 'Bx': 34 | |
| } | |
| # SCALE_DEGREE_MAP = { | |
| # 'd1', 'M2', 'm7', 'P5', 'AA-4', 'd-3', 'P-5', 'dd1', 'd6', 'dd5', 'd-6', 'M-2', 'A-7', 'AA2', 'd-7', 'dd-3', 'A7', | |
| # 'AAA-4', 'M-7', 'A3', 'M-6', 'A-4', 'd4', 'A-3', 'A1', 'dd3', 'd5', 'd7', 'AA6', 'AA5', 'M-3', 'A-6', 'AA-6', | |
| # 'AA-2', 'AA4', 'm2', 'd2', 'P-4', 'M3', 'A4', 'm-7', 'P1', 'm6', 'A-2', 'd-2', 'AAA4', 'd-5', 'dd-4', 'dd2', 'dd-2', | |
| # 'M7', 'AA-5', 'dd4', 'm3', 'm-6', 'AA-3', 'A6', 'AA7', 'd-4', 'dd-5', 'P4', 'AA1', 'm-3', 'd3', 'A-5', 'A5', 'A2', | |
| # 'M6', 'AA-7', 'AA3', 'm-2', 'dd-7', 'dd-6' | |
| # } | |
| # SCALE_DEGREE_MAP = { | |
| # 'A2', 'dd3', 'AA7', 'dd-2', 'm2', 'P8', 'A6', 'AAA4', 'd2', 'm7', 'A3', 'd3', 'A7', 'dd5', 'd5', 'd4', 'AA8', 'M2', | |
| # 'm6', 'AA2', 'M7', 'dd4', 'm3', 'A5', 'AA5', 'A4', 'AA3', 'ddd5', 'M3', 'P5', 'd7', 'P4', 'AA1', 'dd7', 'AA6', 'A1', | |
| # 'M6', 'AA4', 'A8', 'd6', 'dd2', 'dd6' | |
| # } | |
| SCALE_DEGREE_MAP = [ | |
| 'A2', 'm2', 'P8', 'A6', 'A1', 'A5', | |
| 'm7', 'M2', 'm6', 'M7', | |
| 'm3', 'M3', 'P5', 'd7', | |
| 'P4', 'M6', 'A4', 'd5' | |
| ] | |
| SCALE_DEGREE_MAP = {interval: i for i, interval in enumerate(SCALE_DEGREE_MAP)} | |
| DIATONIC_TO_CHROMATIC_INTERVAL = { | |
| 1: (0, 0), | |
| 2: (1, 2), | |
| 3: (3, 4), | |
| 4: (5, 5), | |
| 5: (7, 7), | |
| 6: (8, 9), | |
| 7: (10, 11), | |
| 8: (12, 12) | |
| } | |
| SECONDS_TO_QL = lambda x: x * 2 | |
| METRIC_STRENGTH_QUARTER_ONSET = { | |
| '6/8': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 3, | |
| 0.75: 5, | |
| 1: 4, | |
| 1.25: 5, | |
| 1.5: 2, | |
| 1.75: 5, | |
| 2: 3, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5 | |
| }, | |
| '4/4': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 4, | |
| 0.75: 5, | |
| 1: 3, | |
| 1.25: 5, | |
| 1.5: 4, | |
| 1.75: 5, | |
| 2: 2, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5, | |
| 3: 3, | |
| 3.25: 5, | |
| 3.5: 4, | |
| 3.75: 5 | |
| }, | |
| '3/4': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 4, | |
| 0.75: 5, | |
| 1: 2, | |
| 1.25: 5, | |
| 1.5: 4, | |
| 1.75: 5, | |
| 2: 3, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5 | |
| }, | |
| '9/8': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 4, | |
| 0.75: 5, | |
| 1: 4, | |
| 1.25: 5, | |
| 1.5: 2, | |
| 1.75: 5, | |
| 2: 4, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5, | |
| 3: 3, | |
| 3.25: 5, | |
| 3.5: 4, | |
| 3.75: 5, | |
| 4: 4, | |
| 4.25: 5 | |
| }, | |
| '2/4': { | |
| 0: 1, | |
| 0.125: 5, | |
| 0.25: 4, | |
| 0.375: 5, | |
| 0.5: 3, | |
| 0.625: 5, | |
| 0.75: 4, | |
| 0.875: 5, | |
| 1: 2, | |
| 1.125: 5, | |
| 1.25: 4, | |
| 1.375: 5, | |
| 1.5: 3, | |
| 1.625: 5, | |
| 1.75: 4, | |
| 1.875: 5 | |
| }, | |
| '4/2': { | |
| 0: 1, | |
| 0.5: 5, | |
| 1: 4, | |
| 1.5: 5, | |
| 2: 3, | |
| 2.5: 5, | |
| 3: 4, | |
| 3.5: 5, | |
| 4: 2, | |
| 4.5: 5, | |
| 5: 4, | |
| 5.5: 5, | |
| 6: 3, | |
| 6.5: 5, | |
| 7: 4, | |
| 7.5: 5 | |
| }, | |
| '12/8': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 4, | |
| 0.75: 5, | |
| 1: 4, | |
| 1.25: 5, | |
| 1.5: 3, | |
| 1.75: 5, | |
| 2: 4, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5, | |
| 3: 2, | |
| 3.25: 5, | |
| 3.5: 4, | |
| 3.75: 5, | |
| 4: 4, | |
| 4.25: 5, | |
| 4.5: 3, | |
| 4.75: 5, | |
| 5: 4, | |
| 5.25: 5, | |
| 5.5: 4, | |
| 5.75: 5 | |
| }, | |
| '2/2': { | |
| 0: 1, | |
| 0.25: 5, | |
| 0.5: 4, | |
| 0.75: 5, | |
| 1: 3, | |
| 1.25: 5, | |
| 1.5: 4, | |
| 1.75: 5, | |
| 2: 2, | |
| 2.25: 5, | |
| 2.5: 4, | |
| 2.75: 5, | |
| 3: 3, | |
| 3.25: 5, | |
| 3.5: 4, | |
| 3.75: 5 | |
| }, | |
| '3/8': { | |
| 0: 1, | |
| 0.125: 5, | |
| 0.25: 4, | |
| 0.375: 5, | |
| 0.5: 2, | |
| 0.625: 5, | |
| 0.75: 4, | |
| 0.875: 5, | |
| 1: 3, | |
| 1.125: 5, | |
| 1.25: 4, | |
| 1.375: 5 | |
| }, | |
| '3/2': { | |
| 0: 1, | |
| 0.5: 5, | |
| 1: 4, | |
| 1.5: 5, | |
| 2: 2, | |
| 2.5: 5, | |
| 3: 4, | |
| 3.5: 5, | |
| 4: 3, | |
| 4.5: 5, | |
| 5: 4, | |
| 5.5: 5 | |
| }, | |
| '12/16': { | |
| 0: 1, | |
| 0.125: 5, | |
| 0.25: 4, | |
| 0.375: 5, | |
| 0.5: 4, | |
| 0.625: 5, | |
| 0.75: 3, | |
| 0.875: 5, | |
| 1: 4, | |
| 1.125: 5, | |
| 1.25: 4, | |
| 1.375: 5, | |
| 1.5: 2, | |
| 1.625: 5, | |
| 1.75: 4, | |
| 1.875: 5, | |
| 2: 4, | |
| 2.125: 5, | |
| 2.25: 3, | |
| 2.375: 5, | |
| 2.5: 4, | |
| 2.625: 5, | |
| 2.75: 4, | |
| 2.875: 5 | |
| }, | |
| '2/1': { | |
| 0: 1, | |
| 0.5: 5, | |
| 1: 4, | |
| 1.5: 5, | |
| 2: 3, | |
| 2.5: 5, | |
| 3: 4, | |
| 3.5: 5, | |
| 4: 2, | |
| 4.5: 5, | |
| 5: 4, | |
| 5.5: 5, | |
| 6: 3, | |
| 6.5: 5, | |
| 7: 4, | |
| 7.5: 5 | |
| }, | |
| '6/16': { | |
| 0: 1, | |
| 0.125: 5, | |
| 0.25: 3, | |
| 0.375: 5, | |
| 0.5: 4, | |
| 0.625: 5, | |
| 0.75: 2, | |
| 0.875: 5, | |
| 1: 3, | |
| 1.125: 5, | |
| 1.25: 4, | |
| 1.375: 5 | |
| }, | |
| } | |
| if __name__ == "__main__": | |
| # from music21.pitch import Pitch | |
| # from music21.interval import Interval | |
| # | |
| # alterations = ["", "-", "#", "--", "##"] | |
| # note_names = ["A", "B", "C", "D", "E", "F", "G"] | |
| # pitches = [Pitch(f"{note_name}{alteration}") for alteration in alterations for note_name in note_names] | |
| # options = set() | |
| # for _, pitch in enumerate(pitches): | |
| # for _, note in enumerate(note_names): | |
| # i = Interval(Pitch(note), pitch) | |
| # options.add(i.directedName) if i.direction is music21.interval.Direction.ASCENDING else options.add(i.complement.directedName) | |
| # print(len(options)) | |
| # print(options) | |
| print(len(SCALE_DEGREE_MAP)) | |
| print(SCALE_DEGREE_MAP) | |