Существуют ли какие-либо эмпирические правила для смещения ключевой подписи в тональной сети?

[ ... изо всех сил пытаюсь дать этому лучше название ]

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

Проблема в первую очередь связана с тональностью тональности (тональность Db или Gb), но она также распространяется и на отображение степеней (I, II, III и т. д.).

По сути, по мере того, как спектр тональной сетки расширяется от его произвольного тонического центра, обозначения смещаются в бемоли, затем в двойные бемоли, затем в тройные. Или (как и в случае с текущим состоянием моих алгоритмов электронных таблиц) я вижу такие вещи, как B#, отображаемые как C, или шкала становится такой: DE Gb GAB Db D (особое беспокойство вызывают ключи Db или Gb... ).

Я мог бы выбрать наиболее правильную нотацию из хеш-таблицы, но мне все равно нужно знать, когда нужно перейти к другому ключу. Если я буду следовать правилам пятого круга, добавляя бемоли и диезы по мере того, как они расходятся от «до». Но есть проблема начать с Gb Major, где в Co5 мы находим его в зоне энгармонического фазового перехода (в нижней части Co5).

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

видеть:

https://docs.google.com/spreadsheets/d/1AL18KVDIsJvRTpW567dVlJRfrORWA9k_sh6rBYqu5lc

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

[ред.]

Другой сценарий уровня представления:

Тональная сетка с вкладкой для клавиатуры

Рассматривали ли вы просто использование целочисленной нотации класса основного тона (т.е. C=0, C#/Db=1,…, A#/Bb=T, B=E)? Этот тип приложения в значительной степени то, для чего он был разработан. Таким образом, трезвучия, такие как F# и Gb (и, если на то пошло, Ex и Abbb) мажор, могли быть представлены просто 6-T-1. Tonnets были разработаны специально для оценки последовательности аккордов вне диатонической последовательности; начальный относительный или leittonwechsel ход может оставаться в тональности, но любой ход после него — и только один параллельный ход — резко и очень быстро меняет тональность.
Должен признаться, я зашел в тупик, используя абсолютные хроматические значения (A110=13, A220=26). Раньше я думал о переходе на шестнадцатеричную систему счисления, но не видел преимущества. Модуль не является большим препятствием, возвращаясь к стандартным обозначениям/именам сольфеджио ... Мне просто нужно отслеживать смещение тоники. Одна из целей состоит в том, чтобы сохранить энгармонические ступени любого тонального центра (?ТЕТ против Джаст/Пифог?). Поэтому я хотел бы иметь возможность следить за тональным центром, когда он смещается, и соответственно переназначать относительное пространство градусов. Но, как вы указываете, любые известные относительные перемещения в прошлом должны спровоцировать переназначение.
Смотрите 1-й ответ: music.stackexchange.com/questions/17318/…
И: theory.esm.rochester.edu/temperley/papers/temperley-ma00.pdf "...Правило ведущего голоса (окончательная версия). Даны два события, смежные по времени и находящиеся на расстоянии полутона друг от друга по высоте тона: если первое событие удалено от текущего центра тяжести, его следует написать так, чтобы оно было в пяти шагах** от второго». ** [ по кругу квинт ? ]
Интересно. Я так понимаю, вы хотите видеть двойные диезы и бемоли, просто не знаете, когда на них переключиться? «Но есть проблема начать с Gb Major, где в Co5 мы находим его в зоне энгармонического фазового перехода (в нижней части Co5)». Кажется, именно здесь уместна линия , а не круг из 5-х. Это правда, что начальная точка Gb начнет бить двойные бемоли гораздо быстрее, чем начиная с C, но разве это не часть того, что вы ищете?
Быстрый ответ: ХАХ! Позвольте мне вернуться к вам на это. :)
О, и я думаю, что объяснение строки из статьи Tempereley, которую вы процитировали в своем комментарии, заключается в том, что она должна быть написана так, чтобы она находилась в пяти шагах от линии 5, а не по кругу.
TY Pat за ваши идеи. Подробнее об этом позже. В настоящее время я копаюсь в создании SQL-дендрограмм данных музыкальных партитур.
Круто, держи меня в курсе.

Ответы (1)

