Skip to content

Instantly share code, notes, and snippets.

@sydlawrence
Created June 20, 2011 23:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sydlawrence/1036846 to your computer and use it in GitHub Desktop.
Save sydlawrence/1036846 to your computer and use it in GitHub Desktop.
turntable.fm RAVE Public
(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(!g.colorInit){g.start=c(g.elem,e);g.end=b(g.end);g.colorInit=true}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery);
var anim_speed=200;function set_bpm(bpm){var ms=(1000*60/bpm);anim_speed=ms;}
var colors=['#f00','#ff0','#0f0','#0ff','#00f','#f0f'];var songboard_stage=0;var $songboard=$('#songboard');function animate_soundboard(){$songboard.animate({color:colors[songboard_stage]},anim_speed,function(){animate_soundboard();});songboard_stage++;if(songboard_stage==colors.length){songboard_stage=0;}}
var background_stage=0;var $body=$('body');function animate_background(){$body.animate({backgroundColor:colors[background_stage]},anim_speed,function(){animate_background();});background_stage++;if(background_stage==colors.length){background_stage=0;}}
function syd_animate(){animate_background();animate_soundboard();}
var echonest={};echonest.key="GPQCPTGUIZ43M2FSV";echonest.bpm=function(artist,title){artist=encodeURI(escape(artist));title=encodeURI(escape(title));var search_url="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22http%3A%2F%2Fdeveloper.echonest.com%2Fapi%2Fv4%2Fsong%2Fsearch%3Fapi_key%3DGPQCPTGUIZ43M2FSV%26format%3Djson%26results%3D1%26artist%3D"+artist+"%26title%3D"+title+"%22%20%20and%20itemPath%20%3D%20%22response.songs.id%22&format=json&callback=?";$.getJSON(search_url,function(data){if(data.query.count>0){song_id=data.query.results.id;var song_url="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22http%3A%2F%2Fdeveloper.echonest.com%2Fapi%2Fv4%2Fsong%2Fprofile%3Fapi_key%3DGPQCPTGUIZ43M2FSV%26format%3Djson%26bucket%3Daudio_summary%26id%3D"+song_id+"%22%20&format=json&callback=?";$.getJSON(song_url,function(data){if(data.query.results.response.songs.audio_summary){var summary=data.query.results.response.songs.audio_summary;var tempo=summary.tempo;set_bpm(tempo);syd_animate();}})}else{set_bpm(prompt("We can't find BPM for this song. What would you like to go with?"));syd_animate();}});}
var by_us=$('<div/>');by_us.html('<a href="http://twitter.com/sydlawrence" class="twitter-follow-button" data-button="grey" data-text-color="#FFFFFF" data-link-color="#00AEFF" data-show-count="false">Follow @twitter</a>');by_us.append('<a href="http://twitter.com/ukd1" class="twitter-follow-button" data-button="grey" data-text-color="#FFFFFF" data-link-color="#00AEFF" data-show-count="false">Follow @twitter</a>');by_us.append('<script src="http://platform.twitter.'+'com/widgets.js" type="text/javascript"></scr'+'ipt>');by_us.css('position','fixed').css('bottom',0).css('right',0);by_us.css('width',200).css('z-index',999999);$('body').append(by_us);echonest.update=function(){var artist=ROOMMANAGER.marquee_texts.songboard_artist;var title=ROOMMANAGER.marquee_texts.songboard_title;title=title.split(' - ');title=title[0];echonest.bpm(artist,title);}
echonest.update();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment