asigalov61 commited on
Commit
b6e595f
·
verified ·
1 Parent(s): 03e2665

Upload TMIDIX.py

Browse files
Files changed (1) hide show
  1. TMIDIX.py +431 -35
TMIDIX.py CHANGED
@@ -9547,7 +9547,7 @@ NUMERALS = ["one", "two", "three", "four",
9547
 
9548
  SEMITONES = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
9549
 
9550
- MOOD_SCALES = ['Major', 'Minor', 'Major Minor']
9551
 
9552
  ###################################################################################
9553
 
@@ -9633,12 +9633,16 @@ def escore_notes_to_text_description(escore_notes,
9633
  key = SEMITONES[statistics.mode(pitches) % 12]
9634
 
9635
  #==============================================================================
9636
-
 
9637
  mood = ''
9638
 
9639
  if pitches:
9640
 
9641
- mood = escore_notes_scale(escore_notes)
 
 
 
9642
 
9643
  #==============================================================================
9644
 
@@ -9716,8 +9720,8 @@ def escore_notes_to_text_description(escore_notes,
9716
  else:
9717
  description += ' without drums'
9718
 
9719
- if key and mood:
9720
- description += ' in ' + key + ' ' + mood
9721
 
9722
  description += '.'
9723
 
@@ -9726,20 +9730,13 @@ def escore_notes_to_text_description(escore_notes,
9726
  if pitches:
9727
 
9728
  if comp_type not in ['monophonic melody', 'drum track']:
9729
-
9730
- if mood == 'Major':
9731
- description += 'This uplifting song has '
9732
-
9733
- else:
9734
- description += 'This reflective song has '
9735
 
9736
  elif comp_type == 'monophonic melody':
9737
 
9738
- if mood == 'Major':
9739
- description += 'This uplifting melody has '
9740
-
9741
- else:
9742
- description += 'This reflective melody has '
9743
 
9744
  else:
9745
  description += 'TThis drum track has '
@@ -10462,13 +10459,18 @@ def get_weighted_score(src_order, trg_order):
10462
 
10463
  ###################################################################################
10464
 
10465
- def escore_notes_scale(escore_notes, return_scales_indexes=False):
 
 
 
 
 
10466
 
10467
  trg_chords = []
10468
 
10469
- for i in range(-3, 3):
10470
-
10471
- trans_escore_notes = transpose_escore_notes(escore_notes, i)
10472
 
10473
  cscore = chordify_score([1000, trans_escore_notes])
10474
 
@@ -10497,17 +10499,20 @@ def escore_notes_scale(escore_notes, return_scales_indexes=False):
10497
  if tones_chords:
10498
  trg_chords.extend(tones_chords)
10499
 
 
 
 
 
 
 
10500
  if trg_chords:
10501
 
10502
  #========================================================================
10503
 
10504
- src_order = Counter(trg_chords).most_common()
10505
- trg1_order = MAJOR_SCALE_CHORDS_COUNTS
10506
- trg2_order = MINOR_SCALE_CHORDS_COUNTS
10507
-
10508
 
10509
- trg1_items = [item for item, count in trg1_order]
10510
- trg2_items = [item for item, count in trg2_order]
10511
 
10512
 
10513
  trg1_score = get_weighted_score(src_order, trg1_items)
@@ -10517,26 +10522,417 @@ def escore_notes_scale(escore_notes, return_scales_indexes=False):
10517
 
10518
  if trg1_score <= trg2_score:
10519
 
10520
- if return_scales_indexes:
10521
- return 1
10522
 
10523
  else:
10524
- return 'Major'
10525
 
10526
  else:
10527
- if return_scales_indexes:
10528
- return 0
 
10529
  else:
10530
- return 'Minor'
10531
 
10532
  #========================================================================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10533
 
10534
  else:
10535
- if return_scales_indexes:
10536
- return -1
 
10537
  else:
10538
- return 'Unknown'
 
 
10539
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10540
  ###################################################################################
10541
  #
10542
  # This is the end of the TMIDI X Python module
 
9547
 
9548
  SEMITONES = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
9549
 
9550
+ BASIC_SCALES = ['Major', 'Minor']
9551
 
9552
  ###################################################################################
9553
 
 
9633
  key = SEMITONES[statistics.mode(pitches) % 12]
9634
 
9635
  #==============================================================================
9636
+
9637
+ scale = ''
9638
  mood = ''
9639
 
9640
  if pitches:
9641
 
9642
+ result = escore_notes_scale(escore_notes)
9643
+
9644
+ scale = result[0]
9645
+ mood = result[1].split(' ')[0].lower()
9646
 
9647
  #==============================================================================
9648
 
 
9720
  else:
9721
  description += ' without drums'
9722
 
9723
+ if key and scale:
9724
+ description += ' in ' + key + ' ' + scale
9725
 
9726
  description += '.'
9727
 
 
9730
  if pitches:
9731
 
9732
  if comp_type not in ['monophonic melody', 'drum track']:
9733
+
9734
+ description += 'This ' + mood + ' song has '
 
 
 
 
9735
 
9736
  elif comp_type == 'monophonic melody':
9737
 
9738
+ description += 'This ' + mood + ' melody has '
9739
+
 
 
 
9740
 
9741
  else:
9742
  description += 'TThis drum track has '
 
10459
 
10460
  ###################################################################################
10461
 
10462
+ def escore_notes_scale(escore_notes,
10463
+ score_mult_factor=3,
10464
+ start_note=0,
10465
+ num_notes=-1,
10466
+ return_scale_indexes=False
10467
+ ):
10468
 
10469
  trg_chords = []
10470
 
10471
+ for i in range(-score_mult_factor, score_mult_factor):
10472
+
10473
+ trans_escore_notes = transpose_escore_notes(escore_notes[start_note:start_note+num_notes], i)
10474
 
10475
  cscore = chordify_score([1000, trans_escore_notes])
10476
 
 
10499
  if tones_chords:
10500
  trg_chords.extend(tones_chords)
10501
 
10502
+ #========================================================================
10503
+
10504
+ scales_results = []
10505
+
10506
+ #========================================================================
10507
+
10508
  if trg_chords:
10509
 
10510
  #========================================================================
10511
 
10512
+ src_order = Counter(trg_chords).most_common()
 
 
 
10513
 
10514
+ trg1_items = [item for item, count in MAJOR_SCALE_CHORDS_COUNTS]
10515
+ trg2_items = [item for item, count in MINOR_SCALE_CHORDS_COUNTS]
10516
 
10517
 
10518
  trg1_score = get_weighted_score(src_order, trg1_items)
 
10522
 
10523
  if trg1_score <= trg2_score:
10524
 
10525
+ if return_scale_indexes:
10526
+ scales_results.append(1)
10527
 
10528
  else:
10529
+ scales_results.append('Major')
10530
 
10531
  else:
10532
+ if return_scale_indexes:
10533
+ scales_results.append(0)
10534
+
10535
  else:
10536
+ scales_results.append('Minor')
10537
 
10538
  #========================================================================
10539
+
10540
+ best_match = None
10541
+ best_score = float('inf')
10542
+
10543
+ for trg_order in ALL_MOOD_TYPES:
10544
+
10545
+ trg_items = [item for item, count in trg_order]
10546
+
10547
+ trg_score = get_weighted_score(src_order, trg_items)
10548
+
10549
+ if trg_score < best_score:
10550
+ best_score = trg_score
10551
+
10552
+ if return_scale_indexes:
10553
+ best_match = ALL_MOOD_TYPES.index(trg_order)
10554
+
10555
+ else:
10556
+ best_match = ALL_MOOD_TYPES_LABELS[ALL_MOOD_TYPES.index(trg_order)]
10557
+
10558
+ scales_results.append(best_match)
10559
 
10560
  else:
10561
+ if return_scale_indexes:
10562
+ scales_results.extend([-1, -1])
10563
+
10564
  else:
10565
+ scales_results.extend(['Unknown', 'Unknown'])
10566
+
10567
+ return scales_results
10568
 
10569
+ ###################################################################################
10570
+
10571
+ HAPPY_MAJOR = [(317, 1916), (89, 1876), (320, 1840), (267, 1817), (301, 1795), (178, 1750),
10572
+ (314, 1725), (0, 1691), (319, 1658), (288, 1624), (309, 1599), (233, 1559),
10573
+ (112, 1050), (127, 972), (201, 884), (194, 879), (216, 860), (38, 831),
10574
+ (256, 828), (23, 822), (105, 820), (283, 756), (16, 734), (249, 622),
10575
+ (91, 254), (303, 242), (34, 237), (316, 235), (110, 235), (123, 234),
10576
+ (212, 230), (92, 225), (181, 225), (114, 219), (272, 218), (290, 213),
10577
+ (235, 208), (180, 207), (269, 206), (2, 201), (3, 199), (203, 198), (37, 195),
10578
+ (254, 191), (199, 189), (311, 189), (293, 187), (5, 186), (270, 185),
10579
+ (183, 184), (291, 183), (94, 183), (25, 182), (304, 181), (258, 176),
10580
+ (215, 173), (191, 172), (193, 168), (104, 167), (282, 164), (238, 162),
10581
+ (248, 157), (15, 156), (13, 156), (126, 153), (21, 150), (102, 150),
10582
+ (306, 150), (312, 144), (280, 141), (236, 139), (162, 116), (120, 114),
10583
+ (246, 113), (134, 109), (43, 108), (221, 105), (264, 103), (73, 100),
10584
+ (159, 98), (42, 95), (45, 94), (220, 93), (131, 91), (119, 91), (227, 90),
10585
+ (209, 88), (70, 86), (144, 86), (31, 85), (223, 84), (58, 82), (1, 80),
10586
+ (132, 79), (30, 76), (90, 75), (268, 75), (259, 74), (234, 72), (179, 72),
10587
+ (147, 70), (318, 69), (208, 67), (315, 66), (55, 66), (49, 64), (310, 63),
10588
+ (138, 62), (214, 61), (263, 60), (204, 59), (302, 58), (196, 58), (115, 56),
10589
+ (107, 53), (18, 53), (153, 52), (289, 52), (9, 50), (10, 50), (217, 49),
10590
+ (243, 48), (39, 48), (99, 48), (7, 47), (188, 46), (26, 46), (68, 46),
10591
+ (36, 45), (125, 43), (202, 43), (285, 42), (24, 42), (277, 41), (98, 40),
10592
+ (251, 39), (113, 39), (8, 38), (128, 38), (187, 37), (35, 36), (213, 36),
10593
+ (97, 35), (186, 35), (61, 34), (150, 34), (160, 33), (124, 32), (96, 32),
10594
+ (257, 32), (275, 31), (241, 31), (296, 30), (64, 30), (297, 29), (298, 29),
10595
+ (117, 29), (46, 28), (273, 28), (206, 28), (157, 27), (242, 26), (224, 26),
10596
+ (185, 26), (222, 26), (59, 25), (135, 24), (158, 23), (28, 23), (294, 22),
10597
+ (69, 22), (276, 21), (274, 21), (225, 21), (148, 20), (50, 20), (48, 20),
10598
+ (281, 19), (139, 19), (307, 19), (228, 19), (75, 18), (164, 18), (44, 18),
10599
+ (133, 18), (79, 17), (184, 17), (57, 17), (240, 17), (239, 17), (295, 17),
10600
+ (247, 16), (95, 16), (261, 15), (308, 15), (287, 14), (76, 14), (165, 14),
10601
+ (175, 14), (82, 14), (284, 14), (71, 14), (253, 12), (155, 12), (86, 12),
10602
+ (4, 12), (93, 12), (171, 12), (137, 12), (66, 11), (232, 11), (168, 11),
10603
+ (103, 11), (192, 11), (54, 10), (145, 10), (40, 10), (51, 10), (182, 10),
10604
+ (226, 10), (14, 10), (129, 9), (218, 9), (146, 9), (237, 9), (19, 9), (108, 9),
10605
+ (197, 9), (140, 8), (229, 8), (6, 7), (17, 7), (56, 6), (106, 6), (271, 6),
10606
+ (109, 6), (163, 5), (143, 5), (65, 5), (154, 5), (27, 5), (116, 5), (205, 5),
10607
+ (195, 5), (250, 5), (198, 5), (41, 5), (136, 5), (47, 4), (52, 4), (141, 4),
10608
+ (230, 4), (84, 4), (173, 4), (255, 4), (11, 4), (100, 4), (189, 4), (244, 4),
10609
+ (278, 4), (219, 3), (20, 3), (286, 3), (130, 3), (170, 3), (151, 3), (53, 2),
10610
+ (77, 2), (166, 2), (67, 2), (156, 2), (63, 2), (60, 2), (292, 2), (62, 2),
10611
+ (142, 1), (231, 1), (85, 1), (174, 1), (81, 1), (152, 1), (262, 1), (72, 1),
10612
+ (161, 1), (29, 1), (118, 1), (207, 1), (149, 1), (300, 1), (299, 1), (252, 1)]
10613
+
10614
+ ###################################################################################
10615
+
10616
+ MELANCHOLIC_MAJOR = [(317, 451), (301, 430), (89, 426), (320, 419), (267, 416), (178, 415),
10617
+ (314, 401), (319, 400), (0, 394), (309, 390), (288, 389), (233, 365),
10618
+ (37, 224), (215, 207), (258, 203), (126, 191), (114, 185), (203, 183),
10619
+ (283, 141), (127, 131), (38, 127), (216, 115), (194, 113), (112, 112),
10620
+ (23, 109), (105, 105), (249, 103), (16, 99), (306, 96), (256, 92), (13, 87),
10621
+ (280, 86), (181, 86), (102, 85), (92, 84), (104, 84), (15, 84), (191, 83),
10622
+ (246, 83), (270, 81), (94, 74), (3, 73), (238, 72), (272, 72), (236, 72),
10623
+ (201, 72), (183, 70), (293, 66), (193, 63), (254, 63), (212, 61), (282, 60),
10624
+ (123, 58), (5, 57), (25, 55), (291, 53), (34, 52), (316, 50), (304, 48),
10625
+ (91, 47), (2, 47), (110, 46), (248, 45), (303, 38), (311, 38), (45, 36),
10626
+ (180, 35), (199, 34), (235, 33), (162, 33), (221, 33), (21, 32), (144, 32),
10627
+ (132, 31), (179, 29), (90, 29), (43, 29), (217, 29), (312, 28), (39, 28),
10628
+ (128, 28), (302, 27), (268, 27), (36, 27), (125, 27), (269, 26), (134, 26),
10629
+ (234, 26), (73, 25), (318, 25), (55, 25), (1, 24), (290, 23), (8, 22),
10630
+ (310, 22), (315, 22), (97, 20), (186, 20), (241, 20), (275, 20), (296, 20),
10631
+ (289, 20), (119, 18), (298, 18), (31, 17), (6, 17), (95, 17), (184, 17),
10632
+ (273, 17), (223, 16), (276, 15), (120, 15), (239, 15), (30, 15), (208, 14),
10633
+ (59, 14), (159, 13), (146, 13), (42, 13), (209, 13), (26, 13), (264, 13),
10634
+ (147, 13), (187, 13), (242, 13), (115, 12), (220, 12), (70, 12), (226, 12),
10635
+ (47, 12), (148, 12), (24, 11), (49, 11), (131, 10), (227, 10), (214, 10),
10636
+ (136, 9), (225, 9), (69, 9), (138, 9), (158, 9), (106, 9), (98, 9), (257, 8),
10637
+ (263, 8), (297, 8), (50, 8), (204, 8), (259, 8), (7, 8), (294, 8), (281, 8),
10638
+ (9, 8), (113, 7), (202, 7), (17, 7), (124, 7), (213, 7), (57, 7), (96, 7),
10639
+ (247, 7), (285, 6), (185, 6), (130, 6), (219, 6), (218, 6), (58, 6), (139, 5),
10640
+ (35, 5), (240, 5), (195, 5), (250, 5), (20, 5), (284, 5), (150, 5), (261, 5),
10641
+ (48, 5), (107, 4), (196, 4), (251, 4), (292, 4), (41, 4), (228, 4), (61, 4),
10642
+ (71, 4), (160, 4), (109, 4), (103, 4), (192, 4), (206, 4), (137, 4), (274, 3),
10643
+ (18, 3), (305, 3), (295, 3), (93, 3), (308, 3), (182, 3), (237, 3), (271, 3),
10644
+ (198, 3), (168, 3), (51, 3), (140, 3), (229, 3), (54, 3), (155, 3), (10, 3),
10645
+ (99, 3), (157, 2), (64, 2), (143, 2), (224, 2), (253, 2), (307, 2), (66, 2),
10646
+ (40, 2), (129, 2), (188, 2), (11, 2), (243, 2), (28, 1), (117, 1), (4, 1),
10647
+ (313, 1), (62, 1), (151, 1), (56, 1), (135, 1), (46, 1), (165, 1), (79, 1),
10648
+ (299, 1), (60, 1), (149, 1), (22, 1), (111, 1), (200, 1)]
10649
+
10650
+ ###################################################################################
10651
+
10652
+ MELANCHOLIC_MINOR = [(89, 3681), (267, 3628), (317, 3472), (301, 3408), (320, 3290), (178, 3261),
10653
+ (314, 3261), (288, 3206), (0, 3140), (233, 3050), (319, 2894), (309, 2841),
10654
+ (114, 570), (283, 559), (104, 544), (193, 529), (215, 509), (37, 507),
10655
+ (127, 482), (126, 468), (38, 456), (282, 432), (248, 417), (25, 415),
10656
+ (194, 414), (216, 412), (112, 411), (258, 407), (23, 403), (105, 399),
10657
+ (249, 399), (303, 387), (203, 386), (15, 366), (256, 356), (16, 351),
10658
+ (290, 343), (316, 343), (269, 332), (235, 323), (91, 312), (311, 296),
10659
+ (272, 286), (34, 273), (94, 271), (180, 269), (212, 265), (123, 260),
10660
+ (306, 259), (270, 254), (102, 246), (201, 246), (238, 246), (280, 242),
10661
+ (110, 236), (183, 236), (191, 232), (293, 230), (5, 228), (2, 228), (291, 226),
10662
+ (304, 225), (13, 219), (312, 207), (21, 207), (181, 203), (92, 195),
10663
+ (246, 192), (3, 191), (254, 181), (236, 173), (199, 155), (268, 124),
10664
+ (179, 114), (144, 103), (90, 103), (302, 102), (318, 101), (234, 99),
10665
+ (289, 86), (1, 84), (310, 83), (31, 79), (120, 79), (55, 78), (315, 72),
10666
+ (162, 72), (264, 71), (73, 70), (209, 69), (159, 61), (227, 61), (263, 60),
10667
+ (49, 58), (138, 57), (119, 51), (273, 49), (70, 49), (10, 47), (8, 44),
10668
+ (97, 44), (186, 44), (241, 44), (275, 44), (99, 44), (146, 43), (239, 42),
10669
+ (296, 39), (214, 39), (217, 39), (95, 38), (148, 37), (36, 36), (281, 34),
10670
+ (307, 33), (125, 33), (218, 32), (59, 31), (134, 31), (160, 31), (184, 31),
10671
+ (129, 29), (208, 29), (223, 29), (71, 29), (30, 29), (96, 27), (147, 27),
10672
+ (228, 27), (57, 27), (6, 27), (284, 26), (50, 26), (139, 26), (247, 24),
10673
+ (24, 24), (250, 24), (115, 24), (204, 24), (259, 24), (9, 23), (240, 23),
10674
+ (274, 23), (220, 23), (58, 23), (103, 22), (40, 22), (131, 22), (243, 22),
10675
+ (106, 22), (285, 22), (46, 22), (295, 21), (308, 21), (221, 21), (14, 20),
10676
+ (45, 20), (42, 20), (195, 20), (294, 19), (188, 19), (277, 19), (185, 18),
10677
+ (192, 18), (17, 18), (135, 18), (224, 18), (7, 17), (61, 17), (150, 16),
10678
+ (225, 14), (69, 14), (158, 14), (128, 14), (257, 14), (149, 13), (64, 13),
10679
+ (298, 13), (39, 13), (213, 12), (113, 12), (43, 11), (132, 11), (28, 11),
10680
+ (35, 10), (124, 10), (47, 10), (136, 10), (41, 10), (130, 10), (157, 10),
10681
+ (202, 10), (165, 10), (66, 9), (155, 9), (219, 9), (153, 9), (18, 9), (255, 9),
10682
+ (11, 9), (60, 8), (22, 8), (111, 8), (107, 8), (299, 7), (143, 7), (232, 7),
10683
+ (86, 7), (175, 7), (276, 6), (313, 6), (56, 6), (62, 6), (278, 6), (151, 6),
10684
+ (26, 6), (117, 6), (206, 6), (196, 6), (98, 5), (187, 5), (242, 5), (200, 5),
10685
+ (109, 5), (198, 5), (229, 5), (54, 5), (305, 5), (261, 5), (48, 5), (76, 5),
10686
+ (226, 5), (145, 4), (20, 4), (251, 4), (68, 4), (292, 4), (253, 4), (287, 4),
10687
+ (244, 3), (4, 3), (189, 3), (93, 2), (182, 2), (237, 2), (297, 2), (100, 2),
10688
+ (173, 2), (53, 2), (142, 2), (231, 2), (85, 2), (174, 2), (271, 2), (137, 2),
10689
+ (82, 2), (171, 2), (164, 1), (44, 1), (133, 1), (222, 1), (163, 1), (65, 1),
10690
+ (154, 1), (27, 1), (116, 1), (205, 1)]
10691
+
10692
+ ###################################################################################
10693
+
10694
+ NEUTRAL_MAJOR = [(320, 574), (89, 542), (0, 535), (317, 488), (319, 458), (314, 439),
10695
+ (178, 424), (267, 405), (233, 375), (301, 330), (309, 321), (288, 287),
10696
+ (283, 77), (112, 76), (38, 71), (23, 67), (216, 61), (127, 59), (291, 54),
10697
+ (316, 52), (269, 51), (290, 51), (34, 50), (303, 50), (110, 49), (280, 47),
10698
+ (13, 45), (311, 44), (306, 43), (238, 43), (272, 43), (3, 42), (21, 42),
10699
+ (16, 41), (270, 41), (183, 39), (102, 39), (92, 39), (312, 37), (105, 37),
10700
+ (194, 37), (199, 35), (191, 35), (246, 35), (5, 35), (181, 34), (304, 34),
10701
+ (94, 33), (293, 31), (91, 29), (268, 27), (236, 27), (256, 27), (144, 24),
10702
+ (90, 24), (179, 23), (234, 23), (302, 23), (235, 23), (2, 23), (318, 22),
10703
+ (1, 22), (254, 22), (123, 22), (315, 22), (212, 22), (249, 22), (8, 21),
10704
+ (97, 21), (186, 21), (241, 21), (289, 21), (180, 21), (310, 21), (201, 21),
10705
+ (104, 20), (214, 19), (55, 18), (296, 17), (275, 17), (36, 17), (125, 17),
10706
+ (193, 16), (58, 16), (147, 16), (10, 15), (37, 14), (215, 14), (15, 14),
10707
+ (25, 14), (114, 14), (217, 13), (282, 12), (259, 12), (9, 12), (98, 12),
10708
+ (187, 12), (99, 11), (126, 10), (248, 10), (188, 10), (243, 10), (277, 10),
10709
+ (264, 10), (96, 10), (73, 10), (162, 10), (43, 10), (128, 10), (203, 8),
10710
+ (150, 8), (221, 8), (39, 8), (24, 8), (113, 8), (274, 6), (295, 6), (308, 6),
10711
+ (159, 6), (258, 6), (120, 6), (42, 6), (131, 6), (220, 6), (30, 6), (132, 6),
10712
+ (7, 6), (298, 6), (119, 6), (228, 4), (185, 4), (71, 4), (240, 4), (160, 4),
10713
+ (153, 4), (18, 4), (61, 4), (35, 4), (285, 4), (209, 4), (95, 4), (307, 4),
10714
+ (146, 4), (184, 4), (239, 4), (202, 4), (247, 4), (273, 4), (257, 4), (281, 4),
10715
+ (64, 2), (156, 2), (50, 2), (63, 2), (45, 2), (139, 2), (152, 2), (134, 2),
10716
+ (124, 2), (107, 2), (12, 2), (11, 2), (223, 2), (213, 2), (196, 2), (101, 2),
10717
+ (31, 2), (251, 2), (190, 2), (106, 2), (40, 2), (195, 2), (6, 2), (129, 2),
10718
+ (250, 2), (218, 2), (284, 2), (294, 2), (57, 2), (59, 2), (148, 2)]
10719
+
10720
+ ###################################################################################
10721
+
10722
+ NEUTRAL_MINOR = [(317, 530), (301, 499), (267, 454), (309, 438), (314, 422), (288, 420),
10723
+ (178, 415), (320, 414), (89, 399), (319, 383), (0, 341), (233, 307),
10724
+ (215, 133), (37, 127), (212, 123), (193, 121), (123, 121), (34, 119),
10725
+ (191, 117), (126, 115), (104, 108), (112, 107), (272, 105), (23, 102),
10726
+ (15, 96), (127, 92), (38, 87), (283, 85), (102, 84), (91, 83), (94, 83),
10727
+ (306, 82), (216, 80), (2, 80), (280, 79), (293, 78), (5, 78), (13, 77),
10728
+ (183, 76), (114, 74), (316, 69), (105, 68), (180, 64), (201, 62), (256, 58),
10729
+ (16, 56), (246, 55), (203, 55), (303, 52), (194, 52), (282, 49), (311, 49),
10730
+ (248, 47), (238, 43), (258, 41), (249, 39), (7, 32), (10, 29), (96, 29),
10731
+ (25, 28), (125, 27), (214, 27), (36, 26), (134, 23), (99, 22), (310, 22),
10732
+ (270, 21), (291, 20), (223, 20), (302, 20), (213, 19), (185, 19), (217, 19),
10733
+ (3, 19), (221, 19), (45, 18), (268, 16), (289, 16), (235, 15), (179, 14),
10734
+ (234, 14), (181, 14), (312, 13), (240, 13), (21, 13), (274, 13), (110, 13),
10735
+ (92, 13), (236, 13), (31, 13), (120, 13), (304, 12), (269, 11), (113, 11),
10736
+ (150, 10), (43, 10), (132, 10), (68, 9), (157, 9), (202, 9), (55, 9), (144, 9),
10737
+ (315, 9), (318, 9), (42, 9), (131, 9), (188, 8), (70, 8), (159, 8), (241, 7),
10738
+ (275, 7), (296, 7), (8, 7), (290, 7), (97, 7), (186, 7), (24, 7), (119, 7),
10739
+ (227, 7), (254, 6), (219, 6), (35, 6), (273, 6), (124, 6), (294, 6), (247, 6),
10740
+ (220, 6), (281, 6), (208, 6), (46, 6), (61, 6), (243, 5), (199, 5), (128, 5),
10741
+ (30, 5), (11, 5), (218, 5), (192, 5), (162, 5), (257, 5), (138, 5), (264, 5),
10742
+ (148, 4), (41, 4), (130, 4), (39, 4), (307, 4), (40, 4), (129, 4), (17, 4),
10743
+ (106, 4), (195, 4), (224, 4), (135, 4), (209, 4), (276, 3), (297, 3), (26, 3),
10744
+ (115, 3), (277, 3), (20, 3), (109, 3), (198, 3), (6, 3), (298, 3), (95, 3),
10745
+ (184, 3), (1, 3), (165, 3), (66, 3), (155, 3), (73, 3), (69, 3), (158, 3),
10746
+ (71, 3), (160, 3), (64, 3), (153, 3), (18, 3), (107, 3), (187, 2), (242, 2),
10747
+ (59, 2), (239, 2), (226, 2), (163, 2), (14, 2), (65, 2), (263, 2), (103, 2),
10748
+ (154, 2), (49, 2), (27, 2), (253, 2), (116, 2), (287, 2), (205, 2), (4, 1),
10749
+ (93, 1), (182, 1), (237, 1), (271, 1), (292, 1), (222, 1), (19, 1), (108, 1),
10750
+ (197, 1), (57, 1), (146, 1), (143, 1), (211, 1), (232, 1), (266, 1), (47, 1),
10751
+ (86, 1), (87, 1), (136, 1), (175, 1), (176, 1), (225, 1), (82, 1), (83, 1),
10752
+ (171, 1), (172, 1), (117, 1), (206, 1), (261, 1), (48, 1), (137, 1), (90, 1),
10753
+ (204, 1), (250, 1), (259, 1), (284, 1)]
10754
+
10755
+ ###################################################################################
10756
+
10757
+ SAD_MAJOR = [(267, 46), (301, 45), (178, 43), (89, 37), (288, 35), (233, 35), (215, 34),
10758
+ (317, 32), (320, 32), (309, 30), (314, 24), (0, 22), (319, 21), (114, 19),
10759
+ (203, 19), (258, 19), (37, 19), (193, 18), (126, 18), (15, 17), (104, 17),
10760
+ (248, 16), (282, 16), (112, 13), (134, 13), (105, 10), (221, 10), (194, 10),
10761
+ (45, 10), (162, 8), (43, 8), (201, 8), (132, 8), (256, 8), (16, 8), (127, 7),
10762
+ (283, 6), (38, 6), (306, 5), (223, 5), (216, 5), (31, 5), (23, 5), (120, 5),
10763
+ (272, 4), (123, 4), (293, 4), (119, 3), (181, 3), (125, 3), (94, 3), (236, 3),
10764
+ (212, 3), (183, 3), (270, 3), (2, 3), (238, 3), (291, 3), (91, 3), (304, 3),
10765
+ (209, 3), (312, 3), (264, 3), (163, 2), (148, 2), (157, 2), (316, 2), (217, 2),
10766
+ (13, 2), (65, 2), (208, 2), (7, 2), (214, 2), (34, 2), (36, 2), (102, 2),
10767
+ (154, 2), (249, 2), (263, 2), (96, 2), (10, 2), (191, 2), (27, 2), (49, 2),
10768
+ (99, 2), (116, 2), (138, 2), (180, 2), (205, 2), (227, 2), (235, 2), (226, 1),
10769
+ (298, 1), (307, 1), (213, 1), (159, 1), (292, 1), (144, 1), (147, 1), (290, 1),
10770
+ (47, 1), (39, 1), (40, 1), (42, 1), (305, 1), (68, 1), (1, 1), (9, 1),
10771
+ (303, 1), (136, 1), (128, 1), (129, 1), (131, 1), (313, 1), (90, 1), (98, 1),
10772
+ (311, 1), (225, 1), (218, 1), (185, 1), (220, 1), (62, 1), (179, 1), (187, 1),
10773
+ (59, 1), (246, 1), (69, 1), (57, 1), (247, 1), (240, 1), (30, 1), (151, 1),
10774
+ (188, 1), (239, 1), (234, 1), (242, 1), (280, 1), (158, 1), (146, 1), (281, 1),
10775
+ (274, 1), (56, 1), (243, 1), (273, 1), (268, 1), (276, 1)]
10776
+
10777
+ ###################################################################################
10778
+
10779
+ SAD_MINOR = [(178, 1800), (267, 1764), (233, 1727), (309, 1671), (288, 1644), (0, 1610),
10780
+ (301, 1580), (320, 1532), (89, 1512), (317, 1454), (319, 1417), (314, 1383),
10781
+ (272, 238), (269, 232), (183, 230), (180, 224), (212, 219), (34, 217),
10782
+ (238, 217), (311, 214), (2, 212), (5, 210), (303, 208), (293, 206), (91, 202),
10783
+ (94, 202), (235, 200), (13, 199), (290, 198), (316, 192), (3, 190), (306, 188),
10784
+ (280, 187), (193, 185), (291, 184), (123, 183), (191, 182), (37, 179),
10785
+ (199, 172), (102, 169), (181, 164), (110, 163), (92, 163), (246, 161),
10786
+ (21, 157), (236, 156), (312, 154), (270, 146), (203, 146), (15, 144),
10787
+ (126, 135), (25, 135), (114, 135), (304, 132), (215, 131), (104, 131),
10788
+ (254, 130), (38, 124), (112, 124), (282, 123), (216, 114), (23, 111),
10789
+ (127, 102), (201, 101), (16, 100), (283, 96), (248, 96), (289, 92), (268, 92),
10790
+ (194, 92), (258, 91), (310, 87), (105, 86), (302, 81), (179, 77), (234, 77),
10791
+ (249, 76), (256, 76), (318, 60), (315, 57), (1, 53), (8, 49), (186, 47),
10792
+ (90, 47), (97, 47), (224, 47), (55, 46), (241, 46), (275, 46), (296, 45),
10793
+ (45, 43), (144, 42), (46, 38), (274, 37), (42, 36), (135, 36), (134, 34),
10794
+ (217, 31), (214, 30), (59, 30), (61, 30), (240, 28), (148, 28), (70, 28),
10795
+ (159, 28), (73, 27), (49, 27), (277, 26), (295, 26), (308, 26), (138, 26),
10796
+ (227, 26), (223, 25), (10, 25), (120, 25), (221, 24), (31, 24), (128, 24),
10797
+ (185, 23), (39, 23), (99, 23), (36, 23), (150, 21), (243, 21), (162, 21),
10798
+ (7, 20), (206, 18), (298, 18), (96, 18), (125, 18), (284, 16), (198, 16),
10799
+ (209, 16), (264, 16), (43, 16), (14, 15), (213, 15), (132, 15), (158, 14),
10800
+ (28, 14), (188, 13), (117, 13), (35, 13), (253, 12), (103, 12), (192, 12),
10801
+ (220, 12), (30, 12), (225, 11), (69, 11), (287, 11), (131, 11), (24, 10),
10802
+ (119, 10), (208, 10), (261, 9), (48, 9), (76, 9), (165, 9), (9, 9), (66, 9),
10803
+ (4, 9), (195, 8), (250, 8), (58, 8), (147, 8), (247, 8), (281, 8), (47, 7),
10804
+ (219, 7), (20, 7), (109, 7), (56, 7), (242, 6), (204, 6), (259, 6), (137, 6),
10805
+ (226, 6), (292, 6), (93, 6), (62, 6), (98, 6), (151, 6), (187, 5), (115, 5),
10806
+ (273, 5), (294, 5), (17, 5), (130, 5), (106, 5), (145, 5), (313, 5), (182, 5),
10807
+ (239, 5), (237, 5), (276, 4), (6, 4), (41, 4), (57, 4), (113, 4), (124, 4),
10808
+ (146, 4), (271, 4), (18, 4), (297, 3), (40, 3), (129, 3), (19, 3), (68, 3),
10809
+ (95, 3), (108, 3), (157, 3), (184, 3), (197, 3), (232, 3), (86, 3), (175, 3),
10810
+ (82, 3), (228, 3), (71, 3), (160, 3), (64, 3), (153, 3), (26, 2), (307, 2),
10811
+ (60, 2), (218, 2), (222, 2), (305, 2), (202, 2), (263, 2), (11, 2), (136, 2),
10812
+ (171, 2), (79, 2), (244, 1), (278, 1), (299, 1), (149, 1), (22, 1), (257, 1),
10813
+ (252, 1), (286, 1), (75, 1), (77, 1), (54, 1), (166, 1), (143, 1), (67, 1),
10814
+ (156, 1), (63, 1), (152, 1), (107, 1), (196, 1), (251, 1), (285, 1), (50, 1)]
10815
+
10816
+ ###################################################################################
10817
+
10818
+ UPLIFTING_MAJOR = [(267, 3776), (317, 3723), (301, 3628), (320, 3603), (178, 3569), (89, 3448),
10819
+ (309, 3337), (314, 3216), (0, 3180), (288, 3159), (233, 3061), (319, 3008),
10820
+ (112, 981), (194, 917), (256, 916), (16, 874), (216, 843), (283, 835),
10821
+ (201, 783), (105, 771), (127, 766), (23, 715), (38, 692), (249, 637),
10822
+ (272, 459), (191, 448), (91, 437), (235, 437), (306, 423), (303, 404),
10823
+ (280, 400), (13, 396), (183, 394), (269, 394), (94, 393), (102, 389),
10824
+ (180, 386), (293, 371), (181, 370), (5, 358), (290, 348), (212, 342),
10825
+ (238, 335), (246, 324), (270, 315), (92, 314), (3, 310), (254, 308),
10826
+ (316, 301), (110, 295), (123, 291), (2, 285), (104, 268), (236, 255),
10827
+ (304, 254), (311, 250), (34, 250), (193, 244), (291, 244), (199, 235),
10828
+ (312, 232), (114, 219), (215, 216), (248, 205), (37, 201), (25, 201),
10829
+ (15, 197), (126, 195), (282, 191), (21, 184), (258, 167), (268, 151),
10830
+ (179, 148), (203, 142), (234, 128), (90, 123), (1, 119), (144, 116),
10831
+ (289, 102), (302, 99), (228, 97), (310, 95), (318, 94), (119, 92), (159, 91),
10832
+ (285, 89), (139, 85), (162, 83), (50, 81), (73, 78), (42, 78), (196, 77),
10833
+ (30, 76), (131, 75), (251, 75), (220, 73), (39, 72), (55, 71), (45, 71),
10834
+ (315, 70), (217, 70), (120, 69), (227, 67), (264, 64), (209, 63), (31, 63),
10835
+ (134, 62), (36, 62), (273, 61), (70, 60), (43, 58), (221, 58), (8, 56),
10836
+ (160, 55), (138, 55), (192, 55), (97, 54), (186, 54), (241, 53), (71, 53),
10837
+ (49, 53), (128, 53), (132, 52), (223, 52), (298, 52), (296, 51), (275, 51),
10838
+ (208, 50), (263, 50), (99, 50), (214, 50), (277, 50), (153, 49), (96, 48),
10839
+ (148, 48), (218, 47), (14, 46), (18, 45), (103, 44), (281, 44), (150, 43),
10840
+ (125, 43), (10, 43), (247, 42), (294, 41), (64, 41), (307, 40), (40, 40),
10841
+ (129, 40), (239, 40), (7, 38), (284, 38), (243, 38), (146, 37), (6, 37),
10842
+ (95, 37), (184, 37), (213, 36), (188, 36), (35, 35), (59, 35), (124, 34),
10843
+ (107, 33), (24, 32), (17, 31), (257, 31), (147, 30), (195, 30), (202, 29),
10844
+ (308, 28), (106, 28), (57, 28), (276, 26), (115, 26), (58, 26), (61, 25),
10845
+ (9, 25), (242, 25), (113, 25), (11, 24), (204, 23), (259, 22), (46, 22),
10846
+ (274, 21), (255, 21), (135, 21), (224, 21), (240, 20), (295, 19), (187, 19),
10847
+ (250, 19), (48, 19), (297, 19), (185, 18), (26, 17), (149, 17), (98, 16),
10848
+ (261, 14), (197, 14), (286, 14), (75, 14), (164, 14), (68, 13), (157, 13),
10849
+ (173, 13), (271, 12), (137, 12), (226, 12), (44, 12), (230, 11), (109, 11),
10850
+ (117, 11), (206, 11), (292, 11), (182, 11), (222, 11), (252, 11), (244, 10),
10851
+ (278, 10), (84, 10), (305, 10), (198, 10), (237, 10), (108, 10), (60, 10),
10852
+ (53, 9), (136, 9), (158, 9), (225, 9), (69, 9), (47, 9), (287, 8), (41, 8),
10853
+ (100, 8), (189, 8), (52, 8), (141, 8), (28, 8), (219, 8), (19, 8), (93, 8),
10854
+ (133, 8), (165, 7), (313, 7), (20, 7), (76, 6), (142, 6), (231, 6), (253, 6),
10855
+ (130, 6), (151, 5), (51, 5), (140, 5), (229, 5), (168, 5), (4, 5), (299, 5),
10856
+ (22, 5), (170, 5), (155, 4), (62, 4), (145, 4), (174, 4), (66, 3), (56, 3),
10857
+ (72, 3), (54, 3), (143, 3), (154, 3), (85, 3), (77, 3), (166, 3), (67, 3),
10858
+ (152, 3), (245, 3), (279, 3), (111, 3), (200, 3), (171, 3), (79, 3), (210, 2),
10859
+ (265, 2), (74, 2), (163, 2), (65, 2), (27, 2), (116, 2), (205, 2), (260, 2),
10860
+ (32, 2), (156, 2), (63, 2), (300, 2), (12, 2), (101, 2), (190, 2), (232, 1),
10861
+ (121, 1), (81, 1), (86, 1), (175, 1), (82, 1)]
10862
+
10863
+ ###################################################################################
10864
+
10865
+ UPLIFTING_MINOR = [(301, 5035), (233, 5017), (314, 4999), (89, 4970), (320, 4956), (319, 4954),
10866
+ (0, 4793), (267, 4760), (309, 4744), (178, 4715), (317, 4697), (288, 4644),
10867
+ (114, 1184), (25, 1127), (248, 1111), (282, 1010), (193, 943), (203, 938),
10868
+ (105, 912), (104, 906), (258, 906), (280, 883), (246, 882), (283, 870),
10869
+ (16, 867), (94, 857), (127, 854), (238, 845), (102, 834), (194, 830), (5, 822),
10870
+ (306, 813), (38, 795), (183, 792), (249, 791), (13, 784), (191, 780),
10871
+ (256, 778), (112, 777), (290, 774), (23, 748), (272, 741), (235, 737),
10872
+ (269, 737), (293, 714), (215, 700), (37, 695), (201, 694), (303, 693),
10873
+ (15, 685), (316, 684), (311, 682), (216, 672), (126, 666), (91, 622), (2, 618),
10874
+ (180, 616), (254, 606), (270, 596), (304, 592), (236, 590), (181, 577),
10875
+ (92, 572), (34, 558), (123, 554), (3, 540), (21, 534), (212, 524), (312, 517),
10876
+ (110, 508), (199, 500), (291, 491), (128, 224), (243, 217), (298, 217),
10877
+ (144, 214), (90, 214), (39, 210), (8, 207), (162, 206), (234, 205), (97, 204),
10878
+ (186, 204), (241, 203), (217, 200), (268, 199), (10, 198), (1, 192), (55, 190),
10879
+ (179, 190), (188, 187), (125, 184), (315, 184), (302, 182), (318, 180),
10880
+ (275, 178), (296, 168), (289, 168), (277, 166), (73, 166), (36, 165),
10881
+ (119, 162), (263, 161), (99, 160), (310, 160), (30, 157), (214, 135),
10882
+ (138, 135), (264, 133), (159, 129), (134, 128), (131, 127), (227, 125),
10883
+ (70, 125), (281, 122), (43, 120), (46, 119), (209, 118), (247, 117),
10884
+ (132, 116), (120, 110), (221, 108), (208, 108), (31, 106), (45, 103), (49, 99),
10885
+ (224, 96), (96, 95), (59, 94), (220, 91), (148, 90), (135, 90), (7, 88),
10886
+ (273, 88), (147, 84), (239, 82), (274, 77), (307, 76), (294, 75), (223, 75),
10887
+ (240, 73), (17, 73), (106, 73), (192, 72), (213, 71), (185, 71), (58, 71),
10888
+ (24, 71), (139, 70), (103, 66), (9, 66), (276, 65), (42, 65), (129, 64),
10889
+ (95, 64), (187, 63), (242, 60), (98, 60), (150, 59), (285, 58), (40, 57),
10890
+ (261, 57), (184, 57), (218, 56), (50, 55), (195, 55), (284, 53), (48, 52),
10891
+ (196, 52), (117, 52), (251, 50), (295, 49), (202, 49), (250, 49), (146, 48),
10892
+ (259, 48), (228, 48), (206, 48), (14, 48), (57, 47), (35, 47), (61, 46),
10893
+ (6, 45), (113, 45), (124, 43), (157, 42), (28, 42), (137, 41), (68, 41),
10894
+ (297, 40), (308, 40), (257, 39), (115, 38), (158, 38), (107, 37), (204, 35),
10895
+ (160, 35), (71, 33), (26, 32), (226, 31), (69, 31), (153, 30), (165, 27),
10896
+ (64, 27), (287, 26), (136, 25), (109, 25), (225, 24), (164, 24), (76, 24),
10897
+ (286, 23), (75, 23), (155, 23), (11, 22), (252, 22), (253, 22), (93, 22),
10898
+ (271, 22), (47, 21), (108, 21), (41, 21), (198, 20), (197, 19), (237, 19),
10899
+ (219, 19), (182, 18), (66, 18), (130, 17), (292, 17), (305, 17), (20, 16),
10900
+ (145, 15), (4, 15), (18, 15), (255, 14), (100, 14), (189, 14), (62, 14),
10901
+ (244, 13), (151, 13), (170, 12), (52, 11), (141, 11), (278, 10), (313, 10),
10902
+ (56, 10), (149, 9), (133, 9), (84, 8), (173, 8), (60, 8), (200, 8), (65, 7),
10903
+ (299, 7), (230, 7), (44, 7), (154, 6), (85, 6), (222, 6), (174, 5), (81, 5),
10904
+ (111, 5), (163, 4), (27, 4), (116, 4), (205, 4), (19, 4), (22, 4), (210, 3),
10905
+ (265, 3), (74, 3), (168, 3), (51, 3), (260, 3), (12, 2), (101, 2), (190, 2),
10906
+ (245, 2), (279, 2), (142, 2), (231, 2), (175, 2), (82, 2), (171, 2), (79, 2),
10907
+ (152, 1), (140, 1), (229, 1), (54, 1), (143, 1), (53, 1), (121, 1), (300, 1),
10908
+ (262, 1), (72, 1), (161, 1), (29, 1), (118, 1), (207, 1)]
10909
+
10910
+ ###################################################################################
10911
+
10912
+ ALL_MOOD_TYPES = [HAPPY_MAJOR,
10913
+ UPLIFTING_MAJOR,
10914
+ UPLIFTING_MINOR,
10915
+ NEUTRAL_MAJOR,
10916
+ NEUTRAL_MINOR,
10917
+ MELANCHOLIC_MAJOR,
10918
+ MELANCHOLIC_MINOR,
10919
+ SAD_MAJOR,
10920
+ SAD_MINOR
10921
+ ]
10922
+
10923
+ ###################################################################################
10924
+
10925
+ ALL_MOOD_TYPES_LABELS = ['Happy Major',
10926
+ 'Uplifting Major',
10927
+ 'Uplifting Minor',
10928
+ 'Neutral Major',
10929
+ 'Neutral Minor',
10930
+ 'Melancholic Major',
10931
+ 'Melancholic Minor',
10932
+ 'Sad Major',
10933
+ 'Sad Minor'
10934
+ ]
10935
+
10936
  ###################################################################################
10937
  #
10938
  # This is the end of the TMIDI X Python module