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

StackOverflow https://stackoverflow.com/questions/2226463

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Спасибо

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top