Проблема семантики двусмысленности аккордов при ее организации - PullRequest
0 голосов
/ 29 июня 2019

Я создаю программу, которая помогает композитору создать аккорд в последовательности, и одной из частей программы является определение голосов в аккорде (при его создании).

Итак, будет некоторая двусмысленность, так как у диапазона голосов есть общие ноты, организованные в B, B & T, B & T & C, B & T & C & S, T & C & S, C & S и S.

Я организовал аккорд в списке, содержащем списки возможностей для каждого из 4 голосов:

chord = [[poss_B], [poss_T], [poss_C], [poss_S]]

Ввод будет от 1 до 4 нот (да, 1 нота может образовать очень странный аккорд в моей программе между C4 и D4).

Могут быть голоса с одинаковыми нотами, но всегда будет 4 голоса.

Для каждой добавленной ноты проверяется:

если есть пустые списки: если они есть, необходимо ввести примечание

если все заметки отличаются друг от друга: если они не совпадают, тогда включается ввод заметок.

Для каждой добавленной ноты она проверяет свой диапазон и добавляет его ко всем голосам в пределах диапазона

После этого он устраняет неоднозначности :( это та часть, которую я не знаю, логично ли она правильна)


     chord[0] = [min(chord[0])]

     chord[3] = [max(chord[3])]

     for i in chord[1]:

          if i not in chord[0] and i not in chord[2]:

               chord[1] = [i]

     for i in chord[2]:

          if i not in chord[1] and i not in chord[3]:

               chord[2] = [i]

Еще одно правило, которое я, кажется, забыл: B <= T <= C <= S </p>

...