チュートリアル22:
ディレイライン

数値と bang メッセージをディレイする

通常、メッセージは、コンピュータが送信可能な限り、できるだけ速いスピードでパッチコードを通過しています。しかし、数値、リスト、bangメッセージを送信する前に、一定の時間ディレイ(遅延)させることも可能です。これはメッセージ間で一定のタイムラグを生じさせたり、ノートのディレイによってエコー効果を作り出したりするために役に立ちます

pipe オブジェクトは受信した数値を一定の時間ディレイさせてから送信します。 delay オブジェクト( del とも呼ばれます)は一定の時間 bang メッセージをディレイさせてから送信します。

pipe

・ パッチ1の最上部にあるナンバーボックスをドラッグして下さい。pipe オブジェクトによって、数値はすべて2000ミリ秒ディレイされます。

それぞれの数値は、受信後一定の時間を経てアウトレットから送信されます。このため pipe オブジェクトは多くの数値をディレイし、その後、受信したときと同じリズムでそれらを送信することができます。 右インレットで受信した数値はディレイタイムをミリ秒単位で設定し、それ以降左インレットで受信したすべての数値に対してこれが適用されます。左インレットで受信した clear メッセージは、その時点でpipe オブジェクト内にある、ディレイされている数値を消去します。

・ パッチ1で、 pipe オブジェクトの左インレットにさらに数値を送信し、すばやく clear という語をクリックして下さい。pipe オブジェクトを通過しない数値は、すでに消去されてしまったものです。

delay

・パッチ2の最上部にある button オブジェクトをクリックして下さい。bang メッセージは2000ミリ秒ディレイされ、その後 delay オブジェクトのアウトレットから送信されます。

一度に多くの数値を保存できる pipe オブジェクトとは異なり、delay オブジェクトは一度に1つの bangしか保存できません。すでに bangをディレイしている delay オブジェクトが、その間に新しい bang を受信した場合、古い bangは消去され、その代わりに新しい bang がディレイされます。

delay オブジェクトに対し、多くの bang メッセージを、連続して、素早く送信して下さい。前の bang から 2 秒以内に受信した bang は前の bang を消去するため、最後 のbang だけがアウトプットから出力されます。

delay オブジェクトの右インレットで受信した数値はディレイタイムを設定し、それ以降左インレットで受信したすべての bang に対してこれが適用されます。左インレットで受信した stop メッセージは、その時点でディレイされている bang をストップします。

数値グループのディレイ

notein オブジェクトからのピッチ、ベロシティ、チャンネル情報のような複数の並行した数値のストリームを、1つの pipe オブジェクトで、各ストリームごとのインレットとアウトレットのペアを使ってディレイさせることができます。pipe に複数のアウトレットを持たせるためには、ディレイさせる数値のストリームごとにそれぞれ1つの数値をアーギュメントとして書き込み、最後にディレイタイム用のアーギュメントを書き込みます。最後のアーギュメントは常にディレイタイムになります。


アーギュメントは各ディレイラインに対する初期値を設定します。
最後のアーギュメントはディレイタイムです。

ほとんどのオブジェクトと同様、pipe は左インレットによってトリガされます。左インレットで数値を受信すると、他のディレイライン・インレットで受信している最も新しい数値と共にディレイさせます。他のインレットで受信した数値がない場合、上の例のように、 pipeはアーギュメントの値を初期値として使用します。また、数値は左インレットでリストとして受信することもでき、リストの最後にディレイタイムを指定する数値を追加することができます。

パッチ3は、pipe オブジェクトが3つの数値のストリームをディレイしている例です。notein オブジェクトからのチャンネル値とベロシティ値を受信し、その後、ピッチ値が3つの数値のディレイをトリガします。ディレイタイムは pipe オブジェクトの右インレットに新しい数値を送信することによって変更できます。

・ 様々なディレイタイムで MIDI キーボードを演奏して下さい。

random

random オブジェクトは、左インレットで bang メッセージを受信するごとに、ランダムに数値を選んでアウトレットから送信します。random オブジェクトが選ぶ数値の範囲は、アーギュメントを書き込むか、右インレットに数値を送信することによって決定されます。ランダムな値は常に、「0 〜 アーギュメントより1小さい数」までです。

・このチュートリアルのコースの中で、様々な乱数の使用法を示します。

ディレイされたトリガの使用

パッチ4では metrorandomをトリガし、720ミリ秒ごとに0 〜 60の間の乱数を送信しています。この数値に36を加え、61鍵 MIDI キーボードに適切な範囲としてから、シンセサイザに対し、演奏ピッチとして送信しています。

また、metroからの bangdel オブジェクトにも送信され、これが一定の時間ディレイされて randomに送信されます。その後、新しく選ばれた乱数が送信されるため、実際には720ミリ秒ごとに2つのノートが演奏されます。2つのノートの間のリズムは、hslider オブジェクトから del オブジェクトの右インレットに送信されるディレイタイムによって決まります。


0から60までの乱数を選びます。 36から96のキーボードの範囲にトランスポーズします。

metroをオンにし、del オブジェクトのディレイタイムを変更して、様々なリズムを生成させてみて下さい。

まとめ

delay オブジェクト(delと呼ばれることもあります)によって、1つの bang を、指定した時間だけディレイさせることができます。最初の bang がディレイされている間に、 delay が2番目のbang メッセージを受信した場合、最初の bang メッセージは消去され、2番目の bang メッセージがディレイされます。

pipe オブジェクトによって、数値、あるいはリストをディレイさせることができます。pipeは連続した数値をディレイすることができ、受信したときと同じリズムで出力します。

また、 pipe は数値のリスト(または、ピッチとベロシティの組み合わせのような、いっしょに受信される数値)をディレイさせることもできます。

ディレイタイムは、右インレットで受信した(またはアーギュメントとして書き込まれた)数値によって、ミリ秒単位で指定されます。

ディレイはエコー効果やリズムを作り出すために使うことができます。

random オブジェクトは左インレットで bang メッセージを受信するごとに、 0 〜 アーギュメントより1つ小さい数までの範囲で乱数を生成し、その数値をアウトレットから送信します。

参照

delay bang メッセージをディレイします。
pipe 数値あるいはリストをディレイします。
random 乱数を出力します。