top of page

GameAudio & Art

指定トラックの全てのメディアを0.7倍速にして再度1秒ごとに並び替え

Media

AZSTOKE_TrackAllMediaSetRateMoveToSec

6

function Msg(param)

   reaper.ShowConsoleMsg(tostring(param).."\n")

end


retval,allCount,_ = reaper.AZ_GetTrackMediaTypeCount(0,1,"")


mediaList ={}

mediaInterval = 1

setMeidaRate = 0.7


for i = 1,allCount do

  mediaList[i] = {}

  mediaList[i]["media"]= reaper.AZ_GetMediaTrackItemSelect(0,1,i-1,0)

  _,mediaList[i]["startPos"]= reaper.AZ_GetTrackMediaStartTimeSeconds(0,1,i-1)   

  reaper.AZ_SetTrackMediaRate(0,1,i-1,setMeidaRate)

  _,mediaList[i]["length"]= reaper.AZ_GetTrackMediaLength(0,1,i-1)

end


for index, value in pairs(mediaList) do

    if index == 1 then

      startNextPos = mediaList[index].startPos+mediaList[index].length+mediaInterval

    else

       reaper.AZ_SetMediaItemStartTimeSeconds(mediaList[index].media,startNextPos)

       startNextPos = startNextPos+mediaList[index].length+mediaInterval

    end

end

function Msg(param)

   reaper.ShowConsoleMsg(tostring(param).."\n")

end

  • Msg コンソール出力関数をセット(記載なしでも問題ありません)


retval,allCount,_ = reaper.AZ_GetTrackMediaTypeCount(0,1,"")

  • 指定トラックの全てのメディアの数(allCount)を取得


mediaList ={}

  • 配列(medialist)を定義する

mediaInterval = 1

  • メディアの間隔値を変数として準備

setMeidaRate = 0.7

  • メディアの再生速度を変数として準備



for i = 1,allCount do

  • 1から変数(allCount)分、ループさせる

  mediaList[i] = {}

  • 配列(mediaList[i])の中に配列{}を定義

  mediaList[i]["media"]= reaper.AZ_GetMediaTrackItemSelect(0,1,i-1,0)

  • MeidaItemを取得し、mediaList[i]の["media"]に保存

  _,mediaList[i]["startPos"]= reaper.AZ_GetTrackMediaStartTimeSeconds(0,1,i-1) 

  • メディアの開始位置を取得し、mediaList[i]の["start"]に保存

  reaper.AZ_SetTrackMediaRate(0,1,i-1,setMeidaRate)

  • メディアの再生速度を変数(setMediaRate)に設定

  _,mediaList[i]["length"]= reaper.AZ_GetTrackMediaLength(0,1,i-1)

  • メディアの長さを取得し、mediaList[i]の["length"]に保存

end


for index, value in pairs(mediaList) do

  • 配列(mediaList)の要素数だけ繰り返す

    if index == 1 then

  • 変数(index)が1の場合、下に続く


      startNextPos = mediaList[index].startPos+mediaList[index].length+mediaInterval

  • 配列mediaList[index]の開始位置+配列mediaList[index]のメディアの長さ+メディアの間隔値(1秒)を変数(startNextPos)にセット


    else

  • if文 変数(index)の中身を確認

  • 1つ目以外の場合、下に続く

       reaper.AZ_SetMediaItemStartTimeSeconds(mediaList[index].media,startNextPos)

  • 配列mediaList[index]のメディアを変数(startNextPos)にセット

       startNextPos = startNextPos+mediaList[index].length+mediaInterval

  • 変数(startNextPos)+配列mediaList[index]のメディアの長さ++メディアの間隔値(1秒)を変数(startNextPos)にセット

    end

  • 配列(mediaList)分、繰り返す


end

  • 指定トラックの全てのメディアを0.7倍速になり、1秒間隔にならんでいる

APIの利用にはプランに加入し

専用APIをダウンロード

する必要があります。

​※SILVERは5月中の公開を予定しております

  1. プロジェクト内にメディアを複数設置

- Script Code -
- Script Image -
- Warm Up -
- Script Detail -
- API LINK -

LUA

​ReaScript File Download 👇

​※実行するには専用APIが必要です

- Script Download -
bottom of page