Download for Windows Download for Linux Download for FreeBSD Download for Mac Manual Wiki Forum IRC Trac

Monday, December 16, 2013

3.1.0 beta

There are still some issues to sort out, but 3.1 is largely complete so I thought it'd be good to release a beta version for people to play with. If you encounter crashes or other bugs, please report them at I cannot fix bugs which I am not aware of. If you have comments or complaints about changes, post them on the forums.

Barring major issues, I hope to release the final version of 3.1.0 in two weeks or so.

For a full list of changes see the changelog. Some of the highlights are:

Edit box improvements


edit box screenshot
One of the common complaints about the removal of committing changes in the 3.0 release is that when editing subtitles or translating subtitles into another language, it's often useful to be able to see the original version of the line as you work. 3.1 addresses this by adding an option to show the text of the line when you first selected it in addition to the current text of the line, as shown above.

There is now a basic character counter for subtitles. This displays the number of characters on the longest line of the currently selected subtitle (treating only \N as line breaks), and changes the background color if the customizable maximum is exceeded.

The styling buttons finally have hotkeys, and split line at cursor can have a hotkey assigned.



Case-insensitive searching now works correctly with non-latin alphabets, such as Greek and Cyrillic.

The spellchecker now does a much better job of splitting words at the right places rather than assuming that all languages use English's word-splitting rules.

The main edit box now supports dead keys on OS X (but sadly still does not support IMEs).



Unfortunately, sometimes Aegisub crashes when it's been a while since you last saved. Aegisub has always had a built-in autosave, but the place it autosaves files to is not very visible, and reopening the original file could result in the autosave with all of your work getting overwritten. To solve this, Aegisub now has a convenient way to open autosaved files from the UI (File -> Open Autosaved File...), and it keeps older copies of your files around for a while.



Scripts must once again be UTF-8. Trying to support scripts in arbitrary encodings caused some problems and was a bad idea in general.

MoonScript is now natively supported, and some of Aegisub's included libraries are now written in it.

Error reporting when running Automation scripts has been improved. The log window is much larger so that it's actually somewhat readable, and a stack trace is printed when errors occur.

Button IDs can be set for Automation dialogs, making it possible for buttons to be triggered on Esc/Enter

OCD Typesetter Things


Duplicate and Shift by 1 Frame has been replaced with splitting lines at the current video frame. This allows you to time a line to the full duration of a sign, then step through the video and on each frame which the sign changes, hit Ctrl-D to make the current line end on the previous frame and create a copy of it that starts on the current frame. For signs which do not change on every frame, this cuts slightly cuts down on the number of keystrokes needed since you do not need to set the end times explicitly. If you prefer the old workflow, trying to split a line when the line isn't actually visible on the current frame will simply make a duplicate of the line visible only on the current frame, which is a slightly more general version of the old behavior.

Holding alt now preserves the aspect ratio when adjusting the scale with the visual tool, and the vector clip tool now supports box selection of control points. The X/Y rotation's grid is now less uselessly small.

The video colormatrix tag is now actually read from files, so passing files between people with different settings for Force BT.601 no longer breaks horribly. Note that Force BT.601 will switch to being off by default in a future version (once most people have started using versions of Aegisub with this fix).


Saturday, June 29, 2013

Aegisub 3.0.3 Released

Mostly just some assorted bug fixes, a new UI translation (Dutch), and updates to the Arabic and
Finnish translations. As usual the changelog can be found at

