u-he UHM言語 学習11 Move
任意のフレームをコピーするMoveコマンド。はじめコピーなので簡単だと思ったら、ちょっと迷った。 多分ドキュメントの例とuhmの内部が一致していない。 現状、下の例にあるsourceは機能していないようだ。そもそもコマンドオプションとして書かれていない。
// Multiply 101 frames of buffer Aux2 with the same frames from Aux1
Move source=aux1 target=aux2 Blend=multiply start=0 end=100
こうなるとコピー元とペースト先の関係が分かりにくく、複数の選択肢がある場合、明確にならないので厄介。 main、aux1、aux2の3つのバッファを使って、どう振る舞うか検証してみた。以下がその結果。
start デフォルト0
コピー元の開始フレーム。おそらくmainが自動的に選択される。
end 必須!
コピー元の終了フレーム。コピーするフレーム数が決まる。これも当然main。
to 必須!
ペースト先の開始フレーム。main、aux1、aux2が可能。フレーム数は上記のendで決定される。
blend
- replace:デフォルト 入れ替え
- add:足し算
- multiply:掛け算
target
ペースト先のバッファを選択する。
- main:使えない?
- aux1
- aux2
以下のスクリプトでいろいろ検証してみた。
NumFrames =4
Wave target=main start=0 end=3 "round(sin(2*frame*pi*phase))"
Wave target=aux1 start=0 end=3 "cos(2 * pi * phase)"
Wave target=aux2 start=0 end=3 "sin(2 * pi * phase)"
Move target=aux2 start=1 end=2 to=1 blend=replace
Wave "aux2"
結論的にはmainが常時コピー元で、main、aux1、aux2へペーストするという使い方になりそう。 aux1、aux2をコピー元にはできなさそう。
ちゃんとした使い方が分かれば追記していきたいと思う。