С интервалами такая штука:
1 - ч.1 (прима)
1#/2b - м.2 (малая секунда)
2 - б.2 (большая секунда)
2#/3b - м.3 (малая терция)
3 - б.3 (большая терция)
4 - ч.4 (чистая кварта)
4#/5b - ув.4 (увеличенная кварта) или ум.5 (уменьшенная квинта)
5 - ч.5 (квинта)
5#/6b - м.6 (малая секста)
6 - б.6 (большая секста)
6#/7b - м.7 (малая септима)
7 - б.7 (большая септима)
Но каждый интервал в зависимости от контекста может рассматриваться как увеличенный или уменьшенный. Если это не учитывать, то все равно надо придумать, как кратко обозначить тритон (4#/5b).
Вообще по логике тогда надо рассматривать и нисходящие интервалы, а это несколько усложнит программу. Лично я думаю, что лучше пока огород не городить, а причесать то, что есть:
1) разобраться с повторами;
2) разобраться с обозначениями, чтобы можно было настроить программу под себя: в настройках сделать раздел "Отображение энгармонизмов" со следующими пунктами:
i) тоника, варианты:
- с диезами
- с бемолями
- диезы и бемоли [default]
ii) номера ступеней, варианты:
- диезы и бемоли (как сейчас)
- убрать неиспользуемые (не использовать 1#, 6#) [default]
iii) ноты, варианты:
- с диезами
- с бемолями
- диезы и бемоли
- согласно ключевым знакам [default]
"согласно ключевым знакам" означает:
для тоник F, Bb, Eb, Ab, Db - с бемолями
для тоник G, D, A, E, B - с диезами
для тоник С и F#/Gb - и так и так
И добавить галку "В "вопросе" энгармонизмы чередуются" (то есть если при всех выбранных выше настройках есть два варианта отображения ноты/ступени (напр. 4#/5b), то из этих вариантов случайно выбирается один; если опция выключена - то в таких случаях они отображаются парами) [default = true]
Во намудрил - да?