[THE_EXPR_METHOD] 007 Modulus Djent(和訳)
[THE_EXPR_METHOD] 007 モジュラス ジェント
※DJENTとはヘビーメタルのジャンルの一種です。
モジュロ演算子は(ニセの)ジェネラティブパターンを作るのに使うことができます。比較的簡単に使うことができるだけでなく、その処理はパラメータの変化に反応してくれます。言い換えれば、複雑な構造が簡単なオペレーションからもたらされ、あるパターンから異なるパターンへ移っていくのも素早く作ることができます。
※モジュロ演算子(modulo)はある数を除算(割り算)した余りを出力する演算子です。
以下の2つの例は、モジュロ演算子のシンプルな使い方と演算結果のパターンを示しています:
if($v1%4 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 . . . .
※補足:
if($v1%4 == 0, 1, 0):
とは、「入力値(カウンタ)$v1を4で除算した余りが0と等しければ1を、それ以外は0を出力する」ことです。カウンタは0から1ずつ増加する値です。この場合は4回に1回モジュロ演算の出力が0になって1が出力されます。
if($v1%5 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 . . . .
パターンが互いに積み上がったりレイヤーとして重ねたりしない限りは、このような演算の実行だけでは面白い結果を生み出すことはできません。
しかし、モジュロ演算子を次々と変化させていくことによって、その結果は急速にもっと複雑になっていきます。
例:
if(($v1%5)%3 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 . . . .
if((($v1%7)%4)%3 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 . . . .
if((($v1%11)%7)%4 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 . . . .
※補足
モジュロ演算を入れ子状にカッコでくくる(ネストする)と、1が出てくるタイミングをコントロールできます。
一般的な原理は上記のように各モジュロ演算子に使う値の内、小さい方の値へ漸次変えていくことです。これはより大きいループの内側により小さいカウント値をネストして入れています。
これらの除数(除算の結果)はしばしば他の時間軸によって変調されることがあります。これは特に小さい値の結果に向かって働きます。それゆえにパターンの結果の多様性の増加につながります。
さらに、大きな除数がパターン全体の長さを決定していますが、変調によっても除数が異なるパターンも生成します。これは残りの計算式が同じものであってもなります。
以下のものを見てみましょう:
if(($v1%5)%3 == 0, 1, 0) vs. if(($v1%7)%3 == 0, 1, 0):
COUNTER: 0 1 2 3 4 5 6 7 8 9 A B C D E F . . . .
PATTERN: 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 . . . .
PATTERN: 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 . . . .
ここまでの例では一様に最初のカウントを最終的なストラクチャを作るために選択しています。しかし、以下のような例もあります:
if(($v1%5)%3 == $v2)
$v2は変調シグナルが入力され、カウントの中のどの要素を使うかを選択します。
以下はモジュロ演算子を使ってDjentを作る簡単な例です。:)
EXAMPLE PATCH: 007_modulo_djent.pd
練習問題:
・モジュロを有効に使ってパターンを作る/操作する他の方法はなんでしょうか?
・さらにパターンを出力するためにフェーズ・シフトをどのように使えるでしょうか?
※この翻訳はChun Lee氏の[expr~]オブジェクトを使った作曲パッチの制作メソッドを和訳したものです。Chun Lee氏の許諾を得ています。
※元サイト