2010-02-09 4 views
6

iPhone 앱에 OpenAl 사운드 엔진이 있습니다. 내가로드 한 사운드를 재생할 때, 나는 그것의 음조를 제어 할 수 있습니다.옥타브 내 특정 음표에 대한 OpenAl 피치 값

OpenAl에서 피치 1.0으로 설정하면 아무 효과가 없습니다. 2.0으로 두 배로하면 1 옥타브 (12 반음) 음표를 연주합니다. 0.5로 반으로하면 옥타브가 낮아집니다 (12 반음).

내 원래 샘플은 C를 연주하고 있습니다. 1을 12로 나누면 (반음) 해당 옥타브의 개별 음표에 대한 음높이를 얻을 수 있다고 가정했습니다. 그러나 이것이 사실 인 것처럼 보이지는 않습니다. 그래서 우리는 반음이 같은 값이 아니라고 생각합니다. 그게 사실이야?

옥타브에서 개별 음표의 openAl 음높이 값을 계산하는 방법을 아는 사람이 있습니까?

답변

11

반음이 동일 비율입니다 감사합니다. 따라서 샘플이 C라면 C#은 두 번째의 12 번째 루트가됩니다. C = 0, C# = 1 등과 같은 반음을 계산하면 비율은 pow(2.0, n*1.0/12.0)

음수에서도 유효합니다.

모든 튜닝 구성표에서 이것이 엄격하게 적용되는 것은 아니지만 좋은 시작이라고 생각합니다. 뮤지컬 튜닝의 모든 복잡성에 정말로 관심이 있다면, 나는 당신에게 몇 가지 참조를 찾을 수 있습니다.

+1

감사합니다. Andrew! 이것은 완벽합니다! ... 정확히 내가 한 것! 그렇다면 참고 자료가 좋을 것입니다. 특히 피치와 표본의 길이 사이의 관계. 다시 한번 감사드립니다. – Jonathan

+0

오, 음, 길이가 같은 비율로 짧아집니다. 저울과 튜닝에 대한 좋은 소개를 찾을 것입니다. –

+1

http://en.wikipedia.org/wiki/Mathematics_of_musical_scales 및 http://en.wikipedia.org/wiki/Equal_temperament에서이 주제에 관한 위키 피 디아 기사의 덤불을 알 수 있습니다. 잠시 후에 상당히 복잡해 지지만 실용적인 음악에서는 특히 현악기 나 관악기로 작업하는 경우 매우 중요합니다. –