Discuss and get help for karaoke effect creation here


Unread postby jfs » Sat Jun 13, 2009 12:16 am

[size=larger]First look at the length of this post. There is a reason it's very long: Karaoke is very complicated.[/size]

Leaning to make good karaoke takes many years.

Making good karaoke takes both artistic talent and computer programming talent.

Be prepared to spend many weeks learning the tools.

There are no shortcuts.

Please understand the above before you continue reading.
If you'd rather have fun with your friends, and certainly don't spend hours upon hours in front of your computer reading things, trying out things, pulling our your hair, this is not for you.

If you have trouble understanding this because your English is poor, sorry, this probably isn't the best place for you to get help. However, remember that the only way to get better at a language is to use it.

On the question of "Where do I start leaning?":

To be frank, I don't think there is any good "path" to learning making good karaoke effects. It's really more of learning a lot of separate skills first, that are only somewhat related, and individually not really useful for creating karaoke, and then finally in a sudden flash of inspiration understand how to combine all those skills into making karaoke effects.

Yes, my opinion is that making karaoke effects is either something you "get" or not. Either you're one of those persons who "just get it" or you're not, and there isn't any good way of telling which category someone falls into.

It's about being able to combine various different tools in clever ways. For making ASS karaoke effects the "tools" would be:

1. Knowing the ins and outs of every single override tag and having a good feeling for how they work. Read the documentation on all the overrides over and over again and remember it all. Try them all out in practice and in all kinds of possible and impossible combinations to get a feeling for what works and what doesn't. There's pretty much an infinite number of combinations so it's obviously impossible to list every single thing you can do. This is why you need to not just know the technicalities of every tag, you need the imagination to think of ways to combine them.

2. Be proficient in programming. All advanced ASS effects are created using by writing a program (script) that transforms some simple timed input into complex effects. To some degree this also hooks back into point 1, knowing the override tags and how to combine them. The choice of actual programming language is irrelevant, any modern language should be useful for creating karaoke effects. There are some libraries/environments designed for creating karaoke effects (like Aegisub Automation with Lua) which are obviously more suited for working with/in, simply because they provide a framework so you can focus more on generating effects than eg. reading the input, but in the end they're just helps, not requirements, and anything can be used. (In fact I'd recommend trying to do karaoke without using a framework, or write a framework for yourself, since that gives a much better understanding of the mechanichs and eventually should lead to yourself becoming a better karaoker.)
By the way, this point refers to programming in general, as a concept, not just knowing one or two specific languages, but rather the ability to think of programs in an abstract way and learn languages on demand.

3. Have free time, lots of it. Any creative work takes time and effort. Of course it's possible to take shortcuts by using pre-written elements/elements and "just" combine those, but doing that also limits the possibilities and in the end, to create something original you will need lots of free time. Patience and curiosity to experiment also falls under this.

In the end, what I find the hardest myself, is getting a good idea. It's impossible to get anywhere without an initial idea of what you want to create.

There's generally two ways to get ideas.

First is to think of the tools you have available and want to use, then think of ideas you can implement using those tools, ie. adapt your ideas to your tools. I think this is often the faster way to get somewhere, since you limit the "idea space" a lot when limiting your tools. If you're pressed for time, this is a better choice.

The other is to let the imagination free and think of anything at all, and when you have a mental image of what you want to create, think of what tools could perhaps be used to implement that idea. This can be much harder, since there's no limit on the idea space, meaning it can be harder to decide on one single thing. Also, the tools required to implement an idea might not even really exist yet and you might need to create new ones. In the end you may need to adapt even "freeform" ideas to some tools to make them practically doable.

Most of the tools I have released (either as part of Aegisub or separately) are made as a result of an actual need. I originally made Aegisub Automation because I didn't have any tools for making karaoke at all. I had all kinds of ideas on how I would like to be able to generate ASS karaoke but didn't have the tools to be able to do it, the result was Automation. Using "clean" Auto3 was a hassle so I put even more of the tedious parts into the Karaskel. Then I wanted to create lots of different effects intermixed (my FLCL ED, for reference), but Karaskel didn't allow that in an easy way, so I added the "ool-fx" and "inline-fx" features. (In the end, ool-fx didn't survive into the Auto4 karaskel.) For a long time I wanted to do really crazy things and though of ways that could be done. Crazy things like my Gundam 00 karaokes. The result was OverLua.
Yes, pretty much all of it is a result of my more or less direct need, but I tried making things as generally useful as possible whenever I did something new.

In the end, it's not about the tools used, but how the final, rendered effect looks and feels, it's about the idea.

To get back to the original question, what you should learn next, my answer is "everything". You need to learn the technicalities of every tool first, then "find your red pill" and figure out how to combine things to make interesting effects.

1. Learn a lot of ASS tags and programming techniques
2. ? <- this is the hard part!

Breaking down the different concepts

There are many MANY different concepts involved in the process of making karaoke effects. It may be hard to separate them from each other, and telling which are more important than others, which are alternatives to each other, which do not work together, and so on.
Here's a short breakdown. Please be sure to read it all from beginning to end, reading and understanding it will help you not look stupid when asking your question.

