diff options
-rw-r--r-- | README.md | 20 | ||||
-rw-r--r-- | macros/songtimer.lua | 38 |
2 files changed, 58 insertions, 0 deletions
@@ -38,6 +38,26 @@ Does an alright enough job most of the time, but is ignorant of whitespace. Not that it really matters, you'll be retiming it anyway. +## Song timer + +makes song timing into a rhythm game +so you can vibe while you time + +bind to e.g. space + +0. tap to initialise (`READY`) +1. tap to set start (`START`) +1. tap to set end (`END`) + move to next line (`READY`) +1. go to 1. + +apparently that's what some vhs era groups did for their entire dialogue timing + +probably won't work too well for that, but for songs (where they're reasonably on-beat) it's pretty good (for a rough pass), especially if you know the song well. + +won't be faster, but will be much more enjoyable + +doesn't have depctrl - needs to be fast + ## K-Timing -> Alpha Timing Makes doing alpha timing significantly easier by getting rid of the part where you do alpha timing. diff --git a/macros/songtimer.lua b/macros/songtimer.lua new file mode 100644 index 0000000..9ebafce --- /dev/null +++ b/macros/songtimer.lua @@ -0,0 +1,38 @@ +script_name = "song timer" +script_description = "time songs while vibin" +script_author = "garret" +script_version = "1" + +local function main(sub, sel, act) + + local READY = "READY" + local START = "START" + local END = "END" + + local pos = aegisub.project_properties()['video_position'] + local ms = aegisub.ms_from_frame(pos) + local newline = sub[act] + newline.effect = READY + newline.text = "" + local nextline = newline + + local line = sub[act] + local endline = #sub + + if line.effect == READY then + line.start_time = ms + line.effect = START + sub[act] = line + elseif line.effect == START then + line.end_time = ms + line.effect = END + sub[act] = line + sub.append(nextline) + return {endline+1},endline+1 + else + sub.append(nextline) + return {endline+1},endline+1 + end +end + +aegisub.register_macro(script_name, script_description, main) |