#!/usr/bin/perl # gen_ssa.pl - Don Yang (uguu.org) # Generate SubStation Alpha script for "Shiawase Hiyori" # # Use this script to test program timing. # Easier than looking at bouncing porin ;) # # 05/15/03 @verse = (1.02, 72.12); $line = 3.552; $line2 = 2.17; # Lines correspond to state table in core.c # Note the types are selected based on background vocal, not the lyrics. @lyrics = ( #verse0 '* duun doobi doowa shoobi doobi dan dan', # [type1] 'duun doobi doowa shoobi doobi dan dan', 'duun doobi doowa shoobi doobi dan dan', 'shoobi doobi du dan dan', # [type2] #verse1 'awatenaide mousukoshi', # duun doobi doowa shoobi doobi dan dan 'yukkuri arukou yo', # duun doobi doowa shoobi doobi dan dan 'nanimo nai hi wa', # la la la la # [type3,7] 'shiawase hiyori', # oooo # [type4] 'kasanaru kuzu oto', # la la la la 'kiitetai no / please give me', # [type5] #verse2 'duun doobi doowa shoobi doobi dan dan', 'yuuyake no nioi ga iine', 'duun doobi doowa shoobi doobi dan dan', 'shoobi doobi du dan dan', #verse3 # (pause 6 lines) #verse4 '* ne kyou wa mousukoshi', # duun doobi doowa shoobi doobi dan dan 'mawari michi shiyou', # duun doobi doowa shoobi doobi dan dan 'shinki no muuto de', # la la la la 'shiawase dameshi', # oooo 'ikinari daashu de', # la la la la 'kaeranai ne / please give me', #verse5 'duun doobi doowa shoobi doobi dan dan', 'itsumo yori hatsuun de ran ran', 'duun doobi doowa shoobi doobi dan dan', 'shoobi doobi du dan dan', #verse6 'hioun hisomu', # ooo wa ooo wa # [type6] 'oomagatoki datte', # oooo la la # [type7] 'madarani soumatta', # ooo wa ooo wa # [type8] 'sora ni hoshi / hitotsu', #verse7 'awatenaide mousukoshi', # duun doobi doowa shoobi doobi dan dan 'yukkuri arukou yo', # duun doobi doowa shoobi doobi dan dan 'shiawase dayori wa', # la la la la 'dashide ou yo / please give me', #verse8 'duun doobi doowa shoobi doobi dan dan', 'omamori wa wasurecha yan yan', 'duun doobi doowa shoobi doobi dan dan', 'shoobi doobi du dan dan', #verse9 'duun doobi doowa shoobi doobi dan dan', 'duun doobi doowa shoobi doobi dan dan', 'duun doobi doowa shoobi doobi dan dan', 'shoobi doobi du dan dan' ); sub ftime { $min = int($_[0] / 60); $sec = int($_[0] - $min * 60); $csec = int($_[0] * 100) % 100; return sprintf '0:%02d:%02d.%02d', $min, $sec, $csec; } # header print <<'EOT'; [Script Info] ; This is a Sub Station Alpha v4 script. ; For Sub Station Alpha info and downloads, ; go to http://www.eswat.demon.co.uk/ ; or email kotus@eswat.demon.co.uk Title: shiawase hiyori Original Script: omoikane Original Translation: serika Original Editing: serika Original Timing: serika Original Script Checking: serika ScriptType: v4.00 Collisions: Normal PlayResY: 1200 PlayDepth: 0 Timer: 100.0000 [V4 Styles] Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Default,Arial,20,65535,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,0 [Events] Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text EOT # Lyrics $i = 0; foreach $text (@lyrics) { if( $text =~ s/^(\* )(.*)$/$2/ ) { $start = shift @verse; $i = 0; } if( $text =~ m/^(.*)( \/ )(.*)$/ ) { $a = $1; $b = $3; print 'Dialogue: Marked=0,', ftime($start + $i * $line), ',', ftime($start + $i * $line + $line2), ',', '*Default,,0000,0000,0000,,', $a, "\n"; print 'Dialogue: Marked=0,', ftime($start + $i * $line + $line2), ',', ftime($start + ($i + 1) * $line), ',', '*Default,,0000,0000,0000,,', $b, "\n"; } else { print 'Dialogue: Marked=0,', ftime($start + $i * $line), ',', ftime($start + ($i + 1) * $line), ',', '*Default,,0000,0000,0000,,', $text, "\n"; } $i++; }