At the very beginning (in the summer of 2008), I wrote karaoke FXs all by hand, which was bloody complicated (amaXsora taught me how to timing ASS files and create some simple effects). After a few months' study of writing ASS by means of programming with the help of scf2 and small, I then wrote a very simple python module (in the autumn) which could help me create more awesome karaoke FXs, however it was a little dull and I still had to do many tasks manually. So I called it semi-automatic ASS FX generator (which was also named milkyjing.pyc v0.1, rather than calling it a generator, maybe we'd better call it a helper). Although I could create better FXs using that tool, it seemed that actually I spent more time on doing something very rigid. This situation didn't improve until I met 卜卜猪 the guy who told me the mind of fully automation. As soon as I got that idea, I continued improving my little python module resulting in the NOT very well-known milkyjing.pyc (I called this one fully-automatic ASS FX generator, I remembered it was winter that time), besides me it was also used by Soleilの艾. I believed milkyjing.pyc could be used by anyone who had somebasic knowledge of programming and a great love of karaoke FX. But I knew there were many karaoke FXers wanted to create some complex yet awesome effects such as particle effects including pixelate text effects etc, which were all no easy tasks. For some of them, to learn programming (or, say, to learn how to use helpers such as milkyjing.pyc or some other similar ones, like 7*3's pawaa_xd.pyc, small's small_code.pyc etc, or even the popular Aegisub automation, Lua, overLua etc.) was also a hard work. So I decided to develop a tool with GUI for creating karaoke FXs with only simple configurations so that users who might not have the knowledge of programming or even a whole understanding of ASS could still use it to generate cool FXs. Plausibly, there were two basic requirements:
1. It must be easy to use
2. It must be flexible and extensible (i.e. many different effects could be generated from it).
With these in mind I started the TCSub project immediately (in the late March of 2009)...
Part Two
This part will be relatively briefer, since I couldn't remember the events clearly due to poor documentation.
At first I planned to compile all the already made FX templates into the only one GUI. This could bring great simplicity for the users, as their task was no more than setting the style for the ASS and making some simple configurations. But the flexibility was poor, since all the effects were compiled, hence the kinds of effects were very limited, moreover, it was never easy to write many built-in effects, especially in C/C++. Anyway, I got to the first milestone TCSub_ver.0.5.7.3_Full (late April of 2009). But it was no more than a Demo.
Later, I found a way to use python in C/C++ and vice versa (such technique is called scripting). So I decided to add python compatibility to TCSub, and achieved the only one public distributed version of TCSub v1.0 (in the November). It still contained some built-in FXs written in C/C++. However its practical applicability required the basic knowledge of programming with python. And users could write their own FX script through python interface, working alone or together with build-in ones.
Gradually, I found it was almost useless to have compiled built-in FXs, and should better use 'built-in' python scripts instead (the reason was that it was much easier to write FX scripts by python rather than C/C++, yet still having the same effect and gaining much more flexibility). With some updates, the final version (not functionally, but terminated) came out, TCSub_1.9.1.8 (early March of 2010). I also developed a brand new file format for storing karaoke FX. It was called TCS. At that time, I just played with it myself, and left it undocumented for it being far away from practical use.
Part Three
I stopped working on the project for months, and did not restart until the beginning of summer holiday. I found that I coded more on the GUI than on the core modules. This made me frustrated, and I had to admit it was inefficient to build a GUI using WIN32 and C/C++ programming. So I divided the core modules together with a console user interface from the old TCSub project and named the new one Teco, which was an open source project whose most modules were licensed under GPL v2. I then worked on Teco continuously, until the last usable version of tcx came out. Though the Teco project was no longer maintained, you could still check out the legacy code and try tcx_demo (late September of 2010) with some examples.
Note
1. The name of TCSub came after a fansub I once organized, its full name was Ternary Color Fansub.
2. In the later works, TC will always be short for Ternary Color.
Acknowledgement
小逆, 琉香, 泪烬缘散, saiyaku
Special Thanks
MeteorX
p.s. Thanks to all the nice guys & girls I mentioned above, you really helped me a lot :-)