function

グラフィカルなブレークポイント関数エディタ

functionオブジェクトは、シグナルオブジェクトではありませんが、line~シグナルオブジェクトへのグラフィカルな入力に役に立ちます。

インプット

(マウス)
ラインセグメント関数のポイントを描くためにマウスを使用できます。;完成した関数を、MSPでコントロールシグナルとして使われるline~オブジェクトへ送ることができます。functionの何もないスペースをクリックすると、ブレークポイントが追加され、それをドラッグすることで(function が clickadd 0 メッセージを受け取っている場合を除いて)直ちに移動させはじめることができます。ブレークポイントのXとYの値はオブジェクトボックスの上側に表示されます。ブレークポイントの上で、[Shift]+クリックすると、そのポイントはfunctionから消去されます。ブレークポイントの上で、[Command]+クリックすると、ポイントのサステインプロパティをトグルします。サステインポイントは白いアウトラインで表示されます。マウスによるエディット操作が完了する毎に、bangが右アウトレットから出力されます。

Yの値が0のポイントは、円形のアウトラインを持っています。;他のポイントは単色です。このため、関数の開始点、または終了点が0かどうかが一目でわかるようになっています。

floatまたはint 値はXとして扱われ、対応するYの値が左アウトレットから出力されます。Yの値は、関数の、浮動小数点を用いた線形補間によって作られます。Xの値が、最初か最後のブレークポイントの外側にある時、Yの値は0になります。
bang 中央左のアウトレットから、現在のブレークポイントのリストを、line~オブジェクトで使用できるフォーマットで出力するためのトリガとなります。例えば、functionがブレークポイント X=1,Y=0; X=10,Y=0; X=20,Y=0 を持っている場合、出力は 0,1 9 0 10 になります。

関数の中にサステインポイントがあると、bangは、サステインポイントまでのすべてのポイントのリストを出力します。関数の残りのポイントは、nextメッセージを送ることによって、次のサステインポイントまで、または終了ポイントまで(どちらか、あてはまる方)送り出すことができます。nextとsustainメッセージについての更に詳しい情報の記述を見て下さい。

next nextメッセージは、直前のbangまたはnextメッセージによって到達したサステインポイント以降の、リストの出力を続けます。例えば、functionがブレークポイント、(a)X=1,Y=0; (b)X=10,Y=1; (C)X=20,Y=0;を持っていて、(b)がサステインポイントである場合、bangメッセージによって、0,1 9 が出力され、次のnextメッセージで1,0 10 が出力されます。nextメッセージによって終了ポイントに到達した後は、次のnextメッセージは、bangメッセージと同じ働きをします。nextはまた、サステインポイントまで進めるためのbangメッセージが送られていない時、あるいはfunctionがサステインポイントを持たない時には、bangと同じ働きをします。
list リストが2つの値を持っている場合、新しいポイントがfunctionに追加されます。1番目の値はX,2番目はYになります。

リストが3つの値を持っている場合、すでにfunctionにあるポイントが変更されます。1番目の値は、変更されるブレークポイントのインデックス(0からスタート)、2番目の値は、ブレークポイントの新しいXの値、3番目の値はブレークポイントの新しいYの値になります。(リストのインデックス値が、存在しないプレー九ポイントを指している場合、メッセージは無視されます。)

