Значения высоты тона OpenAl для определенных музыкальных нот в октаве - PullRequest
6 голосов
/ 09 февраля 2010

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

В OpenAl высота тона, установленная на 1,0, не действует. Если вы удвоите его до 2.0, он будет играть ноту на 1 октаву выше (12 полутонов). Если вы уменьшите его вдвое до 0,5, он будет на октаву ниже (12 полутонов).

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

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

Спасибо

1 Ответ

11 голосов
/ 09 февраля 2010

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

Работает и для отрицательных чисел.

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

...