DATのスクリプトを使ってみる

      DATのスクリプトを使ってみる はコメントを受け付けていません

ここではDATの続きとして、少しだけスクリプト(Python)を使ってみましょう。まず、Text DATを出し、その隣にConstant TOPを置きます。


次に、text1からconstant1にアクセするために、オペレータの名前を指定し、パラメータ名も指定します。

op(‘constant1’).par.colorr = 0.5

この式は、constant1という名前のオペレータのパラメータの中から、colorr(red)という変数を探し、値を0.5にするという意味になります。各オペレータのパラメータは、デフォルトだと表示されていないので、パラメータのウィンドウの左端の+をクリックし、表示させてください。
コマンド+R(Mac)もしくはコントロール+R(Win)のショートカットを使いスクリプトを実行すると、constant1の色が変化します。


このように、すべてのオペレータのパラメータは、スクリプトからアクセス可能です。

それでは次に、tableの値を取り出してみましょう。Table DATを出してください。下図のようにRowとColumnを増やし、数値を入力してください。
そして、text1の指定は以下のようになります。

op(‘constant1’).par.colorr = op(‘table1’)[0,1]

末尾の[0, 1]は[行番号, 列番号]になります。greenとblue用のスクリプトも追加してみましょう。


次に、スライダーの値が変化したらその値をDATに送り、さらにTOPに送ってみます。

Slider COMPとNull CHOP、CHOP Execute DATを出して繋いでください。CHOP Executeは、CHOPの状態が変わったときに、スクリプトを実行してくれるDATです。


chopexec1のonValueChange内を以下のように書き換えましょう。スライダーを操作するとconstant1の色が変化するようになります。また、print()によるvalの値は、TextPortを開くと確認できます。

def onOffToOn(channel, sampleIndex, val, prev):
	return
def whileOn(channel, sampleIndex, val, prev):
	return
def onOnToOff(channel, sampleIndex, val, prev):
	return
def whileOff(channel, sampleIndex, val, prev):
	return
def onValueChange(channel, sampleIndex, val, prev):
	op('constant1').par.colorr = val
	print(val)
	return

オペレータの値を取り出す場合のもう一つの書き方

基本的に「op(‘constant1’).par.colorr = 0.5」のような形で値を取得することも書き込むこともできますが、値の取得ができる書き方がもう一種類あり、以下のように書くことができます。

op(‘constant1’)[‘chan1’]

実際に書いてみましょう。Text DATConstant CHOPを出してください。CHOPの場合は、チャンネル名を記載(chan1、v1など)することによって値にアクセスできます。text1にprint(op(‘constant1’)[‘chan1’])と記入してプログラムを実行(Mac – ⌘+R、Windows – Control+Rしてみてください。Textportに0が表示されます。


しかし、この書き方は、CHOPの場合は値を書き込むことができません。constant1の値を書き換えたい場合は例えば以下のように記入してください。

op(‘constant1’).par.value0 = 3