Track

 

​idxの列に1つトラックを挿入する。

▽Sampleコード

 すでに3つあるトラックに対してidx=2を設定して実行すると2のトラック一つ下に作られるコード

​ True/Falseは不明。特に変わらなかった。

reaper.InsertTrackAtIndex(2, true)

 

IDを指定してトラックを取得する。

▽Sampleコード

 プロジェクトを指定(開いているプロジェクト=0)トラックのIDを指定

 変数に代入している。

​ これでトラックの状態を変化させるための準備が整います。

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end

track = reaper.GetTrack(0, 0)

Msg(track)

reaper.SetOnlyTrackSelected( track )一つだけトラックを選択する

​選択するトラックを指定して選択状態にしてその他のトラックの選択を解除する。

▽Sampleコード

 トラックの1;2トラック目を取得して

 そのトラックを選択状態にして他のトラックを解除しています。

​ ※TrackのID指定は0~になるので1は2トラック目になります。

local tr = reaper.GetTrack(0, 1)
reaper.SetOnlyTrackSelected(tr)

integer reaper.CountSelectedTracks(ReaProject proj)選択しているトラックの数を取得

 

選択しているトラックの数を取得する。

▽Sampleコード

 プロジェクトを指定することで選択しているトラックの数を取得することができます。

​ 開いているプロジェクト=0になります。

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end

trCount = reaper.CountSelectedTracks(0)
Msg(trCount)

 

指定のプロジェクト内の選択しているトラック自体を取得します。

MediaTrack reaper.GetSelectedTrack(ReaProject proj, integer seltrackidx)

▽Sampleコード

 プロジェクト内のトラックを選択した状態で

 このアクションコードを実行すると先頭のトラックのUserDateの取得ができます

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end
item_track = reaper.GetSelectedTrack(0,0)
Msg(item_track)

プロジェクトの指定と選択トラックの何個目かが必要です。

現状のプロジェクトの場合は0 トラックは0からスタートする番号順になります。​

なので先頭は0ということになります。

 

指定のプロジェクト内の選択しているトラック自体を取得します。

​この関数はマスタートラックも含まれます。

MediaTrack reaper.GetSelectedTrack2(ReaProject proj, integer seltrackidx, boolean wantmaster)

▽Sampleコード

 プロジェクト内のトラックを選択した状態で

 このアクションコードを実行すると先頭のトラックのUserDateの取得ができます。

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end
item_track = reaper.GetSelectedTrack2(0,0,true)
Msg(item_track)

プロジェクトの指定と選択トラックの何個目かが必要です。

現状のプロジェクトの場合は0 トラックは0からスタートする番号順になります。​

なので先頭は0ということになります。

Boolに関しては、マスタートラックを取得できるようにするかどうかのTrue/Falseです。

​Trueにするとマスタートラックも取得範囲内に含まれるようになります。

 

指定のメディアをトラックの変更を行うことができ、上下移動させることができる。

boolean reaper.MoveMediaItemToTrack(MediaItem item, MediaTrack desttr)

▽Sampleコード

 選択しているメディアとトラック2を取得してそのメディアをトラック2に移動

​ そして描画を更新させることでメディアが下の2に移動している。

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end


item = reaper.GetSelectedMediaItem(0,0)
track = reaper.GetTrack(0,1)
move = reaper.MoveMediaItemToTrack(item,track)
Msg(move)

reaper.UpdateArrange()

 

トラックに値をセットする。状態などを変化させることができます。

​ミュートにさせるやパンを変化、ボリュームなどです。

boolean reaper.SetMediaTrackInfo_Value(MediaTrack tr, string parmname, number newvalue)

▽Sampleコード

 Get.Trackを使用してトラックを取得してそのトラックに対して

 変化をさせています。

 B_MUTE : ミュートさせるかどうか 0 = fakse 1 = true

 D_VOL  :   ボリュームを変化させるかどうか 2(+6.05dB)のため計算式を付与させたほうがよい

 D_PAN  :  パンを変えることが可能 -1(左)~0(中心)~1(右)

 I_SOLO : ソロに設定するかどうか 0 = fakse 1 = true

 I_RECARM : Rec状態かどうか  0 = fakse 1 = true  

​ その他もあります。

tr = reaper.GetTrack(0, 0)
reaper.SetMediaTrackInfo_Value(tr, "B_MUTE", 1)
reaper.SetMediaTrackInfo_Value(tr, "D_VOL", 2)
reaper.SetMediaTrackInfo_Value(tr, "D_PAN", 1)
reaper.SetMediaTrackInfo_Value(tr, "I_SOLO", 1)
reaper.SetMediaTrackInfo_Value(tr, "I_RECARM", 1)

integer reaper.CountTrackMediaItems(MediaTrack track)トラックにあるメディアの数を取得

 

トラックを設定することでそのトラックのメディア数を取得できます。

integer reaper.CountTrackMediaItems(MediaTrack track)

▽Sampleコード

 Get.Trackを使用してトラックを取得してそのトラックに入っているメディア数を取得することができます。

 

 

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end

track = reaper.GetTrack(0,0)
item_count = reaper.CountTrackMediaItems(track)
Msg(item_count)

 

 

トラックを指定することで名前などの変更ができる。

boolean retval, string stringNeedBig = reaper.GetSetMediaTrackInfo_String(MediaTrack tr, string parmname, string stringNeedBig, boolean setNewValue)

▽Sampleコード

 選択トラックの名前に連番をふるコードです。

 選択しているトラック数をFor文でループをかけてトラックを取得して

 ”P_NAME”で名称の変更を行っています。

 他は現在不明 

​  P_ICON , P_MCP_LAYOUT , P_TCP_LAYOUTなど

 

function Msg(param)
 reaper.ShowConsoleMsg(tostring(param).."\n")
end

trCount = reaper.CountSelectedTracks(0)

for i = 0,trCount-1 do
track = reaper.GetSelectedTrack(0,i)
reaper.GetSetMediaTrackInfo_String(track, "P_NAME","0"..i+1 , true)
end

 

-AZSTOKe OFFICIAL-