Я создаю программное обеспечение для арпеджиатора.
Итак, для начала у меня есть нота для фортепианного семпла, назовите ее 'piano-base-note.mp3'.
и у меня есть скрипт для увеличения/уменьшения высоты тона mp3 файла на несколько процентов. Когда арпеджиатор запустится, он создаст измененные mp3-файлы, необходимые для воспроизведения арпеджио. То есть он изменит высоту тона и сохранит новые копии.
Прямо сейчас я определяю «ноту» с точки зрения процентной разницы от базовой ноты. Т.е. снизить высоту тона на 50% будет 0.5
. Для двойного шага есть 2.0
.
Теперь я пытаюсь использовать этот процентный подход для создания реальных весов, но я не знаю, как это сделать.
Есть ли какая-нибудь диаграмма, показывающая процентное изменение высоты тона между двумя нотами? Или формула для расчета?
Общий ответ на вопрос «каково процентное изменение высоты тона между двумя нотами», вероятно, «четверг», поскольку ОП не дал никакой подсказки, что означает «нота».
Если вы говорите об обычной западной музыке и равной темперации, октава имеет соотношение частот 2:1 и делится на 12 частей (полутонов). Изменения высоты звука работают в логарифмической шкале, поэтому один полутон имеет соотношение высоты тона (12-й корень из 2) : 1, или увеличение на 5,94630943592952645618252949463% (согласно калькулятору в Windows 10).
Стандартный способ описания численного размера музыкальных интервалов — в «центах» — один цент равен 1/100 полутона или 1/1200 октавы в логарифмической шкале. Таким образом, один цент представляет собой отношение высоты тона 0,05777895065548592967925757932% - обратите внимание, что, поскольку это логарифмическая шкала, это НЕ «размер полутона, разделенный на 100», то есть 0,0594630943592952645618252949463%.
Есть много других возможных систем настройки - попробуйте https://en.wikipedia.org/wiki/Musical_temperament , чтобы начать, или погуглите "музыкальный темперамент".
В «Просто интонации» интервалы арпеджио обычно представляют собой довольно простые дроби, такие как 5/4, 4/3, 3/2, 8/5 и т. д.
Нет глубокой логической причины, почему октава должна быть разделена на 12 равных частей, как в популярной западной музыке. Например, в «классической» индийской музыке используется шкала с 22 неравными делениями. На Западе также использовались шкалы с другими числами равных делений - например, 19, 24, 53 или 72 «ноты на октаву» вместо 12.
Есть два типа формул, которые вы можете использовать, чтобы найти соотношение между нотами: просто интонация и одинаковая темперация; оба из них имеют свои преимущества и недостатки, которые я не буду подробно рассматривать в этом ответе, поскольку это выходит за рамки вашего вопроса.
Во-первых, общее правило, справедливое для обеих систем.
Чтобы найти ноту на октаву выше другой, умножьте ее номер на 2. Чтобы найти ноту на октаву ниже другой, разделите ее номер на 2.
Просто интонация
В простой интонации число, на которое вы будете умножать высоту тона, будет отношением между двумя целыми числами — вы привели два примера в своем вопросе: 1/2 (или 0,5) и 2/1 (или 2,0).
Вот дроби, на которые нужно умножить базовую ноту, чтобы получить ноты мажорной гаммы только в интонации:
Тоник/1-й: 1
2-й: 9/8
3-й: 5/4
4-й: 4/3
5-й: 3/2
6-й: 5/3
7-е: 15/8
А вот дроби для нот минорной гаммы:
Тоник/1-й: 1
2-й: 9/8
3-й: 6/5
4-й: 4/3
5-й: 3/2
6-й: 8/5
7-й: 9/5
Равный темперамент
Октава делится на 12 полутонов. В равной темперации каждый из полутонов имеет одинаковую величину — корень двенадцатой степени из двух. Таким образом, 1 полутон вверх равен 1 умноженному на двенадцатый корень из двух, 2 полутона вверх равен 2 умноженному на двенадцатый корень из двух и так далее. Вот десятичные приближения для равных темперированных интервалов шкалы.
1 полутон/младшая секунда: 1,059463
2 полутона/большая секунда: 1,122462
3 полутона/минорная терция: 1,189207
4 полутона/мажорная терция: 1,259921
5 полутонов/чистая четвертая: 1,334840
6 полутонов/тритон: 1,414214
7 полутонов/чистая квинта: 1,498307
8 полутонов / минорная шестая: 1,587401
9 полутонов/большая шестая: 1,681793
10 полутонов/младшая септима: 1,781797
11 полутонов/большая септима: 1,887749
12 полутонов/октава: 2,0
Итак, какую систему следует использовать?
Интервалы просто интонации имеют более чистое звучание. Однако он работает только в одном ключе. Если вы установите пропорции для до мажор только в интонации, а затем сыграете ре мажорную гамму или арпеджио, это будет звучать неправильно. Поскольку вы пишете программу, я предполагаю, что вы хотите, чтобы она работала во всех тональностях, поэтому я бы сказал, что равный темперамент — правильная формула для работы. Кроме того, вы упомянули, что использовали сэмпл фортепиано. Фортепиано настроено в равной темперации, поэтому, вероятно, звук настоящего фортепиано будет звучать более точно, если вы используете равную темперацию.
Ваша формула в стиле Excel будет выглядеть как pow(2, (n/12)), где n — это n на полшага выше исходного шага.
Для мажорной гаммы используйте ноты 0, 2, 4, 5, 7, 9, 11 и 12.
Это даст вам равномерную темперированную мажорную гамму в формате mp3.
Другие ответы идут довольно глубоко, но я обнаружил, что для быстрых предварительных расчетов я буду использовать 6% в качестве полушага - умножить или разделить на 1,06 - поскольку это примерно равно 12-й корень из 2. Это приличное приближение к 12-TET, если вас не волнует интонация и вы просто хотите оценить, скажем, насколько меньше ваши гитарные лады должны быть выше грифа или еще что-то. Конечно, если мне нужен точный ответ, я бы никогда этого не сделал, но только для мысленных экспериментов, где мне нужна приблизительная догадка, я укажу 6%.
Используя высокоточный калькулятор SpeedCrunch для Linux... это похоже на майнинг биткойнов, поскольку конечное число выстраивается в линию с идеальным рядом нулей в конце....
В 64-битной плавающей запятой:
1
= 1.00000000000000000000000000000000000000000000000000
ans*2^(1/12)
= 1.05946309435929526456182529494634170077920431749419
ans*2^(1/12)
= 1.12246204830937298143353304967917951623241111061399
ans*2^(1/12)
= 1.18920711500272106671749997056047591529297209246382
ans*2^(1/12)
= 1.25992104989487316476721060727822835057025146470151
ans*2^(1/12)
= 1.33483985417003436483083188118445277491239021262520
ans*2^(1/12)
= 1.41421356237309504880168872420969807856967187537695
ans*2^(1/12)
= 1.49830707687668149879928073202979579630215155373175
ans*2^(1/12)
= 1.58740105196819947475170563927230826039149332789985
ans*2^(1/12)
= 1.68179283050742908606225095246642979008006852471357
ans*2^(1/12)
= 1.78179743628067860948045241118102501597442523175632
ans*2^(1/12)
= 1.88774862536338699328382631333506875201513660667749
ans*2^(1/12)
= 2.00000000000000000000000000000000000000000000000000
@user19146 user19146 похоже, вы имеете в виду пифагорейскую настройку, которая, хотя и довольно крутая, математически элегантная и использует простые дроби, не так причудлива, как логарифм 1/12. Близко, но не совсем.
Обязательно ли, чтобы ноты арпеджио были нотами тональности? Вы можете подумать о том, чтобы распределить их одинаково (в абсолютных частотах, а не в логарифмах), чтобы каждый был кратным (в пределах допуска темперамента) одной и той же основной частоты. Таким образом: предположим, что вы переходите от частоты 0 к частоте 1 с N-1 промежуточными шагами, j-я нота такого арпеджио будет freq0+j*(freq1-freq0)/N.
(Если идеальное соотношение между крайними частотами равно p:q, например 5:8 для минорной сексты, N должно быть кратно |pq|.)
Я знаю, что это старо, но мне было интересно то же самое. После некоторых исследований и расчетов для себя ответ, который, как мне кажется, искал ОП, выглядит следующим образом: для равнотемперированной шкалы с 12 нотами на октаву каждая нота или полутон на 5,946309436% «выше» по частоте, чем предыдущее примечание. Таким образом, если у вас есть фортепианный сэмпл в «A», и вы играете его со скоростью 1,0596309436x, он будет воспроизводиться как A#/Bb. Для B вы увеличиваете скорость воспроизведения семпла A#/Bb еще на 5,963...% (что примерно в 1,1225 раз превышает скорость воспроизведения исходного семпла). Значение 5,96309436% работает только постепенно при увеличении масштаба. При понижении шкалы каждая нота (полутон) должна воспроизводиться на 5,612568731% ниже/медленнее, чем предыдущая нота (или приблизительно 0,9439-кратная скорость воспроизведения).
Вот простая частичная диаграмма, показывающая скорость воспроизведения и результирующую частоту нескольких нот, если вы использовали образец, который был A с нормальной скоростью (440 Гц):
F#Gb- 0,8409x 369,99 Гц (на 5,61% медленнее, чем G)
G------ 0,8909x 392,00 Гц (на 5,61% медленнее, чем G#/Ab)
G#Ab- 0,9439x 415,30 Гц (на 5,61% медленнее, чем A)
А------ 1.0000x 440.00Гц
A#Bb- 1,0595x 466,16 Гц (на 5,95% быстрее, чем A)
B------ 1,1225x 493,88 Гц (на 5,95% быстрее, чем A#Bb)
C ------ 1,1892x 523,25 Гц (на 5,95% быстрее, чем B)
C#Db — 1,2599x 554,37 Гц (на 5,95% быстрее, чем C)
Просто продолжайте таким же образом в любом направлении для любой другой ноты, которую вы хотите воспроизвести на основе исходного семпла.
триг
Антон Шервуд
СэмБ