Top

あちゃぴーの自転車通勤
u-he UHM言語 学習13 サンプルにアクセス

音処理の基本とも言えるサンプルにアクセスする方法。

main,aux1,aux2はバッファを指定。
fiは0~2047までのサンプルを直接扱う。
fpは0~1.0までのfloatを扱う。

試してみる

いろいろなことが出来そうだが、aux1にサイン波を作って、それをmainサンプルごとに加工しながら入れてみる。 下のプログラムは何をやっているかというと、フレームを32等分して交互に位相を反転させている。

Wave target=aux1 start=0 end=0 "sin(2 * pi * phase )"
Wave target=main "select((round(phase*32) % 2 ), 
aux1_fi(0,index), -aux1_fi(0,index))"
u-he uhm

selectは条件分岐で、if文や三項演算子と同じで、真であれば、1個目の式を実行し、偽であれば、2個目の式を実行するというもの。 roundは整数に丸める役目。phaseは0~1.0なので、これを32倍にして、0~32の整数として扱っている。

下は上のバリエーションで、フレームごとに分割数を変えてみた。

NumFrames = 32
Wave target=aux1 start=0 end=0 "sin(2 * pi * phase )"
Wave target=main "select((round(phase*frame) % 2 ), 
aux1_fi(0,index),-aux1_fi(0,index))"
u-he uhm

HIVEではswitchで再生してみた。フレーム間のモーフィングを切っている状態。

uhm言語