4.3.6 -Fix saving a project file with default layer names not showing any names when loading the file again -Fix small bug loading v5/6 scripts 4.3.5 -Truetype Collection (TTC) font files are supported in the font finder -Factorial should work now -More optimizations/cleanups 4.3.4 -Fixed/tweaked some UI stuff -More resize code added -Fixed double click in error list -Optimized some stuff -All karaoke variables now index from 0, not 1. This will break backwards compatibility with some karaoke, but it has never been consistent, so I am changing it. -Fixed %karamid% 4.3.3 -A bunch of fixes for noteboxes -Don't bother to scale resolution if the factor is 1:1 4.3.2 -Workaround for crash when line is 259 characters long -Workaround to prevent splitter from stealing focus on resize (by design, MS? What were you thinking?) -Fix in default notebox template 4.3.1 -Search/replace now affects everything as it used to -Unparsable dialogue/style lines are now parsed as strings, displayed with green background -Changing time precision or running search/replace refreshes the list automatically 4.3.0.2 -Fixed karaoke condition buttons 4.3.0 -Added notebox generator, see readme -List and utility panel are now resizable panes -Fixed a bug in resolution scaling -Fixed error checker crash -Fixed kanji timing crash 4.2.0.10 -Fixed strip SSA leaving off the last syllable 4.2.0.9 -Fixed a bunch of functions that did nothing 4.2.0.8 -Gradient fixes -Make screen update when you copy text from gradient/blur/etc to it, and don't copy text backwards 4.2.0.7 -v6 script support improved -Fix so that you can do both lead-in and lead-out -A bunch of UI crashes from 4.2.0 fixed 4.2.0.6 -Timecodes may now be unapplied 4.2.0 -Lead no longer makes the list backwards -Undo/redo optimized and now support adding/removing lines -Fixed styles -Optimizations, including overall memory usage -Fixed lead and remove duplicate lines -Reading negative times supported -Other misc fixes, mostly UI-related -Some Math constants added to $eval, see readme -Boolean inversion is now denoted as ~ as opposed to ! in $eval -Added LCM and GCD to $eval -Fix loading some files through command line -Fix to reading ARGB colors -Timecode transform added -Double clicking a line in the list will bring up the modify line dialogue box -Bold, Italic, etc. now specified as -1 (instead of 1) as per specs. Parsing will work correctly with either. 4.1.0 -V6 scripts (AKA V4++) supported -Fixed a bug with %layernum% when you have disabled layers -Undo/redo added -Fixed a couple of bugs with kanji timing -Effects files now use .exml extension. Old files may be renamed. -Manual transform times are now displayed in the listbox as entered, but are snapped internally to be between frames. -Conditions may now be edited directly instead of removing/readding -Completely rewritten script engine combining $logic and $eval -Workaround to prevent resaving UTF-16 files as UTF-8 by default -You may now edit the names for karaoke layers and effects. -Error checker now looks for decimals without leading integers (.1 vs 0.1) -Rudamentary SJIS/EUC-JP detection -Fixes to gradient maker -Lots of general optimizations and other internal code changes -Put layer condition checking back to per line instead of per syllable, as it should be -Added karaoke syllable-per-line mode 4.0.0 -Resolution scaling now has separate scale parameters for X and Y, no longer affects all lines, and no longer crashes -FPS is now a global parameter -Added option for ms precision. A modified VSFilter is required for it to work. -Lead-in/out now affect \t and \move -Karaoke layer options layed out a little differently -Added kanji timing -Fixed a possible crash with karaoke effects for short lines -Fixed trying to save a project file as ANSI -Various interface tweaks 3.7.3 -Fixed %text% for syllables with no text -Fixed logic with non-number, non-digit characters, such as space. 3.7.2 -Fixed $iif when a condition is false -Fix crash trying to remove an item in the karaoke tree when nothing is selected -Adding an effect to the karaoke tree selects it automatically -Added $str, see readme -Fixed one layer being disabled affecting all layers below it -Fixed one effect having unmet conditions disabling all effects below it 3.7.1 -Added lead-in/out. It does not yet correct for \t, \move, etc. 3.7.0 -Converting to C# 2.0. Filesize is much smaller. New bugs may be introduced. -Fixed bug loading project files where layers didn't specify repetitions. 3.6.0 -Added repetitions to karaoke effects. See readme. -Removing effects should work better now. -$logic should correctly interpret strings with numbers 3.5.0 -Programming structure improved -Random tweaks here and there -Fixed cloning (copying effects, duplicating layers) in many cases -Select first karaoke effects layer (if there is one) when loading a project -Added manual transform. See readme. -Improved precision of shifting by frame. Start times are now always rounded down (floor), while end times are rounded up (ceil) -Changed interface for karaoke effects to use a treeview for layers and effects -Fixed a bunch of eval functions -Font names can now contain anything except \ or } -Fix parameter order for $eval(round) 3.2.5 -Script parser should handle parenthesis better now. -Made $eval play nicer with decimals -(hopefully) fixed one parameter functions for $eval -$eval should bail and return String.Empty if it can't make sense of the data it's given -Added sqrt() to $eval (or you can still do ^0.5) -Fixed =/== in $evallogic/$iif -Strings in $evallogic/$iif no longer are expected to be in quotes 3.2.4 -Fixed <, <=, >, >= 3.2.3 -Fixed a few bugs with writing XML Project files -Fixed a bug when loading an XML project file that options would become confused between filters with multiple instances -Fixed a couple of bugs that rendered effect conditions pretty much useless -%layernum% and %layernumlps% now index from 1, not 0 -Pressing enter in the condition dialog box will click OK automatically 3.2.2 -The selected line information now properly moves when the form is resized. 3.2.1 -You can now load files (except effects files) through the command line (do "Open With" in Explorer) 3.2.0 -Karaoke effects generator can now allow you to edit the actual text for each syllable by setting "don't add the syllable text itself" in Layer Conditions+Options and using %text%. -Length-based \k / \K fixed again 3.1.0 -Select/Deselect Line Range now accept the last line number (IE if you have a 10 line file, 1-10 works now) -Slight optimization to how effects are created -Blur now only has two types: true blur and glow. However, it is more powerful than before. See the readme for more. -Blur no longer adds an empty line at the end -Exponential blur no longer disregards BlurStart for the center line. -Gradient now accepts a parameter called mirror. See the readme, but know that leaving it at 100 (%) will act the same as it used to. -Added $listindex, $listindexwrap, $listindexlast functions 3.0.3 (3.0.2019.28843) -Adding the same effect multiple times no longer mixes up the options between them. -Fixed length-based \k / \K 3.0.2 (3.0.2017.31380) -Offset in gradient maker now only affects the second X,Y pair in \clip 3.0.1 (3.0.2017.27737) -Detecting unclosed parenthesis/brackets at the end of the line now works. 3.0 (3.0.2017.5108) -Added $len, $left, $mid, $right -Slight optimizations in $iif -Added select/deselect line range to list menu. If you don't know the line numbers, click on the lines and use the go to line option and it'll show the current line. -Made go to line show the selected line number by default and added a label to show this as well -Optimizations to shifting and length based \k-\K -Fixed strip SSA -Fixed linear glow type blur accuracy -Error checker will now report unclosed ampersands in \alpha, \2c, \2a, \3c, \3a, \4c, \4a -Error checker will now report lowercase hex markers in \alpha 3.0 beta 6 (3.0.1975.5261) -Fixed shifting if your file is 10 hours or more -Fixed font check sometimes adding fonts more than once -Workaround for looking for vertical fonts (@fonts). It will just omit the @. It doesn't check if the font is actually capable of being vertical. -Added ability to search for fonts that aren't installed in a directory -Saving as UTF-8 fixed 3.0 beta 5 (3.0.1958.3274) -Fixed shifting cutting off part of the line in many cases. 3.0 beta 4 -Made form resizable -Made default (and minimum) form width 1024 for those people using 1024x768 -Fixed logarithmic glow blur alpha values -Fixed logarithmic and exponential gradient values when using a start color > 0 -Added font checker. Make good use of it. I know I will. 3.0 beta 3 -Fixed some menu options that weren't doing anything -Double clicking on a line in error checking now takes you to the line in question. Also added a couple of checks for style lines. -Added a layered blur option. -Added option to do logarithmic and exponential gradients. -Removed messagebox popping up with $iif -Added some more error checks for various functions (not talking about the error checker, but when you enter invalid parameters to functions) 3.0 beta 2 (3.0.1948.40271) -Also check for colors/alpha with lowercase hex codes (including the H) and also where there is not a trailing ampersand -Scale PlayResX and PlayResY too -Fixed eval -Added the "list" menu with some useful list functions -Performance increases in scripting/eval/evallogic. Thanks to DeathWolf for helping with this. -Fixed effect conditions 3.0 beta 1 (3.0.1948.26940) -Complete rewrite of application using C# 1.1, so you now need .NET to run it. Speed increases and GUI improvements result. -Variables have changed formats. See readme. -Scripting language is much different. See readme. -Project files and effects list files both use XML now. They are not backwards compatible. -Program supports basically all normal encodings, including UTF-16 (Unicode) that previous versions didn't. -Gradient maker can do \1c, \2c, \3c, \4c (user selectable) and can handle RGBA (in ARGB order) and decimal input -Resolution scaling now scales a lot more stuff. See readme. --Old versions-- 2.0.161 -Even bigger speedup -Completely rewrote effects procedure, kept the old one as it may be buggy, as usual -Made after 3.0 for those looking to avoid .Net (bad choice though) 2.0.158 -HUGE speedup -Will no longer affect non-karaoke dialog lines -Probably buggy -Made after 3.0 for those looking to avoid .Net (bad choice though) 2.0.157 -More bugfixes and speedups 2.0.154 -More bugfixes -Layer-per-syllable and fixed layer modes may be combined -New variables dealing with layers: $layernumtot$, $layernumlps$, $layernumlpstot$. If you have a "legacy" layer-per-syllable file, open the PSSA in Notepad and add PerSyllable=True. When using $layernum$ for layer-per-syllable, you must now use $layernumlps$. 1.6.153 -Fixed several bugs introduced in the last release -More speedups -Added $style$ variable (see readme) -Added ability to resize the program 1.5.152 -Fixed $iif with more than one comparison -Some other random bugfixes -There should be a minor speedup all around, but I don't know if it'll be noticeable 1.5.151 -Added ability to insert a gradient into a file without replacing a line 1.5.150 -A small bugfix in the gradient maker. Not sure if it even affected anything. 1.5.149 -Added some more to gradient maker -New HTML readme 1.5.146 -Added a bunch of stuff to gradient maker, such as copying to/from the SSA file and automatically adding text before and after the line. -Gradient maker no longer adds 1 extra line 1.4.145 -Another fix 1.4.144 -Fixed a gradient maker problem having to do with some parts of it being unfinished and disabled. 1.4.143 -More gradient maker work -Added $randlist 1.3.142 -Started to implement a gradient maker. It's not done and what is done is experimental. 1.2.141 -New version scheme, actually using minor (and eventually major) version numbers instead of just build numbers. -Added ability to change font in Listbox, including encoding. 1.1.140 -Fixed strip SSA, it should no longer strip numbers after \kf. 1.1.139 -Added: \k or \K depending on the length of the syllable -Fixed a little big with scaling where it would try to work on lines it shouldn't be (though it shouldn't have messed anything up) 1.1.138 -Added: SSA Resolution Scaling. Use at your own risk. -Removed: Old load/save projects -Removed: Old add effects procedure. 1.1.137 -Fixed: Shifting now correctly abides the lines being checked/unchecked 1.1.136 -Some minor interface tweaks -Added 'Move Down' for effects 1.1.135 -Restructured/cleaned up the code for adding karaoke effects. The old code will be left in for a little while until I can be sure there are no bugs in the new code. Please try the new code, but make sure you save before doing so. 1.1.134 -Fixed: Reparsing styles (made typo last build) 1.1.133 -Fixed: Read ASS Styles reparsing (also made slightly faster) 1.1.132 -Fixed: Read ASS Styles ([v4+ styles]) correctly. 1.1.131 -Fixed: Layer conditions and effect count were, in certain conditions, obtained from the wrong layer. This has been (hopefully) corrected. 1.1.130 -Fixed shifting... 1.1.129 -Fixed (I don't know): Shifting............. last time? Nah... 1.1.128 -Fixed (probably): Shifting... again. Should be accurate and not crash. 1.1.127 -Fixed (maybe): Shifting should be more accurate. 1.1.126 -Fixed: Effect condition checkboxes now correctly show as checked/unchecked when the condition is active/inactive as opposed to always being checked. -Fixed: Layer condition checkboxes now correctly show as checked/unchecked when the condition is active/inactive as opposed to always being checked. -Fixed: Effect conditions should no longer crash when loading a project. -Fixed: Layer conditions should now correctly load as layer conditions instead of effect conditions when loading a project. 1.1.125 -Added: $lastkaranzkstart$ -Fixed: Trying to move/copy an effect when there are no effects no longer creates a blank effect. 1.1.124 -Fixed effects list not being correctly loaded if you open a SSA/ASS/PSSA from the command line. 1.1.123 -Added ability to load SSA/ASS and PSSA (project files) from command line. You can now associate SSATool with SSA, ASS and/or PSSA files and it will open them. 1.1.122 -Effects can now use variables in the code line and not just the options lines. If you don't know what this means, don't worry about it. 1.1.121 -Forgot to comment out some code before hitting compile in last version that made load project crash. Fixed. -Added script tracing in the help tab... Every call to the script parser adds a line to the listbox. It will be at least 2 lines per script call. 1.1.120 -Fixed bug in $calc where a negative as the first number would not be recognized. -Fixed: Trying to delete a layer when there are no layers no longer crashes. -Fixed: Trying to delete an effect condition when there are no effect conditions no longer crashes. -Fixes to load project 1.1.119 -Fixed: Shifting by difference now works in both directions. -Fixed: Shifting bug introduced last version for times w/o decimals hopefully fixed. -Improvement: Times are now stored as double precision instead of single precision. 1.1.118 -Fixed: Trying to save in various situations as opposed to save as no longer results in a crash -Fixed: $rand no longer returns 0 or gives type mismatch crashes -Fixed: Trying to move an effect up when there is no effect to move up no longer results in a crash -Fixed: Copying or moving an effect to another layer now includes the conditons. -Fixed: Shifting times should no longer mess up if a time has a decimal >= .995 (which was rounded as 1.0 before, screwing things up) 1.1.117 -Fixed: Scripting should now properly support recursion. 1.1.116 -Fixed bug where closing the program did not unload it from memory. -Fixed select/deselect all styles. 1.1.115 -Added script functions: and, nand, or, nor, not, xor -Added operator info to readme -Added script testing/debugging in the help tab. This is mostly for me, but you may test your own logic on it if you like. 1.1.114 -Fix stupid typo in new load project. Effects should correctly load now... 1.1.113 -Fixed new project format to actually attempt to load the SSA file itself -Added a progress popup w/ cancel option for karaoke effects -Added list of variables to readme 1.1.112 -New project format. Please only use the old format if you find bugs in the new one. -Added time shifting by difference. 1.1.111 -Make multicharacter comparisons (!=, <>, etc) work correctly -Fixed saving a ssa file without the extension causing a crash. Really this time. 1.1.110 -Changed to common dialog for open/save -Added version number to form title -Minor code cleanup, slightly smaller file 1.1.109 -Removed preview in the open box because it was causing problems for some computers. -Fixed saving a ssa file without the extension causing a crash. -Added remove duplicate dialog lines option-Useful for when stripping a multilayer SSA leaves you with duplicate lines. -Added tooltips for a few things. 1.1.108 -Minor tweaks in open/save windows -Fixed major multilayering bug introduced in build 105. 1.1.107 -Fix (allow) removal of effect conditions. 1.1.106 -Fix checkmarks in layer conditions tab. 1.1.105 -Remove limit of 100 layers -Fixed condition checking -Saving/loading project now also saves conditions. -Added "layer per syllable" mode -Added ability to not add layers to the output if the conditions are not met (as opposed to adding the line unchanged) -Added "Invert Line Selection" for the SSA list. 1.1.104 -Changed name to SSATool. -Changed the UI around. -Fixed: $iif should now work correctly when comparing numbers, as opposed to comparing them as strings -Added ability to define custom conditions specifying when each layer and each filter are used. -Added variable $karanumtot$ to tell how many syllables are on the line. 1.0.103 -Added ability to effect only certain lines. -Added option to shift only start/end times. 1.0.102 -Changed format of effects file and project files to get around some delimiting issues and to make more readable if you open them in a text editor. -Changed extension of project file to .pssa to get around a VB quirk (*.aas would also return .aasp files) -Added scripting functions: bound, round, int, sin, cos, tan, log, exp, abs -Calc now supports parenthesis and uses the order of operations instead of left-to-right processing. -Fixed floor behavior 1.0.101 -Made copy/move to layer work again. -Added scripting functions: ceil, floor. math is now a synonym for calc. 1.0.100 -Implemented simple inline scripting. Supported functions: iif, rand, randf (floating), calc (math) -Added variable $layernum$ 1.0.99 -Fixed bug with enabling/disabling filters -Implemented save/load project, does not save layer conditions yet -Fixed saving effects list -Speedups 1.0.98 -Finished implementing the effects editor. 1.0.97 -The default style may now be effected. SSA by default calls Default *Default in your lines, which was screwing up the comparison. -Time shifting now correctly rounds decimals insdtead of giving you several numbers as an exponential. -Stripping a SSA will now copy lines which have unselected styles instead of leaving them out.