RFC: The Logotheminator Website Theme Song Specification
40Status of This Memo
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
Abstract
This document describes the context, syntax, and gizmonics of the Logotheminator, a standard for playing a website theme song that will enable users to totally rage their faces off.
1. Introduction
The year: 1863. The place: deep in the Kentucky woods. Union Army deserter Caleb Rutledge, seeking a hiding place for a cache of gold stolen from a Confederate supply train, stumbles upon a rough stone cabin. Here, blind old Ezekiel Nair and his granddaughter Rachel live as the Nairs always have, trapping pheasant and rabbit for their food. Rachel, though afraid, is drawn to the stranger, to reach out to him, cradle him, tend to his wounds, to make him stronger and seek the refuge of his strength in turn.
150 years later, Caleb and Rachel's great-great-grandsons Matt and Dave think it would be cool if websites all had theme songs.
2. Rise Of The Logotheminator
How it works is, like, you're on a computer, right? And you go to a website. And while you're on that website's homepage, you click the logo up at the top. Or wherever. It's usually at the top but some of these punks these days think you can just put shit wherever on a website like it's an issue of Raygun magazine or something. Eh, they'll learn.
Anyway, what happens is, you click on the logo and the website theme song starts playing. "Wait, theme song?" you ask. That's right. Under the Logotheminator regime, every website worth a damn will commission an original theme song in the tradition of every TV show where you can remember the song better than the show. Or they could license an existing song, but that's kind of the lame way to do it.
Then, while the song is playing, the logo could kind of vibrate and dance around to the music. That would just be the best.
Clicking on the logo from any other page in the site would simply take you back to the home page, like things are now. We're not totally trying to wreck everything here.
2a. The Name "Logotheminator"
More tech stuff should have names that end in "-inator".
3. Code Or Whatever
Here's where we insert a bunch of nonverbal gobbledygook so we look like we know what we're talking about.
First, you’ll want to put your theme song audio on the page. Since it’s 2014 you might as well use HTML5 audio and MP3s. You SHOULD set the tag’s preload element to none, unless you’re a greedy bastard that wants to waste a bunch of bandwidth, increase energy costs, and cause a global warming crisis the likes of which Al Gore couldn’t even imagine. Like so:
<audio id="theme-song" preload="none">
<source src="https://d3306cnzm6n89c.cloudfront.net/audio/meh-they-could-try-harder-6c706c71f275940fecc84b0ee68b36cc.mp3" type="audio/mpeg" />
</audio>
You SHOULD use whatever tricks you can to get your MP3 file size to something under 1MB. You don’t want your badass track to sound like total garbage, but try reducing the bitrate to 96kbps or using a VBR range between 100kbps - 150kbps. Do you really need stereo for a website theme song? Probably not, try mono instead. Oh, and remove the metadata. Especially the album art. Nobody’s gonna add this shit to their iTunes library.
Once your home page loads, you MUST detect if the browser supports HTML5 and can play MP3s. If so, you MUST provide an indication that you’ve just changed the logo from a link to an audio player by changing the cursor to something that looks like a play button. There’s not a lot of choices here (http://www.w3schools.com/cssref/tryit.asp?filename=trycss_cursor) so we went with “e-resize”.
$(document).ready(function() {
var themeSong = $('#theme-song')[0];
if (!!(themeSong && themeSong.canPlayType && themeSong.canPlayType('audio/mpeg;').replace(/no/, '’)) {
$('#header .logo').css('cursor', 'e-resize');
}
});
On click of the logo, you MUST begin playing the theme song. On the next click of the logo, you MUST pause the theme song. Obviously, if the browser doesn’t support HTML5 audio or MP3s then you should just do nothing and let the browser refresh the page or whatever.
$('#header .logo').on('click', function() {
var $this = $(this);
var themeSong = $('#theme-song')[0];
if (!!(themeSong && themeSong.canPlayType && themeSong.canPlayType('audio/mpeg;').replace(/no/, ''))) {
if (!themeSong.paused) {
themeSong.pause();
} else {
themeSong.play();
}
return false;
}
});
Like we said, we’re not totally trying to wreck everything here. If someone wants to really, really use your stupid logo on the home page to refresh the page, let 'em double-click.
$('#header .logo').on('dblclick', function() {
location.href = $(this).attr('href');
});
While the audio is playing you MUST give the user an indication by changing the cursor to a “progress” cursor. You MAY want to shake the logo a little bit to indicate that it’s really enjoying this track. We’d suggest the CSShake library (http://elrumordelaluz.github.io/csshake/).
$('#theme-song').on('playing', function() {
$('#header .logo').css('cursor', 'progress').addClass('shake shake-constant shake-little');
});
When the song is paused, set the cursor back (and stop the shaking logo if you were crazy enough to do that part).
$('#theme-song').on('pause', function() {
$('#header .logo').css('cursor', 'e-resize').removeClass('shake shake-constant');
});
And finally, when the track has ended you MUST reset everything so that the theme song can be played again.
$('#theme-song').on('ended', function() {
this.pause();
this.currentTime = 0;
});
You're Logotheminating and it feels so right!
4. Acknowledgements
This work would not be possible without those fantastic TV theme songs of the past. You know, like those ones that told a little story about what was happening on the show, so you wouldn't be lost if this was your first time seeing "Brady Bunch" or "The Fresh Prince of Bel-Air" or "Mystery Science Theater 3000" or "Welcome Back, Kotter"? We also like the more abstract lyrics that set the philosophical basis for the show, like "The Facts of Life" or "Family Ties" or "Full House". And don't forget the classic instrumental themes like "Taxi" and "Barney Miller" and "The Munsters". Maybe if websites had kick-ass theme songs, websites would be better. That's really all we're saying.
- 29 comments, 39 replies
- Comment
?
@Ryaneil That's their fancy way of telling you to click the "Meh" button up top (on the main page), to play their fancy new theme song. It's lol
@lichme I clicked meh and don't hear anything.
@k3nd0 It's the "Meh" logo at the top-left of the meh.com homepage.
@jsh139 Yeah, I clicked that. It doesn't do anything.
@k3nd0 Maybe your browser doesn't support it?
WTF
Very helpful. Now all I need is that small matter of acquiring a bad-ass theme song. I wonder if the Aquabats are busy......
Neat. Doesn't work on my HP Touchpad, but it does on my phone.
I speak code! Hooray!
I enjoy the dancing logo.
soooooo cooooooolllllllllll. nice job @shawn
Bad ass, @shawn. Your precious lil site is the coolest!
@medz wow, thanks
@shawn That got a chuckle. You're a good sport, sport.
Very nice, I shall obediently go and click the meh logo.
Ok I absolutely love the the dancing logo. Nothing meh about it unfortunately.... except that is literally meh.
Damn, that's some nice code! Works on Silk/Fire OS.
Great job @shawn.
Can you make the logo dance a bit more?
I'm not even going to pretend that I know code but I do know that clicking the logo and paying the TMBG theme song is rad! Thanks @shawn for making it happen. It shall from now on be the first thing I do when i visit the site.
Come Monday, I'd love to know the count of how many times that file was played. Really well done. Also, thank you for not being total dickbags and autoplaying the song.
@shawn Great job with the RFC! What's your favorite April Fool's RFC?
@dashcloud hard to beat the HTTP 418 RFC. At one point I had a little easter egg @ http://www.woot.com/errors/418.html but looks like Amazon took it down.
Awesome. Good stuff @shawn. I vote for using the dinosaur cursors from Windows 95.
@shawn
You could alternatively specify an image URL for the cursor property, and make an appropriately-sized "play" icon PNG. And you can switch between cursors using classes rather than inline CSS, but that's just being nitpicky. :]
And could we possibly get a non-mono pre-shrunken MP3 of the theme for the one or two crazy people who do want this in iTunes?
@CapitalQ I like the custom cursor idea. Is there a canonical play icon?
@shawn Is that a trick question? http://goo.gl/UTml0E
@CapitalQ that's what I mean. There's thousands of choices there. People get all crazy when it comes to icons http://daringfireball.net/linked/2014/11/05/matias-duarte-share-icon
@shawn Hahah, very true. I think because the play icon has so many variations, but it's still universally recognizable, it's really up to the application to decide what fits visually - sharp or round edges, etc. It would probably feel better as a cursor to have the icon standalone rather than in a circle, if anything. Whatever feels most "meh".
@CapitalQ i started playing around with custom cursors and it's a real pain. i thought this unicode character would work fine. i created a 32x32 px png of it (apparently custom cursors have to be that size) but it was rendered twice as big because idunno retina? also turns out you have to make it a .cur file for it to work in IE, even today.
@CapitalQ @shawn ... anyway, if you really want to play around with it here's the image files i made: and https://dl.dropboxusercontent.com/u/433424/rightwardsblacktriangle.cur
... although that cursor file doesn't have the "hot spot" defined, so i think it defaults to top left, which wouldn't actually be what we want for this cursor.
Since this is 2014 and we have advanced web standards, shouldn't it be Vorbis in audio/webm not MP3?
@opello I'd be behind that, or we could do Opus- yes, it's a speech codec mostly, but using a speech codec for music fits Meh nicely.
@opello OGG isn't support by IE or Safari. MP3 is supported by IE, Chrome, Firefox, Safari, and Opera.
If only web standards were actually standard.
@hallmike "The great thing about standards is that there are so many to choose from."
Things are getting a bit more standard eventually, but more confusing now: http://andreasgal.com/2014/11/16/vp8-and-h-264-to-both-become-mandatory-for-webrtc/
Am I seeing it right? The logo just vibrates in an eye-irritating manner, to me. I don't see dancing, I see a migraine trigger.
I do like the song though. sucker.
@Thumperchick that's mostly it, but it does spice it up around the 'meh' parts of the song.
Lol I think Rachel and most definitely Ezekiel would demand a bit more but... meh.
I forgot to add I have seen They Might Be Giants. Live. Awesome.
I like Big DOS and I can not lie......
@somf69 Team OS/2!!
This RFC fails to take into account people with hearing disabilities. You should have some alternate content in addition to the audio theme, perhaps a lyrics sheet with "to the tune of..." at the top.
Also, I am very disappointed that Meh has only adopted this draft on its homepage, with all the other logos on the site acting as links.
@MrGlass the spec addresses that -- "Clicking on the logo from any other page in the site would simply take you back to the home page, like things are now. We're not totally trying to wreck everything here."
@MrGlass Good point about the lyrical content. How would that work exactly?
@katylava Sorry, I missed that.
@shawn Hmm, since its 2014 and we have fancy javascript stuff now, maybe you could display one line of the text at a time and have a singalong cartoon style bouncing ball?
@MrGlass is that what you really want us to spend time on? reeeaaaallllyyy?
@katylava Well, I'd do it, but I'm a backend dev. I'm sure someone who has worked with CSS3 animations/transforms could whip that up fairly quickly.
@MrGlass bravo, worth trip back to thread.
@katylava Yes?
Why would a spec use jQuery?
@ardgedee why would a spec say: More tech stuff should have names that end in "-inator"?
@shawn Specifications that define new technologies are expected to include a section on terminology.
Excellent. Now all I need is a theme song for my website. Know any bands that might make one for me?
@parodymandotcom I hear there's a bloke called @parodymandotcom who can write a ditty. Not sure you could afford him though.
@SSteve Plus, I have it on good authority that @parodymandotcom is a real PITA who drinks all your beer.
While I enjoy the effect, it is really annoying to me because I always click that logo on websites to refresh the page, now I try to refresh the page and get startled with sound because my speakers were turned up from earlier.
@TaRDy added bonus.
@TaRDy double-click
@dave reading the post would have been too easy...I prefer the TL;DR then reply with a complaint method instead.
I just played the theme song/logo dance for my wife. She was greatly amused.
Also, did @snapster get some gratuitous Robin Goldwasser in his theme song?
It's meh!
@shawn One suggestion: the cursor change when moving over the logo doesn't seem to have high enough discoverability. Perhaps, at some reasonable interval, the logo could give a little jiggle the way it does during playback.
you have way to much time on your hands
What’s the deal here? No longer up to code?
@jhinra they sold out to big internet