This release is the first one in a while to have an official Linux binary, since Debian still doesn't package any versions of wxWidgets released in the last two years. It's somewhat experimental, but should work on all relatively recent Debian-based Linux distributions (Ubuntu 12.04 and Debian Wheezy being the oldest versions I've tested).


Monday, October 8, 2012

Aegisub 3.0.1 Released

This is just a quick maintenance release to package up some updates to the translations which were too late for 3.0.0 and fix some easy-to-fix bugs that were reported after 3.0.0 was released. See the changelog for more details.


Monday, October 1, 2012

Aegisub 3.0.0 Released

Back in 2009, it was becoming increasingly clear that Aegisub's code base was becoming an unmaintainable mess, and so following the release of 2.1.7 development was split into two branches: 2.1.8 was to be a minor bug fix release, while 2.2.0 would Fix All The Problems. This, of course, turned out to be wildly overambitious. 2.2.0 ended up involving rewriting substantial portions of the program, and was eventually renamed 3.0.0 (after briefly being 2.5.0).

As you might expect from a version that took slightly over three years to release and has ten times as many commits as any previous version, a bunch of things have changed. Some of the highlights are:

  • The audio display has been completely rewritten and is quite different (and hopefully better).
  • Changes in the edit box no longer have to be committed and are instead applied immediately (see this forum post I wrote if this is annoying you)
  • Seeking the video no longer blocks the UI while the video is decoding, making seeking backwards much more pleasant.
  • The visual typesetting tools support modifying multiple lines at a time.
  • The fonts collector should now always copy exactly the fonts required in all cases, and warns about cases where the fonts will probably not work as desired.
  • Libass and xy-VSFilter are included in the Windows version.
  • The preferences and hotkeys systems have been rewritten. Hotkey customization is now more flexible, and other than the UI language changing options now never requires a restart.
  • The OS X version is maybe sort of usable (or at least not quite as hideous).
This is but a small fraction of the many changes; see the very long changelog for more details.

UI Translations

Many of the UI translations are maintained by people which we do not have any reliable or consistent communication with, and so historically UI translation updates have been a significant source of delays for releases. For 3.0.0 we instead did not wait for all of the translations to be completed, and will instead release regular updates (perhaps biweekly) with bug fixes and translation updates.

Languages fully updated

  • Basque
  • French
  • German
  • Indonesian
  • Italian
  • Portuguese
  • Serbian
  • Spanish

Languages whose translator we're in contact with, but did not complete the translation update in time

  • Greek
  • Japanese
  • Polish
  • Russian

Languages whose maintainers we were unable to contact

  • Catalan
  • Chinese
  • Czech
  • Farsi
  • Finnish
  • Hungarian
  • Korean
  • Vietnamese
If you or someone you know is willing to update the translation for one of these languages, please get in touch.


Sunday, February 5, 2012

A bit of statistics

As you may know, we have an automatic update checker in Aegisub, you may have noticed it telling you about the 2.1.9 release yesterday.

When we check for updates, we also send a little bit of anonymous system information back, to get an idea of what kind of systems Aegisub is being used on. This allows us to make some basic statistics. Here's a few facts:

In the past 35 hours, about 20,000 checks for updates have been made, in other words, Aegisub gets started more than 550 times an hour, or 13,500 times a day, worldwide. Of course, this only counts those who have automatic update checking enabled.

Those 20,000 checks have originated from slightly under 10,000 unique IP addresses, so the users covered seem to start Aegisub about 1.5 times a day.

Of those 10,000 users covered (we'll assume one IP address is one user), just below 2000 are running 2.1.9 now. There are still about 7500 2.1.8 users checked in, while 325 users are still stuck on 2.1.7... if you are one of those please tell why so we can fix the problem you have with more recent versions!

9700 users are on some Windows version, just below 100 on Mac OS X, and just below 70 on a Linux system. Sorry, with less than 2% of users on non-Windows systems those simply won't get as much attention.

More than 6500 users are on Windows 7, that's pretty cool. 2200 on Windows XP, 600 on Vista, almost 350 on some version Aegisub doesn't recognise (it could be Windows 8 Developer Preview, or maybe Wine), and then there's a few on 2003 Server, and two lone Windows 2000 users.

A little more than 1/3 of the IP addresses have checked in with a US English language operating system. We use the operating system language to gauge what language people prefer using their software in: The language you install your OS in is most likely the language you prefer to use all software in.
Next is Spanish, with a little above 10% of the language count, then follows Russian and French. After that there is a steeper drop and follows is the "long tail", of which the top is Brazilian Portuguese, Italian, German, Traditional Chinese, Simplified Chinese, Polish and Arabic (Saudi Arabia). The remaining languages all have less than 200 reports counted on them. If all Chinese languages were added together they would be on a fourth place, close behind Russian.

Lastly, if the last half million entries in the logs are counted, more than 165,000 unique IP addresses are seen, but then the time period covered (about 6 weeks) is probably too long for it to be reasonable to assume that one IP equals one user. However, it is likely that there are more than a hundred thousand Aegisub installations around the world. That's pretty good.


Aegisub 2.1.9 released


Sorry about the delays.


Q: Why all those delays?
A: First it was blamed on laziness. Then, FFmpegSource 2.17 was getting incredibly close to release and it was thought it was best to wait for those. Then when that happened an older problem resurfaced, not having sufficient access to the servers. All of this was finally resolved yesterday.

Q: So what's new?
A: Lots of stuff, although most of it is just bug fixes. See the changelog on the main site.

Q: I downloaded one of the release candidates, should I re-download?
A: The very last release candidate put up (on January 24th) was used for the actual release. If you got an earlier one and didn't update it, you should re-download it. ffms2.dll should be 6.209.024 bytes.

Q: Where are the Linux binaries
A: People actually used those? Those static binaries we offered for the 2.1.8 release were a bit of a hassle to use, and it turned out they weren't very flexible either. (In particular, because they were built with an older version of wxWidgets, all menu bars suddenly disappeared when they were run under Ubuntu with Unity.) If there is enough demand we might try to make some new ones available, but don't count on it. Ask your distribution's packagers to make some nice packages, it should be quite possible now.

Q: Why did you remove <insert language> dictionary from the installer?
A: Because it was taking up space that could be saved, there's no sense in increasing everyone's download by 10 MB for getting 20 dictionaries most people will use at most 1 or 2 of. Therefore all dictionaries but US English spell-checker were removed from the main installer. All of the dictionaries previously included in the main installer have been made available as separate installers, so you can get just those you need. (Also, the dictionaries rarely changed between Aegisub versions so there wasn't much reason for upgraders to re-download those every time.)

Q: So these are really the final builds, right? No more changes?
A: The Mac OS X package might get updated at some point! It was built rather long ago and there have surely been updates for various libraries (especially wxWidgets) since then, so it can use an update. When that happens, we will try to make sure the in-program update checker notices you about it.

Q: The Portable version should be a simple archive file, not an installer!
A: It is. The Portable version is a RAR self-extracting archive, so use whatever archiver program you prefer to extract it if you don't like the GUI supplied or need to pull out single files or such.

Q: Is this bug-free now?
A: Of course not, bug-free software is nearly impossible to make, but it's much better than previous versions. (In fact, we already have a couple of known bugs in 2.1.9.) A 2.1.10 version might happen at some point.

Q: I found a bug! How do I tell you guys about it?
A: Come talk to us on IRC. Or on the forum. Or post it directly on the bug-tracker, but if you do that and it's not actually a bug, or is already known, we will ridicule you.

Please remember that the blog comments are not for asking for general help or reporting problems, you will most likely get ignored if you do that.


Sunday, June 12, 2011

Call for translators

Version 2.1.9 is still getting closer to being ready for release, although there's still some actual issues needing, at the very least, testing.

However, there are some user interface languages we had in 2.1.8 or earlier versions, where the translator has gone missing, or just hasn't responded to my mail.

  • Catalan (Eduard)

  • Farsi (Meysam)

  • Korean (unknown)

  • Polish (Adam)

  • Vietnamese (Hung NGUYEN, OnEsChi)

  • Chinese, both Traditional and Simplified (mkboy2)

If you are one of the people listed here I would appreciate if you could contact me. If you otherwise speak one of these languages well and want to help, I would also love to hear so.

For most languages, there are just 5 strings in the main program that need translation. The exception to this is Polish, which has several more new strings.

Someone calling himself "Lingüista" also created a European Spanish translation recently, but did not leave any contact information. I think many people would appreciate being able to choose between a European Spanish and a Latin American Spanish translation. If you can help with a European Spanish translation you can see the work done currently on ticket 1220 on our Trac.

If you are interested in the process of translating Aegisub you can find more information on the Translations page on our Trac wiki.

Update: The Korean, Polish, Vietnamese and Chinese translations have been updated now.


Sunday, June 5, 2011

Not dead yet

Aegisub is still alive!

Recently I've seen people asking whether Aegisub is dead, or what is happening, so it's probably a good idea to write an update on it.

First: No, Aegisub is not dead. There is still at least a bit of life left. Version 2.1.9 is being prepared for release right now, and the main blocker for the Windows version right now is getting the user interface translations updated.

However, it's very true that activity has been especially low since the new year passed. None of us have had enough time to work on Aegisub, or school, work, or other projects have taken priority. Also there has been a change on the team, verm (Amar) has left, and this might also be part of the reason activity has dropped.

Missing translations: Unfortunately, we are missing contact to the translators for three languages, which might delay the 2.1.9 release. We are missing translators for Korean, Traditional Chinese and Simplified Chinese. If you think you can help with either of those languages, you can learn more about the translation process on our developer wiki: Translations

The current goal is to release 2.1.9 before the end of June, but as always, it's hard to make any promises.


Friday, February 19, 2010

The old and present: VSFilter

A short while ago, yet another fork of the VSFilter subtitle renderer has surfaced, introducing more extensions. Let it be clear immediately: Aegisub will not support any new extensions to the ASS subtitle format. We strongly urge you to not use any extensions, and as for why, please read on.

Let's start with the history of the ASS subtitle format: In 2004, Gabest made the Guliverkli project open source under the GPL license. This corresponds to the version 2.23 of VSFilter, or VobSub as it was better known as then. By this time, the ASS format was essentially already in its final form, no real extensions ever came up then. That's more than 5 years ago. Around 2006-2007, the Guliverkli project mostly died off, almost no more development happened. However, a few patches started to crop up. In 2008, we made a fork for Aegisub, and ended up applying those existing patches, fixing a bunch of bugs and, unfortunately, also adding some new features. Very soon the Guliverkli2 project is forked off the Guliverkli project, and includes patches for all parts of it. The Aegisub patches are ported to Guliverkli2. Some more development happens, the Aegisub fork is abandoned in favour of Guliverkli2. The MPC-HC (Media Player Classic Home Cinema) project pops up, as a second fork of Guliverkli. They import most all the Guliverkli2 patches too, as well as add many major new features to Media Player Classic. Now, a new, fourth fork of VSFilter appears, and it has several new extensions.

The important part of the history is in the very beginning: The ASS subtitle format was essentially finalised in 2004. In retrospect, it was wrong to ever extend it, because it creates fragmentation. We regularly receive support requests from people who can't make VirtualDub render their subtitles correctly. The reason? They use TextSub 2.23, the version from 2004, which is clearly still in distribution from some sites. This only shows that changing and extending a standard after it has been finalised is a really poor idea, because old software will always be around.

We, as developers of Aegisub, have discussed the situation with the MPC-HC developers and the main libass developer, and all agree that extending the ASS format, or supporting any new extensions, is a bad idea, for the reasons of fragmentation of standards and backwards compatibility, and we strongly recommend staying away from any extensions to the ASS format. This in fact also includes the extensions introduced in 2008, namely: \blur, \be with parameter over 1, \fax, \fay, \iclip, \xbord, \ybord, \xshad, \yshad. — None of those tags are compatible with the 2004 versions of VSFilter, and if you use them, you have a great risk that your subtitles will just look wrong for some viewers.

Another thing we agree on is that the ASS subtitle format is in general bad and has many problems, and that the only solution is to draft and implement a new subtitle format, using our experience with subtitles and knowledge of how other projects for new subtitle formats have failed, to make a good subtitle format that supports what subtitlers want and need, is usable and editable and is supported across all relevant platforms.

For now, we have just one request: Please do not use any extensions to the ASS subtitle format.


Saturday, January 30, 2010

Aegisub 2.1.8 released

It finally happened. About 6 weeks later than planned.
We have released Aegisub version 2.1.8.

Download it from

So what's new? Not a whole lot, actually. The major news would be that we now have versions for Mac OS X, Linux and other Unix systems. Do note that especially the Mac version is unstable and has several known problems, we consider it alpha quality software.

For the Windows version, the major highlights are:

  • Video should now work on almost all systems, the display code has been made much more robust.
  • The "Could not lock buffer for filling" audio bug has been fixed.
  • We have an Upgrade installer, which is much less to download. If you already have 2.1.7 release installed, this is the fastest way to get up-to-date. (But it only works on exactly 2.1.7 release. Not on older versions. Not on pre-release versions.)
  • The Portable version is now feature-complete, save for ASSDraw3, which we can't easily make portable. But you do get all dictionaries and translations in the portable versions now.
You can see everything in the full changelog.

Update: There is a mistake in the installer causing the Russian and Vietnamese program translations to be mixed up. We have uploaded updated installers for Windows. If you downloaded 2.1.8 early and have problems with Russian or Vietnamese, download the Upgrade installer, it can correct the problem.


Wednesday, January 6, 2010

Linking to Aegisub

Okay, since Aegisub has had a lot of different websites and lots of different URLs throughout the years, I thought it'd be time to clear up things a bit.

These are the correct addresses to link to:

Two things happened last night: We set up a new, temporary website at, this site will be replaced with a more complete website at a later point. When that happens, the purpose of this blog will change back to the original one: A developer blog, not a general news site.
Also, the old Mediawiki installation at was deleted last night, and set up to redirect to the new website. Please do not make direct links to addresses, they will become invalid at some point.

We will of course try to keep old URLs valid as long as possible, but please try to update all existing links you reasonably can.

The network problems previously mentioned in this post have been resolved.


Tuesday, October 27, 2009

Getting ready for 2.1.8

It's been a little over three months since we released 2.1.7 stable, and we are happy to announce that version 2.1.8 is getting closer every day.

After we released 2.1.7 we split Aegisub development into two main branches: The stable branch where we apply bugfixes for the last stable version, and the development trunk where we work on grand new features.

For all of you not using Windows we also have some good news. Aegisub 2.1.8 is well on the way to become the first version we can call stable on Linux, FreeBSD and other UNIX systems. There's only a few build-system issues remaining to fix. (Unfortunately it isn't as well for the Mac version, more on that later in this post.)

More on what you can expect to see in 2.1.8 after the jump.

The perhaps most important bug-fix in 2.1.8 for many people will be for the issue hitting everyone on Windows 7: "Could not lock buffer for filling" when trying to play audio. It turned out to be a really silly problem, but now it's fixed.

Another problem a lot of people have had is opening high-definition video, getting cryptic "Failed seeking video" errors. It turns out this is caused by some very limited OpenGL drivers shipped by Microsoft that can't handle texture images larger than 1024x1024 pixels. If you install a graphics driver directly from your chip manufacturer (usually NVidia, AMD ATI or Intel) you should get a better OpenGL driver, but it can be tricky and might not always be possible. We do have a solution for this in our unstable branch, and if it doesn't break anything else we should get it into the 2.1.8 release.

We also fixed some issues with slow seeking in MKV files and opening files with Unicode filenames in FFmpegSource2, and some bugs in Automation 4 Lua. Notably, the new "relayer" and "restyle" functions in Karaoke Templater didn't actually work, they have been fixed.

There's more minor problems most of you probably haven't bumped into, you can see an overview of everything on the bug tracker: Milestone 2.1.8 issues.

There are also some things we'd have loved to get in, but just aren't feasible. Some people have complained that the audio spectrum display is very slow, which is entirely true, but it turns out that fixing it causes an avalanche of other problems to pop up, and it's just such a major undertaking that it will never make it into the 2.1.x series of Aegisub. But you can be assured that there is a major rewrite of things under way, and it's very fast!

As mentioned at the beginning, it also seems like we won't be able to get a really stable version for Mac out in the 2.1.x line of Aegisub. The technical reason is that we use wxWidgets 2.8, which has some big problems on Mac in some core areas Aegisub depends on, and we can't switch Aegisub 2.1 to use wxWidgets 2.9 without causing a lot of new bugs to pop up. Our unstable development branch is using wxWidgets 2.9 however, and it's looking very good on Mac, but the changes required to support wxWidgets 2.9 in Aegisub were large enough that they aren't getting into Aegiub 2.1.


Tuesday, July 14, 2009

Aegisub 2.1.7 released


It's been almost a month since the 4 year anniversary and the promise of 2.1.7 "within a few days", but lots of stuff happened, people were travelling and otherwise not reachable. But I dare say it's not a bad thing, this version of Aegisub we are releasing now is certainly more polished than what we could have managed four weeks ago.

So far, this release is just for Windows. Use the Download button above to get the new version. Release notes and more on what to expect after the break.

A lot of things have changed since version 2.1.6, and sure, it has also been a long time: More than half a year! Here's a summary of the more important changes.

Update: We now also have a complete changelog since 2.1.6 available, courtesy of TheFluff/rhx.

  • DirectSound audio player has been completely rewritten (again) - this should give much better stability of audio playback. Note that the old DirectSound player is still available, you can change to it in Options. If you're using Windows 7, the old one seems to be more reliable.

  • PCM WAV audio provider actually works again, and with files of any size. (No more crashing with files bigger than 256 MB.)

  • Tip of the Day has been removed.

  • Loads of changes to FFmpegSource2 (FFMS2) giving better support for almost everything, making it more stable and so on.

  • Lots of memory leaks have been fixed, Aegisub should use less memory now.

  • Bug fixes in many file format readers and writers. Loading and saving subtitles to foreign formats should be more reliable now. Problems with frame-based/SMPTE timecode-based formats fixed.

  • The Kanji Timer function has been almost completely rewritten, squashing all known bugs and giving a prettier GUI. The use is the same.

  • OpenGL errors in the video display are no longer fatal. You will get an error message, and video won't open if Aegisub doesn't support your graphics card/driver, but it shouldn't crash. See below for a workaround if video doesn't work for you.

  • Some additions to Karaoke Templater, you can now create loops with variable iteration counts (including infinite!) making a lot of effects more feasible.

  • The "Local configuration" option was removed from Options. If you want a "portable" version of Aegisub (as it was intended for making) we now have a separate download package for that. It also actually works as advertised now. See the download page for details.

  • An innumerable amount of other minor, cosmetic changes that just makes everyday use more convenient and smoother.

Read this if video doesn't work:

One of the most common problems with Aegisub is video mode not working with a wide range of graphics cards and graphics drivers, this especially seems to hit users of ATI/AMD graphics cards hard.

Until we can make our usage of OpenGL more robust (or make an alternative implementation of the video display in software and/or Direct3D) we have a workaround that involves forcing Aegisub to use a software OpenGL implementation instead of the one supplied by your graphics card driver.

Before you try this, first try updating your graphics card driver. Get the latest driver directly from the maker of your graphics chip (usually NVidia, ATI/AMD or Intel) if possible, otherwise look at the support site for your computer vendor.

Download MesaGL 7.4.2 for Windows — Unpack this archive to your Aegisub installation folder, next to the aegisub32.exe file. Aegisub should then use software rendering for the video display. It will be very slow/sluggish, but should work in all cases.

If you have any questions about Aegisub, first see our manual, it covers most of the program. Lots of common problems have also already been covered on the forum, try searching the forum, there's a good chance someone has had your problem before.


Wednesday, June 17, 2009

Four years of Aegisub

Today it's just about four years since Aegisub was first conceived.

It was on the 17th of June 2005 in a private channel on the ChatSociety IRC network. We were discussing the various problems with making advanced typesetting in ASS subtitles and how poor the tools generally were.

The original name was Visual SSA, and it was originally just intended to be a tool to assist in doing typesetting. Yes, the visual typesetting tools we only got implemented somewhat in the more recent versions was the original goal of the program. General-purpose subtitle editing wasn't it.

It wasn't many days into development before video was shown.

At that point, showing video was all it did. As things went, basic loading, editing and saving of subtitles was added soon, and the interface started looking a lot like the current versions, but still not quite.

The important part here is what's above the subtitle editing area: Where the audio box sits today is space for a toolbox. The intention was to add visual typesetting tools there.

Of course, that never happened, and audio took over that place instead. In fact, the goal turned towards making a replacement for the subtitling program Medusa, which was popular then. (A few people are still using it today!) This is where the name of Aegisub comes from: Aegis is the shield of Athena, upon which Medusa's head was put after she was slain by Perseus.

Development went on, features were added, slowly we got more testers and went towards a relatively stable version. On December 27 2005, version "1.00 beta" was released, just a little more than 6 months after the first idea.

Development continued with regular "beta" releases.

We had the notorious version 1.06 with the "movax bug" in the installer: The installation script had a typo in it, which caused it to, instead of adding Aegisub to Windows' Add/Remove Programs list, clear most of the data for the list. After it was discovered, 1.06a was quickly released fixing just that problem, though several people had already been hit by it.

It was first at version 1.07 we went open source. At this point, development still happened on a private SVN server with no public access, and all bug reports and feature requests were taken on the forum. The source for both 1.07, 1.08 and 1.09 was distributed as part of the installer package, there was still no public repository.

However, soon after 1.09, we moved to a new host for source code repository, which allowed us to open up the repository for anonymous read access. It was also around this time we got a real bug tracker. The 1.10 beta was the first version released under fully open development, that happened on August 7 2006.

If you compare the screenshots of 1.00 and 1.10, you'll see not much had changed. There's a large number of changes you first notice when you dive into the menus, of course, but compared to what has changed since then, it's just tiny.

After 1.10, the plan first was to release 1.11, and that should be done before the end of the year. First, things went pretty smooth, but then new huge features started slipping in, they weren't stable, and thus the release slipped. Shortly after the new year passed, we decided the changes were big enough that we'd now call it 2.00 instead.

Now, the rest is almost history, but not quite.

Visual typesetting finally got added, the thing Aegisub (then Visual SSA) was first intended for, and pre-release upon pre-release was put out. In the end we decided there were far too many versions called "2.00 pre-release" to make releasing "2.00 final" feasible without confusing everyone, so we instead decided 2.2.0 would be the first version of Aegisub labelled as "stable", and we would release 2.1.x versions until then.

2.1.6 was released on November 26, 2008, which is soon 7 months ago. The good news: 2.1.7 is almost ready and you can expect it within a few days, and version 2.2.0 should be less than a month away!

The installer for Aegisub 1.00 was 2.82 MB, the installer for Aegisub 2.1.7 on Windows will be close to 24 MB. We've come a long way since that day in June 2005.


Tuesday, February 10, 2009

Kumaji explained

Kumaji is an advanced subtitle rendering engine, in development.

At the time of writing this, Kumaji does not render any subtitles whatsoever and is in general in a very early stage.

There are several reasons I started the Kumaji project, I will try to cover them in this post.

The name

First what does "Kumaji" even mean? It's derived from Japanese where it would be written クマジ. If you reverse that, you get ジマク, "jimaku" (字幕), which means subtitles. Also, Kumaji can be understood as 熊字, "bear" + "writing", hence Kumaji has a bear for a mascot! (Lots of people have suggested using Pedobear, this is wrong, I don't want to have that association.)

"Kumaji" should be reasonably easy to pronounce for most people and as far as I know it doesn't have the potential to offend people, like "libass" might have. The name is also format-agnostic like the actual renderer will be.

The goals

The key goals are:

  1. Portable code without sacrificing compatibility

  2. Maintainable and hackable code

  3. Speed

  4. Flexibility

Portability is the first and foremost goal. All current subtitle renderers have major problems with this. Those that do compile and work on multiple platforms (libass and the abandoned asa) are strongly tied to details of text and font handling on UNIX-like systems, which means they fail on Windows and Mac platforms because those have much different ways of handling fonts which FontConfig doesn't wrap properly or over-complicates. The result is very sub-optimal. VSFilter depends on not just Win32 (and Wine doesn't implement everything it requires yet) as well as MFC and COM. Perian's subtitle rendrer is Objective-C and entirely dependant on Cocoa text API's. Kumaji will achieve portability by plugging in platform-specific code where appropriate. The motto would be doing the right thing on each platform, whatever the cost.

