2010-02-09 13 views
6

Tengo un motor de sonido OpenAl en mi aplicación de iPhone. Cuando reproduzco un sonido que he cargado, puedo controlar su tono.Valores de tono OpenAl para notas musicales particulares en una octava

En OpenAl un tono establecido en 1.0 no tiene ningún efecto. Si lo duplica a 2.0, reproduce la nota 1 octava más alta (12 semitonos). Si lo reduce a la mitad, a 0.5, será una octava más baja (12 semitonos).

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 este no parece ser el caso. Lo que hace pensar que los 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

Respuesta

11

semitonos iguales proporciones. Entonces, si su muestra es C, C# será la raíz 12 de dos. Si cuenta semitonos C = 0, C# = 1 etc., la proporción es pow(2.0, n*1.0/12.0)

Funciona también para números negativos.

Debo señalar, esto no es estrictamente cierto en todos los esquemas de sintonía ... pero esto es un buen comienzo. Si realmente te importan las complejidades de la afinación musical, puedo encontrar algunas referencias.

+1

Gracias Andrew! esto es perfecto! ... ¡exactamente lo que buscaba! Y sí, las referencias serían geniales. En particular, la relación entre el tono y la longitud de la muestra. Gracias de nuevo. – Jonathan

+0

Oh, bueno, la longitud se vuelve más corta en la misma proporción. Encontraré una buena introducción a las escalas y la afinación. –

+1

http://en.wikipedia.org/wiki/Mathematics_of_musical_scales y http://en.wikipedia.org/wiki/Equal_temperament te llevarán a la maraña de artículos de wikipedia sobre este tema. Se vuelve enormemente complicado después de un tiempo, pero también es muy importante para la música práctica, especialmente si estás trabajando con cuerdas o instrumentos de viento. –

Cuestiones relacionadas