Музыка и Математика. Нахождение генератора натурального звукоряда. Лучший способ? [закрытый]

8
задан Alfonso de la Osa 7 April 2010 в 11:07
поделиться

3 ответа

Ваш вопрос (как написано) неоднозначен. Если вы имеете в виду "можно ли использовать ваш алгоритм для создания естественных масштабов?" (те, которые содержат все естественные ноты, т.е. ноты, которые не являются ни резкими, ни плоскими), тогда да, но только один (если вы не разрешаете разные методы округления, и в этом случае вы получаете один естественный масштаб для каждого метода округления) и только с помощью сбор вишни тоник. Если вы имеете в виду «дает ли ваш алгоритм сам по себе естественную шкалу?», То ответ будет отрицательным, потому что он сам по себе не генерирует шкалу ; он генерирует режим .

Примечание: в этом ответе все названные режимы (например, ионический) относятся к современным определениям.

С точки зрения полутонов, ваш алгоритм дает интервалы (из тоники ) 0,2,3,5,7,9,10,12, что соответствует полутоновой последовательности (т. Е. Шкале шаги) 2-1-2-2-2-1-2, или дорианский режим . Обратите внимание, что алгоритм не определяет тонику (первая нота в гамме), поэтому он не дает вам конкретной шкалы , которая представляет собой последовательность высот, например как до-мажор или дорианская лада в D.

В терминах именованных интервалов из тоники, дорианская лада содержит мажорную 2-ю, минорную 3-ю, совершенную 4-ю, совершенную 5-ю, мажорную 6-ю, минорную 7-е и совершенное 8-е. До мажор - это M2, M3, P4, P5, M6, M7, P8 (все основные или идеальные интервалы).

Генерация других режимов

Вы можете выбрать функцию округления произвольно.Если вы всегда округляете в большую сторону ( ⌈i * 12 / 7⌉ ), вы получаете интервалы 0,2,4,6,7,9,11,12 и последовательность полутонов 2-2-2-1. -2-2-1, что соответствует лидийской моде . Округление в меньшую сторону ( ⌊i * 12 / 7⌋ ) дает вам интервалы 0,1,3,5,6,8,10,12 и шаги 1-2-2-1-2-2-2. , которая является локрийской модой . Ни один из них не является интервалом или полутоновой последовательностью для естественной гаммы в C (то есть ионической формы в C или C мажор), которая составляет 0,2,4,5,7,9,11,12 и 2-2-1. -2-2-2-1 соответственно.

Если вы расширите алгоритм, чтобы использовать разные функции округления для каждого члена, а не одну и ту же функцию округления для всех, вы можете сгенерировать другие именованные режимы (например, (_, ceil, ceil, floor, ceil, ceil , ceil, _) , где _ означает «безразлично», будет генерироваться Ionian), но вы также создадите много других режимов, которые не могут привести к естественному масштабу. Таким образом можно сгенерировать всего 2 n-1 режима, где n - количество тонов (я покрываю n = 7 или гептатонические моды). Количество гептатонических мод равно количеству композиций из 12 длиной 7, что составляет 11 C 6 = 462, поэтому этот метод не сгенерирует все режимы. Если мы определим round r (x) = floor (x + r) , мы сможем сгенерировать только диатонические моды (7 именованных режимов или ] Heptatonia Prima , которые максимально разделяют полутоновые шаги), используя эту функцию округления, ограничивая r до i / 7 , где i ∈ [0, 7) ⊂ ℕ.Например, Ionian - это roundTo 5/7 (i * 12/7) для i ∈ [0, 7) (примечание: округление до ближайшего - roundTo 0,5 (x) ). С помощью этого последнего подхода мы можем генерировать режимы, которые могут генерировать все 7 естественных масштабов.

Диатонический (n) = n / 7 (x * 12/7) для x in ∈ [0, 7)>

, где <...> обозначает кортеж (т.е. конечную последовательность).

Генерация шкал

Ваш алгоритм только генерирует режимы, но их можно использовать для генерации шкал. В зависимости от того, с какой ноты вы начнете (тоника), вы получите разные гаммы для данного режима. Дориан дает минорную гамму, потому что она включает в себя минорную третью (первые два полутоновых шага в дорианском языке равны 2-1, которые в сумме составляют 3, минорная треть) и идеальную квинту (последовательность начинается с 2- 1-2-2, давая на 7 полутонов выше тоники). Lydian дает вам мажорную шкалу, потому что она включает мажорную треть (последовательность полутонов начинается с 2-2, что в сумме составляет 4 мажорной трети) и идеальную квинту (2-1-2-2). Локрийский язык не включает идеальную пятую часть, так что это ни мажор, ни минор.

Генерация натуральных шкал

