Why call it <3?
Because it is lovable.
Seriously, why call it <3?
But won't the .<3 file extension cause parsing problems?
It doesn't on my computer. If it does on yours, you're probably running Windows. There are very simple ways to fix that small bug that many machines are plagued with. Google "Switching to Mac" or "Switching to Linux".
Granted, to get it working in href tags and such, you need to phrase it ".(ampersand)lt;3", but that's a small price to pay for such an awesome file extension.
Oh come on, that's a whackjob filename and you know it!
That wasn't a question
Why can't you get it through your head that the file extension sucks?
Fine. The file extension is .LT3. But NOT because .<3 sucks. It's because MICROSOFT'S file system JUST WON'T SUPPORT IT.
What does LT3 stand for?
Less than 3.
So what does this <3 thing do anyway?
It tells your browser to make a bunch of ChucK calls once certain elements are loaded. It does this in a stylesheet-esque manner.
What the ChucK?
This should shed light on things.
How does <3 make these calls?
Once implemented correctly into a browser, <3 code will be parsed and the appropriate calls will be made by the browser's ChucK plugin.
Where are the calls listed?
In a <3 "beat" document that is linked to an HTML file, much like a stylesheet.
You had your chance to ask questions about how I name things in the last section.
What is a beat?
A beat consists of a series of hearts, each corresponding to either a CSS/HTML element or a method. Hearts often have properties, which are nested within them as other hearts. Within each heart, there is usually a method call.
Why so many heart names?
They mean nothing. They're purely for semantic disambiguation purposes...sometimes. A heart is a heart is a heart.
What is a method call?
A method call is essentially an "execute this action" call.
A method is called with the '^' character because it is sending the method "up" the method hierarchy in <3.
What's this hierarchy about?
Even though it LOOKS like you're putting lower-level base methods inside of higher level ones (i.e. beep is in the tick, which is in a custom heart, which is in body), but it's actually the opposite. Body is about as low as you can get in the hierarchy.
At the top is the script method. This is the final layer between <3 and ChucK. It tells the browser the location of the script it needs to call, as well as the values it needs to send to that script. Below that are all the base methods, like beep, buzz, etc.