6

私の iPhone アプリには OpenAl サウンド エンジンがあります。ロードしたサウンドを再生すると、ピッチをコントロールできます。

OpenAl では、1.0 に設定されたピッチは効果がありません。倍の 2.0 にすると、1 オクターブ高い音 (12 半音) が再生されます。半分の 0.5 にすると、1 オクターブ低くなります (12 半音)。

したがって、私の元のサンプルは C を演奏しています。1 を 12 (半音) で割ると、そのオクターブの個々の音のピッチを取得できると仮定しました。しかし、そうではないようです。これにより、半音は等しい値ではないと考えられます。本当?

オクターブ内の個々の音のopenAlピッチ値を計算する方法を知っている人はいますか?

ありがとうございました

4

1 に答える 1

12

半音は等しい比率です。したがって、サンプルが C の場合、C# は 2 の 12 乗根になります。半音 C=0、C#=1 などを数える場合、比率はpow(2.0, n*1.0/12.0)

負の数でも機能します。

これはすべてのチューニングスキームで厳密に当てはまるわけではないことに注意してください...しかし、これは良いスタートです。音楽のチューニングの複雑さを本当に気にしているなら、いくつかの参考文献を見つけることができます.

于 2010-02-09T04:14:36.927 に答える