Pregunta

Tengo un motor de sonido OpenAL en mi aplicación para el iPhone. Cuando juego un sonido que he cargado, puedo controlar es echada.

En OpenAL un terreno de juego ajustado a 1,0 no tiene efecto. Si se duplica a 2,0, se reproduce la nota de 1 octava más alta (12 semitonos). Si se reduce a la mitad, a 0,5, será una octava más baja (12 semitonos).

Por lo tanto, mi muestra original está jugando un C Supuse que si divido 1 por 12 (semitonos) que podría conseguir el tono de las notas individuales en esa octava. Pero esto no parece ser el caso. Lo que hace que pensamos que semitonos no son valores iguales. ¿Es eso cierto?

¿Alguien sabe cómo puedo calcular el valor de tono OpenAL para las notas individuales en una octava?

Gracias

¿Fue útil?

Solución

Semitones son iguales proporciones. Por lo tanto, si la muestra es C, C # será el 12 de raíz de dos. Si se cuentan semitonos C = 0, C # = 1, etc., la relación es pow(2.0, n*1.0/12.0)

Obras para números negativos, también.

deben tener en cuenta, esto no es estrictamente cierto en todos los esquemas de sintonía ... pero esto es un buen comienzo. Si realmente se preocupan por todas las complejidades de afinación, que se pueden encontrar algunas referencias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top