Question

J'ai un moteur de son OpenAL sur mon application iPhone. Quand je joue un son que je l'ai chargé, je peux contrôler c'est pas.

Dans OpenAL un terrain mis à 1,0 n'a pas d'effet. Si vous double à 2.0, il joue la note 1 octave plus haut (12 demi-tons). Si vous la réduire de moitié, à 0,5, ce sera une octave inférieure (12 demi-tons).

Alors, mon échantillon d'origine joue un C. Je suppose que si je divise par 12 1 (demi-tons) je pourrais obtenir la hauteur des notes individuelles dans cette octave. Mais cela ne semble pas être le cas. Ce qui en fait, nous pensons que demi-tons ne sont pas des valeurs égales. Est-ce vrai?

Est-ce que quelqu'un sait comment je peux travailler la valeur de pas OpenAL pour les notes individuelles dans une octave?

Merci

Était-ce utile?

La solution

Semitones sont des rapports égaux. Donc, si votre échantillon est C, C # sera la 12e racine de deux. Si vous comptez C = 0 demi-tons, C # = 1 etc, le rapport est pow(2.0, n*1.0/12.0)

Travaux pour les nombres négatifs aussi.

Je tiens à souligner, ce n'est pas strictement vrai dans tous les schémas d'accord ... mais c'est un bon début. Si vous tenez vraiment à toute la complexité de accordage, je peux vous trouver des références.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top