高い音と低い音、早い音と遅い音、長い音と短い音


キンキンする高い声、 ドンドン、ボーボー、ウーウーという低いうなり声、といったものがあります。
また、エンジン音のように、スピードをあげたり、下げたりで変化する音の変化を指します。

ピッチを変える

ADX2では「ピッチ」といったパラメータで音の高低を簡単に変更できます。

音が「キンキン」するというのは、早回しになっている状態。

逆に音が「ボーボー」となっているのは、遅回しになっている状態。

早い、遅い

何が早回し、遅回しかというと、テープメディアの時代の話になります。

カセットテープやレコード、またはビデオテープなど、テープに音の情報がそのまま記録されています。

レコードなどをむりやり手でとめると、スクラッチでスピードが遅くなり、音が低くなりつつ、音が小さくなりやがて音が止まります。

(ターンテーブル用のレコードプレーヤーでないと壊れるので注意)

いろいろな変化が伴うピッチ変更

遅くなる=低くなる(重くなる)=小さくなる

早くなる=高くなる(軽くなる)=大きくなる(*1)

といった変化があります。

以外といろいろ変化します。

*1 音の大きさは「ラウドネス曲線」という聴感的な物差しではもっと複雑に変化します。例えば極端に高い音は聞こえなくなります。

音楽的なピッチ

音楽の音程というものがあります。

いわゆる「ドレミファソラシド」の8音。

「ド」から上の「ド」までをオクターブと呼びます。

別な呼び方で、12音平均律とか言われます。「ド、ド#、レ、レ#、ミ、ファ、ファ#、ソ、ソ#、ラ、ラ#、シ」の12の音。

これはオクターブを12の半音で等分割したものになります。

ADX2ではオクターブを1200の値で表現します。半音(ドとド#)がちょうど100になります。

再生速度としてのピッチ

Unityなどでは、Pitchが、1.0で元の速さ、2.0で2倍速、3.0で3倍速、0で止まる。といった速度的なもので表します。

1.0から2.0にするとオクターブが上がり、1.0から0.5にするとオクターブが下がります。

プログラムで

速度からCRIのピッチ(100を半音とするもの)に変更する式は
pitch = 1200.0f*Mathf.Log(speed)/Mathf.Log(2.0f);

CRIのピッチから速度に戻すには
speed = Mathf.Pow(2,pitch/1200.0f);

といった感じで指定できます。

ピッチは低くする方が軽くなる

サンプリングは、音をデジタル化(標本化)することを指すのですが、
ADX2などピッチを変更する処理にはこの「リサンプリング」という処理が行われます。

情報を間引いてサンプリングし直すと高くなり、間延びさせると低くなります。

音が高くなると、音の時間あたりの情報の密度が増えているため、
音が大きくなったり、再生が早くなり、音の長さ(再生時間)が元より短くなったりします。

ゆっくり鳴らしてれば、より長い時間の再生が、より少ないデータで可能です。

これは、コンピューターの処理的にも、ピッチをあげると再生時に必要な情報や処理が増えるため、再生時の負荷が上がる傾向があります。

逆にゆっくりな音の方が負荷が下がる傾向があります。

もし、大きく音の高さが変化する場合は、高い音を用意して、低い方向へ変化させると、負荷を軽減できるといったテクニックもあります。

純粋にピッチだけを変えるのは難しい

難しいのですが、できないこともない。

ADX2ではエフェクターとして「ピッチシフター」というのがあります。

こちらは「フェーズボコーダー」と呼ばれる技術が使われています。

純粋に速度だけを変えるのは難しい

難しいのですが、できないこともない。

ADX2ではエフェクターとして「タイムストレッチ」というのがあります。

こちらは「PSOLA」と呼ばれる技術が使われています。


ちゃ〜り〜

ちゃ~り~田中(tatmos a.k.a. charytanaka) 興味あるもの、ゲームジャム、サウンドプログラム、リアクティブな音やアートやシステム、楽器、作編曲、音制作、ボカロ、ファミコンやFM音源、MML、レトロゲーム、音声合成、CRI ADX2、LogicPro、Unity、MIDI、Max7、MikuMikuDance、TouchDesigner、JUCE

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です