[THE_EXPR_METHOD] 004 Units of Time(和訳)

[THE_EXPR_METHOD] 004 タイムユニット

タイムユニットとは1個の音楽的な事象の長さのことを指します。それは相対的であり、1つのユニットはより小さなパーツに細分化することができ、もちろん集合化してより大きなセクションを形作ることができます。つまり、タイムユニットが4分音符として計測されれば、4つのユニットの合計は1小節となりますし、タイムユニットの半分の長さは8分音符になるでしょう。もしタイムユニットが1小節で表されるとするならば、4つのそれは音楽的なフレーズに用いられるかもしれません。そして16分音符は1ユニットの長さの1/16になるでしょう。

この方法でタイミングについて理解することは、DSPのコントロールシグナルを使って作曲のアレンジをする際にとても役に立ちます。対象となるタイムユニットに関係する割合という意味で、必要なタイミングが表現される限り、シンプルな計算がすべての解決法を実行するだろう。

例えば、もし1周期のノコギリ波が1小節とするならば、同じ波形で4分音符の割合のものを生み出すためには単純に以下のようになります:

[phasor~ 1]->[expr~ fmod($v1*4, 1)]->[send~ QTR_NOTES]
\
->[send~ ONE_BAR]

これは最初に元のシグナルを好きな値で乗算することで動いています。そして適切に「変化の割合」がスケールアップされています。その後、シグナルはfmod(実数のモジュロ)関数を通ります。(fmodの)2番目の引数が1になっていると、fmodは整数部分を消して余りを出力します。シグナルを増幅するが、実数部分の0から1の値のみが出力される結果となります。

1Hzの1小節のその他の細分化を得るには、単純に乗算する値を他のものに変えてみましょう。そうすれば、すぐに複数の同時に並行するタイミングのシグナルが1つの[phasor~]オブジェクトから生み出されます。

しかし、もし1周期のノコギリ波が1つの拍で(例えば4分音符)、1小節かそれ以上のタイミングシグナルを得るためにはもう少し考える必要があります。しかし、そうでなければ上記と同じ原理に基づきます。

[phasor~ 0.25]->[expr~ fmod($v1*4,1)]->[send~ QTR_NOTES]
\
->[send ONE_BAR]

これは最初の[phasor~]の周波数を分割して動いています。適切な量に周波数を減少させています(この場合は4倍遅いです)。減速したオシレータはタイミングを「拡張」させるために使われます。しかし、もう一度1拍が1Hzのノコギリ波をえるためには、また同じfmodのトリックが使われます。
要するに、タイムユニットを細分化することは元のコントロールシグナルの周波数を変化させません。それに対して、タイミングの拡張は最初のコントロールオシレータの周波数を減少することに関係しています。

この例はfmodを使ってどのように時間を細分化するのかを示したものです。

EXAMPLE PATCH:004_fmod.pd

練習問題:

すべての上記の例題は時間をHz(1Hzの1周期は1秒)で扱って表現しているが、伝統的なBPMのような単位に翻訳するにはどのようにすれば良いでしょうか?

 

※この翻訳はChun Lee氏の[expr~]オブジェクトを使った作曲パッチの制作メソッドを和訳したものです。Chun Lee氏の許諾を得ています。
元サイト

例題パッチをダウンロードできます。

sei

Pure Data Japan管理者

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください