Lua code to generate many macro files

This is a place for people to chare the custom macros they have written.

Moderator: Moderators

User avatar
kimwida
Posts: 232
Joined: 05 Aug 2016, 16:26
Location: Seoul

Lua code to generate many macro files

Postby kimwida » 26 Jun 2020, 14:35

Sometimes you need to make many macro files which are doing smiliar things.
This is my lua code to generate them and you can use any programming language instead of lua.

Code: Select all

FileName = "Chase XFade"
MacroName = "% XFade"
MacroId = "Chase_XFade"

Window = "PlaybackWindow"
Page = 0
Slot = {}

--PlaybackSpeed : .Float : 120.0(120bpm)
--ChaseSpeedMultiplier : .Double : 2.0(x2)
--ChaseXFade : .Float : 1.0(100%)
--ChaseFixtureOverlap : .Float : 1.0(100%)

Item = "ChaseXFade"
Type = ".Float"
Content = {"0.0","0.5","0.9","1.0"}
Legend = {"0","50","90","100"}
--make temp Slots
--Slot = {0,1,2,3,4,5}
for i = 1, 60 do
   Slot[i] = i-1
end
--calculate size of slot
SizeOfSlot = 0
i = 1
while Slot[i] do
   SizeOfSlot = SizeOfSlot + 1
   i = i + 1
end
SizeOfContent = 0
i = 1
while Content[i] do
   SizeOfContent = SizeOfContent + 1
   i = i + 1
end
--macro saving location
filename = "C:\\Users\\kimwida\\Documents\\Titan\\Macros\\" .. FileName ..".xml"
local file = io.open(filename, "w")

FileTxt = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
FileTxt = FileTxt .."<avolites.macros>\n"

for j = 1, SizeOfContent do
   FileTxt = FileTxt .."  <macro id=\"" .. MacroId .. Content[j] .. "\">\n"
   FileTxt = FileTxt .."    <name>" .. Legend[j] .. " " .. MacroName .. "</name>\n"
   FileTxt = FileTxt .."    <sequence>\n"
   for i = 1, SizeOfSlot do
      FileTxt = FileTxt .."       <step pause=\"0.001\">Handles.SetSourceHandleFromHandle(Handles.GetHandle(\"" .. Window .. "\"," .. Page .. "," .. Slot[i] .. ")) </step>\n"
      FileTxt = FileTxt .."       <step pause=\"0.001\">ActionScript.SetProperty(\"Playbacks.Editor.SelectedPlayback\", Handles.SourceHandle)</step>\n"
      FileTxt = FileTxt .."       <step pause=\"0.001\">ActionScript.SetProperty" .. Type .. "(\"Playbacks.Editor.Times." .. Item .. "\"," .. Content[j] .. ")</step>\n"
   end
   FileTxt = FileTxt .."       <step pause=\"0.001\">Handles.ClearSelection()</step>\n"
   FileTxt = FileTxt .."       <step pause=\"0.001\">ActionScript.SetProperty(\"Playbacks.Editor.SelectedPlayback\", null)</step>\n\n"
   FileTxt = FileTxt .."    </sequence>\n"
   FileTxt = FileTxt .."  </macro>\n"
end
FileTxt = FileTxt .."</avolites.macros>\n"
io.output(file)
io.write(FileTxt)
io.close(file)

Who is online

Users browsing this forum: No registered users and 2 guests