Top

あちゃぴーの自転車通勤
u-he UHM言語 学習05 Phase

頭文字が大文字のPhaseコマンドは位相を周波数領域においてコントロールする。 xに相当する小文字のphaseとは全く意味合いが違うので注意が必要。

サイン波を使った例

Spectrumを使った基音レベル1という式を元に、Phaseによる操作を確認する。

Spectrum lowest=1 highest=1 "1"
u-he uhm

下が、同じサイン波の位相を180度回転したもの。lowest=0は基音を意味するので、基音だけをpiラジアン回転したことになる。

Spectrum lowest=1 highest=1 "1"
Phase lowest=0 highest=0 "1*pi"
u-he uhm

さらに同じサイン波の位相を90度回転したもの。式では0.5*piラジアンとなる。 これでサイン波がコサイン波となる。

Spectrum lowest=1 highest=1 "1"
Phase lowest=0 highest=0 "0.5*pi"
u-he uhm

フレーム対して位相操作

サイン波に対して、フレームごとに位相をずらして、全フレームで2*pi回転させることで、ループを作ってみた。

Spectrum lowest=1 highest=1 "1 / index"
Phase lowest=0 highest=0 "2*pi*table"
u-he uhm

上記だと普通のサイン波と同じにしか聞こえないため、下のように何もしないサイン波と重ねてみる。 そうすると周期的に音が打ち消され、うなりが生じる。LFOに近く、周期はフレーム切り替わりスピードに依存する。

Spectrum target=aux1 lowest=1 highest=1 "1 / index"
Spectrum lowest=1 highest=1 "1 / index"
Phase lowest=0 highest=0 "2*pi*table"
Wave "aux1 + x"
u-he uhm

下サウンドはフレームのスピードを上下させている。

uhm言語