Aegisub 3.0.0 Changelog

Aegisub 3.0.0 features a major rewrite of much of Aegisub's core. There are two main user-visible changes:


Many things are much faster.

The main toolbar can be hidden.

The clipboard is not cleared on exit.

The mouse wheel scrolls the thing the mouse is over rather than the thing with keyboard focus.

Aegisub is now sort of usable on OS X.

Dragging and dropping audio or video files onto Aegisub no longer blocks the source of the drag while they're loading.

Added Euskara (Basque) translation.

Remove files from the MRU lists when they no longer exist (#717).

All of the toolbar icons have been replaced with new ones.


The audio display has been rewritten from scratch. As such, many minor details have changed.

The spectrum mode is higher quality and much faster.

The waveform mode shows the average value of the audio at each time in addition to the maximum. This can be disabled if it annoys you.

By default, left-click-drag sets the start of the line to clicked point and the end of the line to the dragged point, making it possible to time a line in a single click.

All selected lines are shown on the audio display.

The previous and next line can be shown in the audio display (in addition to previous or all) (#664) (#1386).

Adjacent pairs of lines with equal end/start times can be adjusted together similar to karaoke syllables by holding down Ctrl (#20).

Nonsensical line and karaoke syllable timings are no longer allowed.

The audio display jumps around less when the zoom is adjusted (#957).

The zoom/volume are saved across sessions.

Middle-click jumps the video to the clicked time.

24-bit and float audio are supported (#1292) (#1490).

Added an option to automatically load audio when opening video (#1134).

Added Shift-G to advance to next line and reset timing to default even if the next line is already timed (#946).

Spectrum mode is now the default (#943).

Spectrum mode now uses logarithmic scaling rather than linear, which usually better exposes speech (#944).

Enable the dummy audio provider in release builds (#1425).

Keypad-Enter hotkey works with things other than the edit box focused (#508)


The Karaoke split/join bar is hidden when not in Karaoke mode (#987).

Keyframe markers can be disabled in karaoke mode without disabling them for dialogue timing (#644).

Splitting and joining karaoke syllables preserves override tags and comments (#1190).

The karaoke split/join interface has been redesigned to require fewer clicks. Click in a place with no splits to add a split, or on a split to remove it.

The sum of the syllable durations must now equal the line duration.

Adjusting the syllable before the active syllable while the syllable is playing no longer extends playback (#886).


Removed Ruby and Perl automation engines since no one used them and they didn't work.

Removed auto3 since it's been deprecated for years and auto4 is much better.

Macros can now be hotkeyed. The command name for macros is "automation/lua/file-name-sans-extension/macro-name" (#517).

Added a few more stock macros (#120).

The clean tags macro no longer breaks \clip (#1450).

The automation manager dialog is modeless.

Multiple scripts can be loaded at once with the Add button in the manager dialog.

Lines appended to the end of the file are automatically put in the appropriate section.

Scripts do not have to be UTF-8 (but generally should be anyway). As a result, adding a BOM is now generally required if a file must be treated as UTF-8.

Macros which do not run to completion (either due to the user cancelling or an error occurring) do not make any changes to the file, so it is no longer necessary for complex scripts to build up a table of changes which are then applied in one shot.

An undo point is now automatically set at the end of the macro if the macro fails to do so, or makes changes after the last undo point.

The standard Lua module system is now supported.

The active line argument to the macro processing function actually exists now.

The macro processing function can now set the active line by returning a second value containing the row index to make active. The new active line must be one of the lines which the selection is being set to, or it will be ignored (#1435).

The validation function can now modify the help text displayed for the macro by returning a second value containing the new help text (#1413).

A third function can now be passed to register_macro. This function receives the same arguments as the validation function, and if it returns true a check mark is displayed next to the macro in the automation menu. This is probably not very useful yet.

Added several new functions to the aegisub global table.

Added bindings for the standard platform open/save file pickers.

Added clipboard module for accessing the system clipboard.

Added re module which exposes wxRegex's regular expression functionality, which is significantly more powerful than that built into Lua.

Fonts Collector

The fonts collector handles bold and italic (#659).

The fonts collector actually works rather than just copying a giant pile of possibly related fonts (#660).

Fonts with non-English names are collected (#1061).

Add the current subtitle's directory as a destination (#1059).

There is a warning if a font used does not contain all of the glyphs needed.

There is a warning if the user tries to use more fonts than will work on playback.

The dialog is modeless.

On platforms where symlinks don't require admin privileges, fonts can be symlinked rather than copied.

Fonts used by styles which are used by no lines are no longer copied (#660).


Hotkey support has been completely rewritten. Many more things can be hotkeyed.

Customized hotkeys are not automatically migrated to the new format and must be recustomized.

Hotkey assignment is now more flexible: any command can be assigned to any context rather than a limited subset of commands having global versions. For example, rather than having "Audio Play" and "Global Audio Play" commands, there is a single audio play command which is simply bound to different hotkeys for when the audio display has focus and when anything else has focus.


The preferences system and everything has been rewritten from scratch. A bunch of stuff works better now as a result.

Preferences from 2.1.x are not automatically migrated to the new system. No one ever got around to writing the migration. Sorry.

Linux specifc

Fix std::bad_alloc errors with the Alsa player (#1395).

Fix infinite loop in Alsa player (#1394).

Portaudio player has been rewritten and now works much better (#997).

Portaudio player supports choosing the output device.

UI translations which require a locale which is not available are hidden in the language list (#1508).

Using the English translation with a non-English locale is now possible (#1508).

User dictionaries are now always stored in ~/.aegisub/ so that they work with system dictionaries (#1475).

OS X specific

Fixed a bunch of crashes on startup (#1469).

Dialogs now stay on top of the main program window.

Add support for 10.7 fullscreen for the main program window and the detached video window.

Unicode actually works.

Toolbar icons are actually the right size and so no longer look terrible.

Sort of try to follow the Apple HIG where possible.

All sorts of things that did not work at all or crashed instantly now work.

More of the UI translations are supported.

Shift Times

Double-clicking a history entry loads the settings from that entry (#1427).

The dialog is now modeless.

Saving history works with unicode usernames (#1269).

Spell Checker

All words can be added to the user dictionary, rather than just words which fit in the language's character set.

Commented lines can be automatically skipped (#1428).

Re-add hyphen to the word separator list since removing it caused more problems than it solved (#1459).

Subtitle Formats

Saving subtitles as a non-Unicode character set which does not have all of the characters used in the subtitles now replaced bad characters with ? rather than failing silently (#837).

Added support for more non-Unicode character sets (#639) (#666) (#849) (#877).

Fix rounding errors when generating SMPTE timecodes.

Add support for EBU STL unformatted level 1 teletext.

SRT files with only formatting supported by SRT can be saved directly rather than having to be exported.

Fix several issues with SRT reading and writing.

Improve handling of invalid ASS files.

Add menu entry to open subtitles from the currently open video (#253).

Improve performance when opening subtitles from Matroska.

Fix loading of subtitles from Matroska files greater than 2 GB.

Subtitle Rendering

The Windows 32-bit builds now ship with three subtitle renderers: MPC-HC VSFilter (default), xy-VSfilter and libass. 64-bit builds include MPC-HC VSFilter and libass. Non-windows builds include libass only.

Fix some crashes on malformed files in VSFilter (#1485).

Style Manager/Editor

The style manager dialog (but not the style editor) is modeless.

Renaming an unused style doesn't prompt to update the uses of it.

Do a better job of selecting the right thing after styles are created, edited or deleted.

Fixed some memory leaks in the style editor.

Style names are now case-insensitive to match VSFilter (#777).

Subtitles Edit Box

Changes no longer need to be committed; anything done in the edit box is applied instantly.

Undo no longer does insane things when combined with changes made from the edit box (#586).

Undo no longer reverts changes to the filename from Save As (#1345).

The syntax highlighter better reflects how the line will actually be parsed for malformed lines.

Splitting lines leaves the old line selected rather than moving to the new one.

The color picker updates the color of the line immediately rather than waiting for the dialog to be closed.

Subtitles Grid

Much of the selection-related logic has been improved and made more consistent.

Fixed the "clicking near top/bottom of grid selects multiple lines" issue yet again (maybe for real this time) (#1041).

"Make time continuous" uses the next/previous line if only one line is selected (#822).

Concatenated lines are joined with spaces rather than \N.

Concatenating out-of-order lines sets the start and end time correctly.

Recombine Lines can be used on any number of lines at once rather than just pairs of lines to join.

Recombine Lines now handles more cases correctly (#1468).

Subtitle lines can be sorted by several fields rather than just the start time, and either all lines or only the selection can be sorted (#1457).

Noncontiguous groups of lines can be duplicated.

The scroll position and current line are restored when reopening a file, similar to the current video frame position (#1417).

Shift-scrollwheel scrolls the grid a page at a time (#1407).

Alt-Up/Alt-Down move all selected rows rather than just the active one.

Timing Post-Processor

Lead-in is applied before lead-out, so that it is used if there is not space for both.

Overlaps can be automatically removed when not adding lead-in/out.

Keyframe snapping is in milliseconds like everything else (#548).

Translation Assistant

Now modeless, making it much easier to watch relevant portions of the video.

Enable spellchecking and syntax highlighting in the edit box.


Seeking no longer blocks the UI while video decodes, making seeking multiple frames (especially backwards) far faster and more responsive.

Video zoom levels are no longer constrained to a limited range.

Setting the zoom via hotkeys or the dropdown with detached video works (#493).

The script resolution is automatically set to the resolution of the first video opened. Alternatively, a default script resolution can be set.

Prompting when the script resolution does not match the video resolution is once again enabled by default (#1138).

The display aspect ratio is set automatically when opening anamorphic video.

Support for loading timecodes and keyframes from Matroska when using the Avisynth video provider has been removed, as it was horribly broken (#939) (#1049).

Seeking the video while it's playing works.

Fewer things cause video playback to stop.

Default to decoding all videos as if they were BT.601 rather than their actual colorspace to match VSFilter's rendering.

Write the colorspace used to the subtitle file so that the above hack can go away sometime in the future.

Enable multithreaded video decoding via FFMS2 as it now actually works.

Add support for VP8, VC-1 and interlaced H264.

Fix some more OpenGL issues with bad drivers.

Fix some rounding errors in the VFR logic.

If there are multiple audio/video tracks FFMS2 asks which to use rather than only supporting the first (#905).

Visual typesetting tools

Multiple drag handles can be selected at once to move multiple lines at once, or to shift multiple control points of a clip mask. Ctrl-click adds or removes a handle to the selection; clicking on no handles clears the selection.

Holding Alt while double-clicking on the video in the Cross mode sets all selected lines rather than just the active line (#513).

Holding shift makes all visual tools apply only the greater of the X or Y change (#993).

Double-clicking in drag mode does the same thing as in the Cross mode.

The visual typesetting tools can be hidden when the mouse is not over the video, to make it easier to see small subtitles.

The visual tools are now always the same size regardless of zoom level (#966).

The subtools are in the main visual tool toolbar rather than their own mostly empty one (#1401).

The tools support subpixel precision.

Visual tools can be hotkeyed (#992).

Add support for the scale parameter of vector clips (#1415).