OpenMusic公式チュートリアル解説:4 - 音程間隔の反転(転置)(II)
■今回のテーマ
算術系ファンクションを使用し、ノートを反転する。
■使用するファンクション
CHORD、x->dx、dx->x、om*.
■解説
このパッチは、C3から始まるCHORDボックス(A)における音程間隔を反転して返すという、tutorial2の別パターンとなっている。
「音程間隔を反転して返す」ということはつまり、(A)の差分値に -1 を乗算して逆転後、それを利用してピッチリストを組み直せば良いわけだ。
初出の "x->dx" も解説しておこう。
X->DX [GENERIC-FUNCTION]
リスト要素間の差分リストを返す。
Ex. (x->dx '(0 1000 1200 2000 5000)) => (1000 200 800 3000)
A: CHORD ボックス(A)のエディタを開く。"order"モードで目的の音符(ここではC3)から、操作対象となる音程間隔を確認しよう。"order"モードはリストの順番で音符が並ぶ。
B: "x->dx" ボックスは、リスト内要素の一連の間隔を返します。ここでは、CHORD ボックス(A)内の2音の間隔を返します。
C: 音程間隔を反転する為、om* を使用して -1 で x->dx の出力を乗算している。
D: dx->x ボックスは、与えられた値(最初の引数)に、音程間隔(第二引数)のリストを段階的に加算したリストを返す。
E: "first" ファンクション(E)を使用し、CHORDボックス内の音程間隔リスト(A)の最初のノートを返している。"dx->x" の二番目の引数は、 "om*" による反転処理済みの間隔(C)となっている。
F: CHORDボックス(F)を評価し、その結果を確認しよう。エディタで見たほうがわかりやすい。