Maintainable and hackable code is important. It must be possible to jump into the code without having a great understanding of the entire system beforehand, and it must be possible to learn good techniques from reading the code. The code must be well-commented or self-explanatory all around. (Portions of the code with poor, little or no explanations should be treated as bugs and reported.) VSFilter is a prime example of how I do not want the code to end up.

Speed is obviously important, to a certain degree. Reasonable subtitle scripts should render in realtime so Kumaji can be used for softsubbing. This may mean writing some critical routines in multiple versions optimised for different systems, using SIMD intrinsics or hand-optimised assembly code. However, good algorithms and data structures still take priority over SIMD and assembly tricks.

Finally, Kumaji must be flexible. It should be possible to implement support for new subtitle formats without providing more than a parser for them. If a format requires special rendering support not present, it must be possible to add that without taking the entire system apart and jeopardising the previous goals. It should also be possible to use Kumaji as a framework to write custom special-purpose renderers. For example, one can imagine creating a Lua interface for Kumaji's internal functions and use that for scripting advanced karaoke effects.

Help wanted!

Currently, Kumaji is pretty much my own pet project, but I would really like to have some help. What's needed right now is data structure design. If you want to help I expect you to have some knowledge of digital typography, the intricacies of Unicode complex scripts and the Bidi algorithm, OpenType, as well as general data structure and algorithm design. Or you should be have or be able to take an interest in those topics and read lots and lots about them! (It's interesting stuff, really!)

Kumaji is being written in C++ using just the STL (no TR1 libraries, boost or otherwise) so if you want to help reviewing or writing code you should be familiar with that.

The project is being hosted at under the name kumaji.