top of page
- Script Code -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_BRONZE")

require("reaper_AZSTOKE_SILVER") 

require("reaper_AZSTOKE_GOLD") 


p4URL = "********"

p4UserName = "********"

p4Password = "********"

p4Workspace = "********"


function InsertAndSetLoudness(depotPath, excelPath)


    track, trackID = reaper.AZ_InsertTrackSearchUniqueOnly(0, "voice")

    

    trackCount = reaper.CountTrackMediaItems(track)


    endTime = reaper.AZ_GetTrackMediaEndTime(0, trackID, trackCount - 1)

    

    startPos = endTime + 3

    

    if reaper.AZ_P4_Connect(p4URL, p4UserName, p4Password)then

         

         filePathList = reaper.AZ_P4_ExportAudioToProject(p4Workspace, depotPath, "", -1, "wav")

         

         itemList = reaper.AZ_InsertMediaItems(track, filePathList, startPos, 1)

         

         reaper.AZ_P4_Disconnect()

    end

    

    reaper.AZ_SetMediaItemListHANDAUTOMER(itemList, 2)

    

    excelDoc = reaper.AZ_Excel_OpenFile(excelPath)

    

    sheet = reaper.AZ_Excel_OpenWorksheet(excelDoc, "script")

    

    color, _, _, _ = reaper.AZ_GetRandomColor()

    

    for i, item in pairs(itemList) do

        itemName = reaper.AZ_GetMediaItemName(item)

        itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)

        itemEndPos = reaper.AZ_GetMediaItemEndTime(item)

        

        reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, itemName, -1, color)

        

        result = reaper.AZ_Excel_SearchRowsInWorksheet(sheet, itemName, "A", "", false)

        

        exists = false

        for j, row in pairs(result["Cells"]) do

            exists = true

            

            Msg("name: " .. row["A"])

            Msg("Loudness: " .. row["C"])

            Msg("")

            

            loudness =  tonumber(row["C"])

        end

        

        if exists == true then

             reaper.AZ_SetMediaItemLoudnessMaxMomentary(item, loudness)

        

        end

    end

    

    reaper.AZ_Excel_CloseFile(excelDoc)


end


function main()


    retval, inputList = reaper.AZ_GetUserInputList("", 2, "DeptPath,ExcelPath", "")

    

    if retval == false then return end

    

    deptPath = inputList[1]

    excelPath = inputList[2]

    

    InsertAndSetLoudness(deptPath, excelPath)

    

end


main()

- Warm Up -

  • Excelファイルを用意する

  • インポートする音声ファイルを用意する

- Script Detail -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_BRONZE")

require("reaper_AZSTOKE_SILVER") 

require("reaper_AZSTOKE_GOLD") 


・RIGDOCKSをインポート


p4URL = "********"

p4UserName = "********"

p4Password = "********"

p4Workspace = "********"


・perforceの接続情報を設定


function InsertAndSetLoudness(depotPath, excelPath)


・関数定義、引数はデポパスとExcelパス


    track, trackID = reaper.AZ_InsertTrackSearchUniqueOnly(0, "voice")


・「voice」という名前のトラックを作成

    

    trackCount = reaper.CountTrackMediaItems(track)


・「voice」トラック内のメディアアイテム数を取得


    endTime = reaper.AZ_GetTrackMediaEndTime(0, trackID, trackCount - 1)

    

・最後のメディアアイテムの終了時間を取得


    startPos = endTime + 3

    

・新規挿入位置を最後のメディアアイテム終了時間の3秒後に設定


    if reaper.AZ_P4_Connect(p4URL, p4UserName, p4Password)then

         

・perforceに接続


         filePathList = reaper.AZ_P4_ExportAudioToProject(p4Workspace, depotPath, "", -1, "wav")


・デポパス配下の音声ファイルを全てプロジェクトにエクスポートし、パスのリストを取得

         

         itemList = reaper.AZ_InsertMediaItems(track, filePathList, startPos, 1)


・音声ファイルを「voice」トラックに挿入し、メディアアイテムのリストを取得

         

         reaper.AZ_P4_Disconnect()


・perforceから切断


    end

    

    reaper.AZ_SetMediaItemListHANDAUTOMER(itemList, 2)


・挿入したメディアアイテム全てにHANDAUTOMERを実行

    

    excelDoc = reaper.AZ_Excel_OpenFile(excelPath)


・Excelファイルを開く

    

    sheet = reaper.AZ_Excel_OpenWorksheet(excelDoc, "script")


・「script」ワークシートを開く

    

    color, _, _, _ = reaper.AZ_GetRandomColor()


・ランダムな色を取得

    

    for i, item in pairs(itemList) do


・挿入したメディアアイテム全てに対してループ


        itemName = reaper.AZ_GetMediaItemName(item)


・メディアアイテムの名前を取得


        itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)

        itemEndPos = reaper.AZ_GetMediaItemEndTime(item)

        

        reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, itemName, -1, color)


・メディアアイテムの範囲にリージョンを追加

        

        result = reaper.AZ_Excel_SearchRowsInWorksheet(sheet, itemName, "A", "", false)


・ワークシート内にメディアアイテム名に対応する行があるか検索

        

        exists = false

        for j, row in pairs(result["Cells"]) do


・検索結果の最初の行を取得


            exists = true

            

            Msg("name: " .. row["A"])

            Msg("Loudness: " .. row["C"])

            Msg("")


・コンソールにメディアアイテム名とラウドネス値を表示

            

            loudness =  tonumber(row["C"])


・対応する行がある場合、C列に記載されたラウドネス値を取得


        end

        

        if exists == true then

             reaper.AZ_SetMediaItemLoudnessMaxMomentary(item, loudness)


・ラウドネス値が取得できた場合のみ、メディアアイテムのラウドネス値をその値に設定する

        

        end

    end

    

    reaper.AZ_Excel_CloseFile(excelDoc)


・Excelファイルを閉じる


end


function main()


・メイン関数定義


    retval, inputList = reaper.AZ_GetUserInputList("", 2, "DeptPath,ExcelPath", "")


・必要事項の入力を要求

    

    if retval == false then return end


・キャンセルされた場合、処理を中断

    

    deptPath = inputList[1]

    excelPath = inputList[2]


・入力値からデポパスとExcelパスを取得

    

    InsertAndSetLoudness(deptPath, excelPath)


・関数を実行

    

end


main()


・メイン関数を実行

- API LINK -

Excel

AZSTOKE_Excel_InsertAndSetLoudness

Perforceで管理された音声ファイルをExcelの表を基に設定し、Wwiseに自動実装①

01_BRONZE_ss_edited.png
01_SILVER_edited_edited.png
03_GOLD_edited_edited.png
bottom of page