Я не уверен на 100%, каковы ваши цели, так как я вижу конфликт между использованием тональной сетки, которая просто расходится во всех направлениях со все большим и большим количеством диезов/бемолей, и вашей целью ограничить/манипулировать количеством диезов и бемолей. . В традиционной музыке ключевые подписи (обычно) выбираются так, чтобы избежать двойных бемолей/диезов и использования хроматических нот, которые энгармоничны с естественными нотами (например, E # или F ♭), поэтому я просто установил базу правил для замените эти ключи их энгармоническими эквивалентами.

Однако, поскольку вы используете сеть тонов, я должен предположить, что вы хотите сделать что-то, способное представить некоторые аспекты сети тонов без простого переназначения энгармонических нот. Может быть, вам нужно что-то, где нота F встречается как 3-я тональность D ♭ мажор, а нота E # появляется как 3-я тональность C # мажор. Поскольку я не могу сказать, как далеко вы собираетесь уйти от выбранного корня, я начну с некоторых общих соображений, а затем сужу их до определенного набора требований, которые, надеюсь, уместны.

Общий

Во- первых, представьте интервалы в явном виде (major-3rd, perfect-5th)парами, т. е. большая терция — (1,0)это чистая кварта (0,-1), малая терция — это (-1,1)и т. д. Они непосредственно представляют движения в решетке тонов. Если бы меня беспокоили октавы, я бы добавил их в кортеж в качестве третьего поля.

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

  • A+(1,0)=C#, A+(-1,0)=F, A+(0,1)=E,A+(0,-1)=D
  • B+(1,0)=D#,...
  • то же самое для С
  • ...

Обратите внимание, что из таблицы для натуральных нот мы можем получить результаты для хроматических нот D#+(1,0)=[D+(1,0)]#=F##. Обратите внимание, что комбинация диез-бемоль отменяет: D♭+(1,0)=[D+(1,0)]♭=[F#]♭=F. Эта функция важна для преобразования (M3,P5)представления в модели в имена, отображаемые на уровне представления. Также обратите внимание, что движение в решетке является ассоциативным (и коммутативным), A+(-1,2)=A+(-1,0)+(0,1)+(0,1)=[[F]+(0,1)]+(0,1)=C+(0,1)=Gпоэтому вам нужно только предварительно вычислить таблицу для сдвигов (1,0),(-1,0),(0,1),(0,-1), а остальное можно вычислить с помощью соответствующей логики. Пока что это всего лишь механика для создания бесконечной сети тонов, т.е. простое выполнение этого для больших интервалов будет производить ноты с большим количеством диезов/бемолей.

Чтобы свернуть тональную сеть обратно в себя, я бы использовал парное представление интервалов и попытался их уменьшить. Во-первых, я бы рассмотрел октавные сокращения: (0,+/-12)=>(0,0)или (+/-3,0)=>(0,0)и настроил логику, чтобы увидеть, можно ли «упростить» данный интервал, применив эти октавные сокращения. Нужно было бы определить «упрощенный» — навскидку, я не уверен, что евклидова (сумма квадратов) или манхэттенская (сумма абсолютных значений) (или что-то еще?) метрика более полезен. По сути, у вас будет список правил сокращения, а затем вам нужно будет посмотреть, уменьшит ли применение правил сокращения интервал (более простой).

Если эти октавные эквиваленты не делают всего, что вам нужно, я бы рассмотрел другие интервалы, которые могут производить ноты, которые можно энгармонически сократить. Например, на диаграмме в вашем вопросе есть желтая D ♭ на пятую часть выше F # - нота, которая обычно пишется C #. Это можно воспроизвести с помощью правила, допускающего замену (0,7)=>(-1,-2).

Специфический

Мы можем увидеть, как этот общий подход будет применяться, рассмотрев области разного цвета на вашей фигуре в вашем вопросе. С корнем C это дает:

AEBF# (+1,-1) (+1, 0) (+1,+1) (+1,+2)
БКГД ( 0,-1) ( 0, 0) ( 0,+1) ( 0,+2)
D♭ A♭ E♭ B♭ (-1,-1) (-1, 0) (-1,-1) (-1,+2)

так что идея в том, что мы говорим: «При корне в C используйте эти ноты, когда в корне где-то еще используйте ноты в тех же относительных позициях, что и выше». Затем вы можете посмотреть на набор интервалов, которым соответствует этот набор нот (справа вверху), и использовать его в качестве шаблона для создания имен нот с помощью описанной выше логики, когда шаблон основан на другой ноте.

Чтобы ограничить рассмотрение этим блоком, нам нужны два правила редукции: (0,4)=>(1,0)отождествить CGDAE E с E на мажорную терцию выше C, и (3,0)=>(0,0)т. е. цепочка из 3 мажорных терций охватывает октаву (точнее, вместо того, чтобы подняться на две м3 выше, перейти вниз на 1 м3). Тогда, учитывая пару (M3,P5), мы можем использовать следующую логику:

<pre>
while P5>3  : P5-=4, M3+=1
while P5<-1 : P5+=4, M3-=1
while M3>1  : M3-=3
while M3<-1 : M3+=3
</pre>

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

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