-- by Naouak ( http://www.naouak.net ) script_name = "Advanced Pretime" script_description = "Add a 1 second before karaoke time" script_author = "Naouak" script_version = "0.5" script_modified = "September 8th 2009" function deleteline(subs) local deleted = false for i = 1, #subs do deleted = true while deleted and i < #subs + 1 do deleted = false if subs[i].effect == "karaoke" then subs.delete(i) deleted = true end end end end function pretime(subs) deleteline(subs) for i = 1, #subs do if subs[i].effect == "pretime" then local line = subs[i] aegisub.debug.out("\nligne:"..i.."\n"..line.text) line.comment = true subs[i] = line local pretime = string.match(line.text,"^{\\k(%d+)}{\\k") if pretime ~= nil then pretime = 100 - pretime else pretime = 100 end if line.start_time - pretime*10 < 0 then aegisub.debug.out("plop") pretime = line.start_time/10 end line.start_time = line.start_time - pretime*10 if pretime ~= 0 then local oldtime = string.match(line.text,"^{\\k(%d+)}{\\k") -- string.gsub(line.text, "{\\k(%d+)}{\\k", "%1%") --aegisub.debug.out("\nvieux:" .. oldtime) if oldtime ~= nil then local timetoset = oldtime+pretime aegisub.debug.out("\ntest: " .. timetoset .. "\n-----------------\n" .. oldtime .. "\n") line.text = string.gsub(line.text, "^{\\k(%d+)}{\\k", "{\\k"..timetoset.."}{\\k") else line.text = "{\\k" .. pretime .. "}" .. line.text end end line.comment = false line.effect = "karaoke" subs.append(line) end end end aegisub.register_macro("advanced pretime", "pretimer", pretime)