nth
nthの後に数値が続いている場合、数値はブレークポイントのインデックス(0からスタート)として扱われ、左アウトレットからブレークポイントのYの値が出力されます。指定されたインデックスにブレークポイントが存在しない場合、何も出力されません。
clear
clearは、現在あるブレークポイントをすべて消去します。clearの後に1つ以上のブレークポイントのインデックス(0からスタート)を続けて、選択されたブレークポイントを消去することもできます。
dump
2つのアイテムで1組となるデータの、連続するリストを出力します。これは、各々のブレークポイントのXとYの値から成っていて、functionオブジェクトの中央右アウトレットから出力されます。
range
rangeの後に2つのfloatまたはintの値が続く場合、Yの値のディスプレイ範囲の最大値と最少値を設定します。実際のブレークポイントの値は修正されないので、このメッセージによって、ブレークポイントがビューから消えてしまうことも起こり得ます。
setrange
setrangeの後に2つのfloatまたはintの値が続く場合、Yの値のディスプレイ範囲の最大値と最少値を設定します。このとき、すべてのブレークポイントのYの値は修正されるので、これらは、与えられた新しいレンジの同じ位置に残ります。
domain
domainの後にfloatまたはintの値が続く場合、表示されるXの最大値を設定します。最少値は常に0です。実際のブレークポイントの値は修正されないので、このメッセージによって、ブレークポイントのXの値が、Xの表示される新しい最大値を超えて、消えてしまうことも起こり得ます。
setdomain
setdomainの後にfloatまたはintの値が続く場合、表示されるXの最大値を設定します。このとき、すべてのプレー九ポイントのXの値は修正されるので、これらは、与えられた新しい領域の同じ位置に残ります。
color
colorの後に0から15の間の値が続く場合、表示されるブレークポイントの色を、指定された色に設定します。色は、MaxメニューのColor...ダイアログで表示されるインデックスに対応しています。
(Color...)
ロックされていないパッチャーウィンドウで、functionオブジェクトを選択し、MaxメニューからColor...を選ぶことによって、ブレークポイントの色を変えることができます。
clickadd
clickadd 0 メッセージは、ユーザのクリックによって新しいブレークポイントが追加されるのを防ぎます。clickadd 1 はユーザによる新しいブレークポイントを追加を許可します。デフォルトでは、ユーザは新しいブレークポイントを追加できるようになっています。パッチャーがセーブされる時、現在の設定はオブジェクトと一緒にセーブされます。
clickmove
clickmove 0 メッセージは、ユーザのマウスドラッグによって既存のブレークポイントが移動させられるのを防ぎます。clickmove 1 はユーザによるブレークポイントのドラッグを許可します。デフォルトでは、ユーザはブレークポイントのドラッグができるようになっています。パッチャーがセーブされる時、現在の設定はオブジェクトと一緒にセーブされます。
fix
fixの後にポイントのインデックスを指定する数値と、0か1が続く場合、2番目の数値が1の時は、ユーザによるポイントの変更は妨げられ、2番目の数値が0の時は、ユーザによるポイントの変更は許可されます。デフォルトでは、すべてのポイントの移動を禁止するclickmove 0 が送られない限り、ポイントの移動は可能です。
sustain
sustainの後にポイントのインデックスを指定する数値と、0か1が続く場合、2番目の数値が1の時は、ポイントをサステインポイントに切り換え、2番目の数値が0の時は通常のポイントに切り換えます。デフォルトでは、ポイントは標準(サステインではない)です。サステインポイントの振る舞いについては、上のbangメッセージの記述の中で説明されています。ポイントのサステインプロパティは、ポイントを[command]+クリックすることによっても切り変えられます。
(preset)
presetオブジェクトを使って、functionのブレークポイントの設定をセーブ、リストアすることができます。

引数

なし

アウトプット

float 左アウトレット出力:インレットで受け取ったfloatまたはintのXの値に対応する、補間されたYの値を出力します。;あるいは、nthメッセージに対応する、ストアされているYの値を出力します。
リスト 中央左アウトレット出力:bangを受け取ると、最初にストアされたYの値がfloatとして送り出されます。その後、各々が、次のYの値とそのための所要時間(Xと前のXとの差)を示す数値のペアから成るリストが続きます。このフォーマットは、line~オブジェクトへの入力を目的としています。

中央右アウトレット出力:dumpメッセージを受け取ると、functionの各ブレークポイントのXとYの値による、2つの項目のシリーズから成るリストを出力します

bang 右アウトレット出力:マウス編集操作が完了すると、bangを送り出します。

実例

line~にラインセグメント情報を送るか、または、個々のYの値をルックアップ(そして補間)します

参照

line~ ランプジェネレータ

チュートリアル7 シンセシス:加法シンセシス

目次へ

.