Значения высоты звука OpenAl для определенных музыкальных нот в октаве

В моем приложении для iPhone установлен звуковой движок OpenAl. Когда я проигрываю загруженный звук, я могу контролировать его высоту.

В OpenAl значение высоты тона 1.0 не имеет никакого эффекта. Если вы удвоите его до 2,0, он будет воспроизводить ноту на 1 октаву выше (12 полутонов). Если вы уменьшите его вдвое, до 0,5, он будет на октаву ниже (12 полутонов).

Итак, мой исходный сэмпл играет C. Я предположил, что если я разделю 1 на 12 (полутонов), я смогу получить высоту звука для отдельных нот в этой октаве. Но похоже, что это не так. Это заставляет нас думать, что полутоны - это не равные значения. Это правда?

Кто-нибудь знает, как я могу определить значение высоты тона openAl для отдельных нот в октаве?

Спасибо


person Jonathan    schedule 09.02.2010    source источник


Ответы (1)


Отношения полутонов равны. Итак, если ваш образец - C, C # будет корнем 12-й степени из двух. Если вы посчитаете полутоны C = 0, C # = 1 и т. Д., Соотношение будет pow(2.0, n*1.0/12.0)

Также работает с отрицательными числами.

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

person Andrew McGregor    schedule 09.02.2010
comment
Спасибо, Андрей! это прекрасно! ... именно то, что я искал! И да, ссылки были бы отличными. В частности, соотношение между шагом и длиной сэмпла. Еще раз спасибо. - person Jonathan; 09.02.2010
comment
Да ладно, длина становится короче в том же соотношении. Я найду хорошее введение в гаммы и настройку. - person Andrew McGregor; 09.02.2010
comment
en.wikipedia.org/wiki/Mat Mathematics_of_musical_scales и en.wikipedia.org/wiki/Equal_temperament перенесет вас в чащу статей в Википедии на эту тему. Через некоторое время это становится очень сложным, но это также очень важно для практической музыки, особенно если вы работаете со струнными или духовыми инструментами. - person Andrew McGregor; 09.02.2010