Чтобы увидеть, какие натуральные шкалы может генерировать ваш алгоритм, пусть ADLO (n, round, tonic) обозначает шкалу, полученную в результате обобщенной версии вашего алгоритма, где n - количество высот на октаву, круг - функция округления, а тоника - тоника для гаммы.Если какой-либо из них не указан, результатом является набор всех возможных значений (таким образом, ADLO (7, ближайший) - все шкалы в дорийском режиме). Именованный режим и тоника будут использоваться для звукоряда в этом режиме с этим тоником (например, Ионический ('C') - это до-мажор); именованный режим без тоника (например, Ионический () )будет означать набор всех шкал в этом режиме. {} обозначает набор, а <> последовательность.

    ADLO(7, nearest) = Dorian() = Diatonic(3)
      {
        <C, D,  D#, F,  G,  A,  A#, C>,
        <D, E,  F,  G,  A,  B,  C,  D>,
        <E, F#, G,  A,  B,  C#, D,  E>,
        <F, G,  G#, A#, C,  D,  D#, F>,
        <G, A,  A#, C,  D,  E,  F,  G>,
        <A, B,  C,  D,  E,  F#, G,  A>,
        <B, C#, D,  E,  F#, G#, A,  B>
      }
    ADLO(7, ceil) = Lydian() = Diatonic(6)
      {
        <C, D,  E,  F#, G,  A,  B,  C>,
        <D, E,  F#, G#, A,  B,  C#, D>,
        <E, F#, G#, A#, B,  C#, D#, E>,
        <F, G,  A,  B,  C,  D,  E,  F>,
        <G, A,  B,  C#, D,  E,  F#, G>,
        <A, B,  C#, D#, E,  F#, G#, A>,
        <B, C#, D#, F,  F#, G#, A#, B>
      }
    ADLO(7, floor) = Locrian() = Diatonic(0)
      {
        <C, C#, D#, F,  F#, G#, A#, C>,
        <D, D#, F,  G,  G#, A#, C,  D>,
        <E, F,  G,  A,  A#, C,  D,  E>,
        <F, F#, G#, A#, B,  C#, D#, F>,
        <G, G#, A#, C,  C#, D#, F,  G>,
        <A, A#, C,  D,  D#, F,  G,  A>,
        <B, C,  D,  E,  F,  G,  A,  B>
      }

Таким образом, мы видим, что

      if you         and pick
* round to nearest     D
* round down           B
* round up             F
* ...
                     as the tonic, you get a natural scale.

Кроме того,

    ADLO(7, roundTo5/7(x)) = Ionian()     = Diatonic(5)
    ADLO(7, roundTo3/7(x)) = Dorian()     = Diatonic(3)
    ADLO(7, roundTo1/7(x)) = Phrygian()   = Diatonic(1)
    ADLO(7, roundTo6/7(x)) = Lydian()     = Diatonic(6)
    ADLO(7, roundTo4/7(x)) = Mixolydian() = Diatonic(4)
    ADLO(7, roundTo2/7(x)) = Aeolian()    = Diatonic(2)
    ADLO(7, roundTo0/7(x)) = Locrian()    = Diatonic(0)

Нота, которую следует выбрать в качестве тонизирующей, также дается как «белая нота» в статье Википедии о режимах в современной музыке .

Вычислительная правильность

Причина, по которой код работает для генерации режима, заключается в том, что ноты в диатонической шкале максимально равномерно распределены между полутонами. i * n / m , для i ∈ [0, m), является равномерным распределением m вещей среди n вещей. Округлите эти значения, и вы получите максимально равномерное распределение между целыми числами от 0 до n. Таким образом, ваш алгоритм приводит к диатоническому режиму. Это не так уж и значительный результат; это довольно простое следствие округления.

8
ответ дан 5 December 2019 в 15:21
поделиться

Я не знаю, верна ли теория на странице блога, но если по какой-то безумной причине я поместил 18 нот в 12 полутонов, то верхний предел tot будет 13; также пентатоническая шкала не будет включать последние 12.

Программно для перевода материалов на странице блога следует использовать

while (tot <= 12) {

Остальное в порядке, за исключением того, что я не знаю, почему if (scale.length == 8) { не требуется.


По поводу обоснованности теории музыки спросите где-нибудь еще.

3
ответ дан 5 December 2019 в 15:21
поделиться

Прочитав ваш статья, мне кажется, вы серьезно путаете минор с бемолью и мажор с диезом соответственно.

Итак, из «2 с округлением до потолка, минорная нота» вы заключаете, что вторая нота в гамме должна быть плоской версией второй белой тональности фортепиано, начиная с D. То есть E ♭. {{1 }} Вы в основном начинаете с дорийского режима (т.е. все белые клавиши начинаются с D), а затем увеличиваете или уменьшаете ключи в зависимости от результата округления.

Однако вы должны заметить, что шкала Дориана уже является шкалой; поэтому наиболее естественная шкала, которую вы получите, начав с дорийской шкалы, будет той же самой дорийской шкалой. И вы бы достигли этого без каких-либо бемолей или острых углов (или мелких и крупных нот, как вы это называете).

Начало всей этой теории по шкале Дориана уже является настолько сильным предположением, что потребуется немало усилий, чтобы сформулировать это разумным образом. И эта тяжелая работа в конечном итоге привела к реальной теории весов. А не кастинг числа, который вы делаете потом.

Когда вы пишете, вы «привыкли полагать, что полутона между некоторыми нотами требуют некоторой корректировки» - мне действительно кажется, что это все еще так, иначе вы бы не проигнорировали их, начав с шкала с неодинаковым темпом. Если вы хотите продвинуться дальше, эта шкала должна быть вашей отправной точкой:

c – c♯ – d – d♯ – e – f – f♯ – g – g♯ – a – a♯ – h

(И чтобы избежать дальнейшей путаницы, вы должны опустить их имена и ссылаться на них цифрами 1, 2, 3,… 12.)

Или в частотных дробях :

1 – 2^(1/12) – 2^(2/12) – 2^(3/12) – … – 2^(11/12) – 2^(12/12) = 2
1 – 1.059    – 1.122    – 1.189    – … – 1.888     – 2

Вы можете играть в свои числовые игры на одинаковой темперированной шкале и смотреть, что получится потом. Некоторая теория о нахождении мажорных аккордов основана на изучении серии обертонов в музыкальных инструментах. В этой серии вы найдете несколько нот, которые естественным образом приводят к каким-то мажорным аккордам и основной гамме, если вы примете некоторые компромиссы. Один из компромиссов заключается в том, что то, что вы найдете, на самом деле не совсем одинаково закаленное…

0
ответ дан 5 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: