Большинство из вас, вероятно, знают мажорную шкалу:
C D E F G A B C
Основная шкала характеризуется интервалами между соседними нотами, которые измеряются в полутонах :
2 2 1 2 2 2 1
Из этих интервалов мы можем построить любую крупную шкалу, начиная с любой ноты ( ключ шкалы). 12 нот в нашей 12-тональной системе настройки:
C C♯ D D♯ E F F♯ G G♯ A A♯ B
эквивалентно (заменяя некоторые энгармонические эквиваленты ):
C D♭ D E♭ E F G♭ G Ab A B♭ B
с полутоном между каждой парой смежных нот.
Каждая шкала должна иметь семь нот по порядку, начиная с ключа. В противном случае вы могли бы иметь две заметки в одной строке пентаграммы, что может привести к путанице. Итак, в G # major / ionian у вас есть F ## вместо G; Музыканты просто посмотрят, где в пентаграмме записка, они уже выучили случайности для каждой шкалы. Действительно, в G # major F ## представляется в строке F ## без случайных ошибок, случайные числа находятся в ключевой сигнатуре - но поскольку для этой ключевой сигнатуры для F потребовалось бы 2 резких нажатия, обычно это обозначается как Ab major.
Сдвигая 2 2 1 2 2 2 1интервалы, мы приходим к семи различным режимам диатонической шкалы:
- Ионический :
2 2 1 2 2 2 1- соответствует мажорной шкале - Дориан :
2 1 2 2 2 1 2 - Фригийский :
1 2 2 2 1 2 2 - Лидиан :
2 2 2 1 2 2 1 - Mixolydian :
2 2 1 2 2 1 2 - Aeolian :
2 1 2 2 1 2 2- соответствует естественной минорной шкале и мелодической минорной шкале при спуске (при подъеме мелодическая минорная шкала поднялась на 6-ю и 7-ю ступени. Существует также гармоническая минорная шкала с повышенной 7-й ступенью по сравнению с естественной незначительный). - Locrian :
1 2 2 1 2 2 2
Таким образом, задача состоит в том, чтобы написать программу , которая принимает в качестве входных данных (через стандартный ввод ) ключ и режим и выходы (через стандартный вывод ) соответствующую шкалу. Некоторые тестовые случаи ( stdin ( key mode) => stdout ( scale)):
Input: Output:
C mixolydian => C D E F G A Bb
F mixolydian => F G A Bb C D Eb
G mixolydian => G A B C D E F
G# ionian => G# A# B# C# D# E# F##
Bb aeolian => Bb C Db Eb F Gb Ab
Дальнейшие ссылки:
Сколько (главных и второстепенных) ключей существует? Почему?