Алгоритм создания простой последовательности аккордов

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

Что может быть хорошим способом для генерации последовательности аккордов из 4 триад по этой шкале? Генерация 4 совершенно случайных триад (из 7 существующих) по шкале, как правило, звучит не очень хорошо.

Мне нужен подход для генерации последовательности аккордов, которая будет звучать хорошо или хорошо, но я не хочу просто случайным образом выбирать прогрессию из существующего пула прогрессий. Я все еще хочу, чтобы программа сама генерировала эти 4 триады, используя некоторый простой алгоритм, чтобы сгенерированная прогрессия звучала достойно.

(Как я уже сказал, эти 4 триады будут взяты из 7 триад мажор до мажор).

Обратите внимание: этот вопрос не является дубликатом моего предыдущего вопроса о подходе к созданию алгоритма создания мелодии. Это о том, как найти способ генерировать последовательность аккордов. Генерация мелодий - это другая тема.

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ: Общие руководящие принципы о том, как узнать, будет ли триада звучит хорошо рядом с другой триадой, также будет здорово.

4 ответа

Похоже, вам нужно разбить это на этапы:

  • Во-первых, случайным образом сгенерируйте триаду из всех возможностей этого ключа.
  • Во-вторых, примените один или несколько фильтров, чтобы исключить те, которые не звучат прилично (*).
  • Продолжайте, пока не получите 4 триады, которые проходят все фильтры.

Я думаю, что это решение может оказаться приятным в работе - вы можете постепенно создать набор фильтров, каждый из которых выполняет одну простую вещь, - но, собравшись вместе, вы постепенно решаете, что именно определяет "приличный".

(*) Приличное звучание определяется в терминах со ссылкой на предыдущую триаду (ы) (если таковые имеются), и здесь вы можете написать фильтры, например:

  • Соответствует ли корневая нота триады логическому шаблону относительно предыдущих корневых нот?; Примеры:

    • Простой восходящий
    • Простой по убыванию
    • По возрастанию в трети
    • так далее
  • Есть ли в примечаниях этой триады хотя бы одно общее примечание с предыдущей триадой?

    • это может найти некоторые приятные на слух инверсии
  • Является ли "прыжок" из предыдущей триады "меньше" определенного порога?

    • чтобы избежать резких скачков по всей шкале
    • просто достигается путем суммирования значений ноты MIDI триады и сравнения с предыдущими

Вы можете проверить эти документы

Генерация музыки с использованием концепций из шенкеровского анализа и аккордовых пространств

и вероятностная модель для аккордовых прогрессий

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

C - D - E - F - G - A - B

который имеет интервалы

C - STEP - D - STEP - E - HALF STEP - F - STEP - G - STEP - A - STEP - B - HALF STEP - C - 

Теперь аккорд образуется расстоянием между нотами, например

C major chord is formed by C-E-G
D minor chord is formed by D-F-A
E minor chord is formed by E-G-B
F major chord is formed by F-A-C
G major chord is formed by G-B-D
A minor chord is formed by A-C-E
B dim   chord is formed by B-D-F

Проблема, которую вы описываете, еще не решена, несмотря на многочисленные исследования в этой области. Так, например, взгляните на другие статьи, в которых предлагается обобщение музыкальных сигналов на среднем уровне на основе последовательностей аккордов. Таким образом, последовательности аккордов распознаются по музыкальным сигналам на основе контролируемой модели обучения, а точность распознавания повышается за счет локального исследования n лучших кандидатов.

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

Но как это сделать? Ну, вам нужны наборы музыкальных данных ( > 70000 песен??), чтобы вы могли получить соответствующую информацию...

Определите 7 нормальных трезвучий до мажор и поместите их каждое в 7 отдельных 3 векторов. Затем с помощью генератора случайных чисел выберите 4 аккорда, указав, разрешены ли повторяющиеся аккорды или нет. Если вы хотите, чтобы последовательность была "модной", используйте септаккорды и расширения/альтерации. Для этой версии вам понадобится 4 вектора для 7-х хорд, 5 векторов для 9-ти хорд, 6 векторов для 11-ти хорд и 7 векторов для 13-ти хорд. Если вы сначала определите гамму как вектор 7, идущий от C к B, то вы можете фактически сгенерировать все эти аккорды, просто зациклив гамму и извлекая каждую вторую ноту аналогично тому, как они определены. Вам все равно нужно указать, когда цикл заканчивается, иначе вы получите неслышимый бесконечный аккорд.

На самом деле это довольно интересный вопрос.

Я бы сказал, что здесь нужно рассмотреть и понять еще одну вещь: что бы вы хотели сказать (то есть: выразить) с вашей последовательностью аккордов? Я предполагаю, что вы хотели бы выразить "что-то осмысленное" своими мелодиями и последовательностью аккордов.

Теперь "что-то значимое" не является точным термином. Лично я бы охарактеризовал этот термин как нечто целое, что-то законченное, как небольшой рассказ. Это может быть так же кратко, как 4 аккорда, но это должно что-то сказать и должно составить общую историю. Если мы примем это, то я бы сказал, что ваш 4-й аккорд должен "вести" от начала до конца, и мы должны "чувствовать" последний аккорд, поскольку это был удовлетворительный конец (разрешение) "рассказа".

Сложность в том, что для каждого человека термины "удовлетворяющий", "достойный" и т. Д. Могут означать совершенно разные вещи, и то, что удовлетворяет вас, может быть, не удовлетворяет другого человека. Хотя в теории музыки есть несколько основных принципов (ссылки на которые приведены выше в ответах и ​​комментариях), которые были проверены великими композиторами на протяжении сотен лет музыки, поэтому я думаю, вам стоит попробовать некоторые из этих советов.

Другие вопросы по тегам