ASS: Advanced SubStation Alpha, the subtitle format Aegisub works with. It has lots of advanced functions that can be abused to make quite complex visual effects. The ASS format itself is an abstract concept, it is not a software program, but merely an idea. The ASS format was not invented by Aegisub, it existed many years before Aegisub.
Override tag: Override tags are part of the ASS format, they give commands that control how text is displayed. There is a limited set of override tags which are all described in the Aegisub manual.
VSFilter: Also known as TextSub. As of writing this text, version 2.39e is the latest. If you use any earlier version, you will miss several advanced override tags that were added later. Older versions also have known bugs that can make them less useful.

Adobe AfterEffects or AFX: An advanced video processing program from Adobe. This is commercial software, you must pay to use it. It is used by many to make karaoke effects and similar, but it has nothing to do with Aegisub or the ASS format. Do not ask about it here.
OverLua: A complex video-manipulation plugin for Avisynth that uses Lua scripts to paint directly onto the video. Has an extremely steep learning curve. You can ask about it here, but make sure you really know what you are doing beforehand, if it sounds like you're fumbling in the dark, expect to be ignored or insulted. Not related to Aegisub, ASS or Automation.

Aegisub: Subtitle editing program, this is the official forum for it.
Aegisub Automation: The name of the scripting facilities in Aegisub. A way to add new functionality to the program by writing scripts in a variety of programming languages, mainly Lua.
Automation 4: The version of Automation that is in Aegisub 2. This is what you want to use.
Automation 3: What was in Aegisub 1.x, do not use this. It will disappear some day, and Automation 4 can do many more things.
Lua: A programming language. Written Lua, capital L, lowercase u and a. (Do not write LUA, that's wrong.) Lua was invented in 1993 and has been used almost everywhere, especially in modern computer games. For example, the user interface in World of Warcraft can be extended using Lua. This is to emphasize that Lua is not specific to Aegisub, and its use in Aegisub is only a very small corner of the world.
Automation 4 Lua: This is what Aegisub 2 has and what you will most likely be using since you are here: The Lua language embedded and extended with function specific to Aegisub, intended for modifying subtitles. Automation 4 Lua also comes with a couple of standard include files that simplify things a lot. All of this is documented in Aegisub's manual, please skim through it all before asking questions, your question might be answered there.

Karaoke Templater or Kara-templater: An Automation 4 Lua script that comes with Aegisub, meant for simplifying most karaoke-effect-making tasks. It can do many things, but not everything. Everything kara-templater can do, can also be done in other ways. There is no magic involved, everything you can make with kara-templater can also be made without kara-templater. Aegisub's manual has a lot of information on kara-templater which also includes a lot of examples. Do yourself a favour and skim through it to get an idea of the possibilities.
Template: A concept from kara-templater. A template is a regular line in an ASS file, that has been marked in a special way, and has a special meaning to kara-templater. It has no special meaning anywhere else.
Inline-variable or $variable: A special sequence that can appear in a kara-templater template. A dollar-sign followed by one of some special words will get replaced with an actual value, when the template is applied.
Code block: Another special sequence that can appear in a kara-templater template. A code block starts and ends with an exclamation mark, and between those two exclamation marks is a block of Lua code, which must be a valid expression in the formal grammar of the Lua language. There can't be exclamation marks in the Lua expression. The exclamation marks do not work like parentheses, grouping sub-expressions in Lua is done with real parentheses.
Code line: A special kind of template in kara-templater. This is an entire template line that, instead of making output lines in the generated output, runs some Lua code. A code line can have many Lua statements and can declare variables and functions. Code lines are not required for many basic effects, but being able to write Lua code and use code lines cleverly is the key to getting the full potential out of kara-templater.
Template modifier or just modifier: A word written in the Effect field of a template line, that alters the meaning of a template. A modifier can for example make a template only run when certain conditions are fulfilled, or run many times on one input syllable.

Did that seem like a lot of things? Don't take it easy yet, that's just the tip of the iceberg, the real complexity lies below: This list didn't actually teach anything that can be directly applied, it just teaches you how to mentally separate the concepts you will find on your journey.
Do not PM me asking for help with Aegisub, Automation, karaoke or anything like that, I won't reply.
Ask your questions in the public forums. Use the Search function, somebody probably asked the same question before.
All rights reserved to call you insults if you ask poorly thought out or redundant questions.
Experimenting is free and is a great way to learn things.
User avatar
Posts: 2994
Joined: Mon Dec 19, 2005 8:18 pm
Location: Denmark


Unread postby TheFluff » Sat Jun 13, 2009 7:38 am

tl;dr version: do not learn making karaoke
nobody wants karaoke

but more importantly:
Last edited by TheFluff on Sat Jun 13, 2009 7:43 am, edited 1 time in total.
User avatar
Posts: 162
Joined: Mon Dec 19, 2005 11:00 pm
Location: Basement

Return to Karaoke

Who is online

Users browsing this forum: No registered users and 4 guests