diff options
author | liam4 <towerofnix@gmail.com> | 2017-05-30 15:18:14 +0000 |
---|---|---|
committer | liam4 <towerofnix@gmail.com> | 2017-05-30 15:18:14 +0000 |
commit | 8be1169325df4cc5697f990825744b6418296407 (patch) | |
tree | 800c5deb30104c705e6ba840303bf2b934d5a3e3 | |
parent | c96672fc6d7ad37c15a43c542c9e6d692ddfa3c6 (diff) |
Preemptive track downloading
-rw-r--r-- | bill-everything.json | 754 | ||||
-rw-r--r-- | bill-instrumentals.json | 182 | ||||
-rw-r--r-- | play.js | 41 |
3 files changed, 964 insertions, 13 deletions
diff --git a/bill-everything.json b/bill-everything.json new file mode 100644 index 0000000..bdf115b --- /dev/null +++ b/bill-everything.json @@ -0,0 +1,754 @@ +[ + [ + "christnuts, new zealand", + "http://www.billwurtz.com/christnuts-newzealand.mp3" + ], + [ + "i'm gonna do the things that i gotta do", + "http://www.billwurtz.com/im-gonna-do-the-things-that-i-gotta-do.mp3" + ], + [ + "_____notbugs", + "http://www.billwurtz.com/_____notbugs.mp3" + ], + [ + "the road", + "http://www.billwurtz.com/the-road.mp3" + ], + [ + "this is not a song", + "http://www.billwurtz.com/this-is-not-a-song.mp3" + ], + [ + "i can play", + "http://www.billwurtz.com/i-can-play.mp3" + ], + [ + "it's ok to love", + "http://www.billwurtz.com/its-ok-to-love.mp3" + ], + [ + "i hope we figure it out", + "http://www.billwurtz.com/i-hope-we-figure-it-out.mp3" + ], + [ + "all u gotta do is", + "http://www.billwurtz.com/all-u-gotta-do-is.mp3" + ], + [ + "i wanna sail you away", + "http://www.billwurtz.com/i-wanna-sail-you-away.mp3" + ], + [ + "hey jodie foster", + "http://www.billwurtz.com/hey-jodie-foster.mp3" + ], + [ + "goo soup", + "http://www.billwurtz.com/goo-soup.mp3" + ], + [ + "brooklyn museum", + "http://www.billwurtz.com/brooklyn-museum.mp3" + ], + [ + "the looking glass", + "http://www.billwurtz.com/the-looking-glass.mp3" + ], + [ + "i'm gonna plan my day", + "http://www.billwurtz.com/i%27m-gonna-plan-my-day.mp3" + ], + [ + "this is a song for my next album", + "http://www.billwurtz.com/this-is-a-song-for-my-next-album.mp3" + ], + [ + "i'm confused (i love you)", + "http://www.billwurtz.com/imconfused.mp3" + ], + [ + "write a song on the count of 3", + "http://www.billwurtz.com/write-a-song-on-the-count-of-3.mp3" + ], + [ + "i like to sleep around", + "http://www.billwurtz.com/i-like-to-sleep-around.mp3" + ], + [ + "goodbye", + "http://www.billwurtz.com/goodbye.mp3" + ], + [ + "macy's", + "http://www.billwurtz.com/macys.mp3" + ], + [ + "no brains", + "http://www.billwurtz.com/no-brains.mp3" + ], + [ + "It's Gonna Be Alright", + "http://www.billwurtz.com/itsgonnabealright.mp3" + ], + [ + "new canaan", + "http://www.billwurtz.com/newcanaan.mp3" + ], + [ + "the 'ngiueh' song", + "http://www.billwurtz.com/ngiueh.mp3" + ], + [ + "drink beans", + "http://www.billwurtz.com/drinkbeans.mp3" + ], + [ + "tuesday", + "http://www.billwurtz.com/tuesday.mp3" + ], + [ + "youcandriveachevy.com", + "http://www.billwurtz.com/youcandriveachevydotcom.mp3" + ], + [ + "i'm in bryant park", + "http://www.billwurtz.com/bryantpark.mp3" + ], + [ + "don't look in a boot", + "http://www.billwurtz.com/dontlookinaboot.mp3" + ], + [ + "we could just get high", + "http://www.billwurtz.com/wecouldjustgethigh.mp3" + ], + [ + "icy james", + "http://www.billwurtz.com/icyjames.mp3" + ], + [ + "the future song", + "http://www.billwurtz.com/thefuturesong.mp3" + ], + [ + "rabbit snakes", + "http://www.billwurtz.com/rabbitsnakes.mp3" + ], + [ + "school", + "http://www.billwurtz.com/school.mp3" + ], + [ + "textin on my iphone", + "http://www.billwurtz.com/textinonmyiphone.mp3" + ], + [ + "can i", + "http://www.billwurtz.com/can%20i.mp3" + ], + [ + "how am i spost (Bill Wurtz ft. Flide Hamulton)", + "http://www.billwurtz.com/how%20am%20i%20spost%20(Bill%20Wurtz%20ft.%20Flide%20Hamulton).mp3" + ], + [ + "hide the money", + "http://www.billwurtz.com/hide%20the%20money.mp3" + ], + [ + "eat dirt", + "http://www.billwurtz.com/eat%20dirt.mp3" + ], + [ + "teddy bears", + "http://www.billwurtz.com/teddy%20bears.mp3" + ], + [ + "i write stupid music", + "http://www.billwurtz.com/i%20write%20stupid%20music.mp3" + ], + [ + "go back to where you belong", + "http://www.billwurtz.com/go%20back%20to%20where%20you%20belong.mp3" + ], + [ + "don't be good to your neighbor", + "http://www.billwurtz.com/don%27t%20be%20good%20to%20your%20neighbor.mp3" + ], + [ + "hi, it's 1995", + "http://www.billwurtz.com/hi%20it%27s%201995.mp3" + ], + [ + "hello 1", + "http://www.billwurtz.com/hello%201.mp3" + ], + [ + "skip to my loo", + "http://www.billwurtz.com/skip%20to%20my%20loo.mp3" + ], + [ + "hey baby, buy my car", + "http://www.billwurtz.com/hey%20baby,%20buy%20my%20car.mp3" + ], + [ + "hello 2", + "http://www.billwurtz.com/hello%202.mp3" + ], + [ + "move over", + "http://www.billwurtz.com/move%20over.mp3" + ], + [ + "raindrops", + "http://www.billwurtz.com/raindrops.mp3" + ], + [ + "lalala", + "http://www.billwurtz.com/lalala.mp3" + ], + [ + "get outta here", + "http://www.billwurtz.com/get%20outta%20here.mp3" + ], + [ + "get real", + "http://www.billwurtz.com/get%20real.mp3" + ], + [ + "gross insides", + "http://www.billwurtz.com/gross%20insides.mp3" + ], + [ + "hi bye", + "http://www.billwurtz.com/hi%20bye.mp3" + ], + [ + "sheep", + "http://www.billwurtz.com/sheep.mp3" + ], + [ + "instrumental: happy birfbday", + "http://www.billwurtz.com/Happy-Birfbday.mp3" + ], + [ + "instrumental: juvenile (le nu jive)", + "http://www.billwurtz.com/juvenile%20(le%20nu%20jive).mp3" + ], + [ + "instrumental: happy garden", + "http://www.billwurtz.com/happy%20garden.mp3" + ], + [ + "instrumental: Unscheduled Psychiatric Confluence (UPC)", + "http://www.billwurtz.com/Unscheduled%20Psychiatric%20Confluence%20(UPC).mp3" + ], + [ + "instrumental: Summer Love (Froy Thrampton ft. Bill Wurtz)", + "http://www.billwurtz.com/Summer%20Love%20(Froy%20Thrampton%20ft.%20Bill%20Wurtz).mp3" + ], + [ + "instrumental: meadow music", + "http://www.billwurtz.com/meadow%20music.mp3" + ], + [ + "write a tune that really sucks", + "http://www.billwurtz.com/write%20a%20tune%20that%20really%20sucks.mp3" + ], + [ + "the zoo", + "http://www.billwurtz.com/the%20zoo.mp3" + ], + [ + "jazz: in a mellow tone", + "http://www.billwurtz.com/inamellowtone.mp3" + ], + [ + "Another Day", + "http://www.billwurtz.com/Another-Day.mp3" + ], + [ + "jazz: look to the sky", + "http://www.billwurtz.com/looktotheskyjobim.mp3" + ], + [ + "jazz: central park west wtf", + "http://www.billwurtz.com/centralparkwestwtf.mp3" + ], + [ + "instrumental: mashup of 'clip 6 from 7 29 08'", + "http://www.billwurtz.com/mashup%20of%20clip%206%20from%207%2029%2008.mp3" + ], + [ + "punk: freefallin", + "http://www.billwurtz.com/frre%20felln.mp3" + ], + [ + "Stupid Song", + "http://www.billwurtz.com/Stupid%20Song.mp3" + ], + [ + "I Guess I've Got to Listen to Bob Marley", + "http://www.billwurtz.com/I%20Guess%20I%27ve%20Got%20To%20Listen%20To%20Bob%20Marley.mp3" + ], + [ + "Home", + "http://www.billwurtz.com/Home_1.mp3" + ], + [ + "i'm so shy", + "http://www.billwurtz.com/I%27m%20So%20Shy.mp3" + ], + [ + "the world", + "http://www.billwurtz.com/The%20World%27s%20Got%20a%20Problem.mp3" + ], + [ + "All U Need Is Love", + "http://www.billwurtz.com/All%20U%20Need%20Is%20Love.mp3" + ], + [ + "Do What You Want To Do", + "http://www.billwurtz.com/Do%20What%20You%20Want%20To%20Do.mp3" + ], + [ + "(what) Love Is", + "http://www.billwurtz.com/(What)%20Love%20Is.mp3" + ], + [ + "go to the store", + "http://www.billwurtz.com/Go%20to%20the%20Store.mp3" + ], + [ + "i love you", + "http://www.billwurtz.com/I%20Love%20You.mp3" + ], + [ + "do the thing", + "http://www.billwurtz.com/Do%20The%20Thing.mp3" + ], + [ + "no place like home", + "http://www.billwurtz.com/No%20Place%20Like%20Home.mp3" + ], + [ + "the stupid song", + "http://www.billwurtz.com/The%20Stupid%20Song.mp3" + ], + [ + "Home Again", + "http://www.billwurtz.com/Home%20Again.mp3" + ], + [ + "how am i spost", + "http://www.billwurtz.com/how%20am%20i%20spost.mp3" + ], + [ + "blue boy", + "http://www.billwurtz.com/blue%20boy.mp3" + ], + [ + "instrumental: ABCDE", + "http://www.billwurtz.com/ABCDE.mp3" + ], + [ + "end of the world concert", + "http://www.billwurtz.com/end%20of%20the%20world%20concert%205%2021%2011%20450am.mp3" + ], + [ + "instrumental: this funny bad flame -- ponso skidpul", + "http://www.billwurtz.com/this%20funny%20bad%20flame%20-%20ponso%20skidpul.mp3" + ], + [ + "i like", + "http://www.billwurtz.com/i%20like.mp3" + ], + [ + "instrumental: basic balloon seed iteration 1", + "http://www.billwurtz.com/basic%20balloon%20seed%20iteration%201.mp3" + ], + [ + "dumpies - joe no", + "http://www.billwurtz.com/dumpies%20-%20joe%20no.mp3" + ], + [ + "murder your demon", + "http://www.billwurtz.com/murder%20your%20demon.mp3" + ], + [ + "dream of evil", + "http://www.billwurtz.com/dream%20of%20evil.mp3" + ], + [ + "fever", + "http://www.billwurtz.com/fever%20(is%20what%20makes%20you%20sick).mp3" + ], + [ + "i'm about to graduate from school", + "http://www.billwurtz.com/im%20about%20to%20graduate%20from%20school.mp3" + ], + [ + "instrumental: relaxment stage 1", + "http://www.billwurtz.com/relaxment%20stage%201.mp3" + ], + [ + "pairs", + "http://www.billwurtz.com/pairs.mp3" + ], + [ + "grow mushrooms on the sidewalk", + "http://www.billwurtz.com/mushrooms%20on%20the%20sidewalk.mp3" + ], + [ + "fuck you", + "http://www.billwurtz.com/fuck%20you.mp3" + ], + [ + "whatever", + "http://www.billwurtz.com/whatever.mp3" + ], + [ + "no", + "http://www.billwurtz.com/no.mp3" + ], + [ + "yes", + "http://www.billwurtz.com/yes.mp3" + ], + [ + "rock'n'roll confusion", + "http://www.billwurtz.com/rocknroll%20confusion.mp3" + ], + [ + "the trees", + "http://www.billwurtz.com/the%20trees%20(okay,%20alright).mp3" + ], + [ + "jazz over pilotwings", + "http://www.billwurtz.com/jazzoverpilotwings.mp3" + ], + [ + "sickness as usual", + "http://www.billwurtz.com/sickness%20as%20usual.mp3" + ], + [ + "i'm not sure", + "http://www.billwurtz.com/im%20not%20sure.mp3" + ], + [ + "mcdonald's", + "http://www.billwurtz.com/mcdonalds.mp3" + ], + [ + "fly away", + "http://www.billwurtz.com/fly%20away.mp3" + ], + [ + "my penis", + "http://www.billwurtz.com/my%20penis.mp3" + ], + [ + "sing me a song", + "http://www.billwurtz.com/sing%20me%20a%20song.mp3" + ], + [ + "what the fuck", + "http://www.billwurtz.com/what%20the%20fuck.mp3" + ], + [ + "hibernate", + "http://www.billwurtz.com/hibernate.mp3" + ], + [ + "modern woes", + "http://www.billwurtz.com/modern%20woes.mp3" + ], + [ + "eat bread (feel sure)", + "http://www.billwurtz.com/feel%20sure%20(eat%20bread).mp3" + ], + [ + "2010", + "http://www.billwurtz.com/2010.mp3" + ], + [ + "i'm sexy", + "http://www.billwurtz.com/i%27m%20sexy.mp3" + ], + [ + "still silly", + "http://www.billwurtz.com/still%20silly.mp3" + ], + [ + "lima beans", + "http://www.billwurtz.com/lima%20beans.mp3" + ], + [ + "heebity deebities", + "http://www.billwurtz.com/heebity%20deebities.mp3" + ], + [ + "barf on me", + "http://www.billwurtz.com/preface%20to%20creepy%20song.mp3" + ], + [ + "song 41", + "http://www.billwurtz.com/song%2041.mp3" + ], + [ + "tape deck", + "http://www.billwurtz.com/tape%20deck.mp3" + ], + [ + "blind (to no avail)", + "http://www.billwurtz.com/blind%20(to%20no%20avail).mp3" + ], + [ + "feel okay", + "http://www.billwurtz.com/feel%20okay.mp3" + ], + [ + "no harm", + "http://www.billwurtz.com/no%20harm.mp3" + ], + [ + "the summertime", + "http://www.billwurtz.com/the%20summertime.mp3" + ], + [ + "we are humans", + "http://www.billwurtz.com/we%20are%20humans.mp3" + ], + [ + "be someone", + "http://www.billwurtz.com/be%20someone.mp3" + ], + [ + "make me write my songs", + "http://www.billwurtz.com/make%20me%20write%20my%20songs.mp3" + ], + [ + "don't make", + "http://www.billwurtz.com/don%27t%20make.mp3" + ], + [ + "we're all gonna be fine", + "http://www.billwurtz.com/were%20all%20gonna%20be%20fine.mp3" + ], + [ + "desk and chair", + "http://www.billwurtz.com/desk%20and%20chair.mp3" + ], + [ + "home from work", + "http://www.billwurtz.com/home%20from%20work.mp3" + ], + [ + "dance the", + "http://www.billwurtz.com/dance%20the.mp3" + ], + [ + "you can fly", + "http://www.billwurtz.com/you%20can%20fly.mp3" + ], + [ + "i wanna be with you", + "http://www.billwurtz.com/i%20wanna%20be%20with%20you.mp3" + ], + [ + "be free and don't sell records", + "http://www.billwurtz.com/be%20free%20and%20don%27t%20sell%20records.mp3" + ], + [ + "wondering how to feel", + "http://www.billwurtz.com/wondering%20how%20to%20feel.mp3" + ], + [ + "the ladies", + "http://www.billwurtz.com/the%20ladies.mp3" + ], + [ + "i'm sad", + "http://www.billwurtz.com/i%27m%20sad.mp3" + ], + [ + "i wanna go home", + "http://www.billwurtz.com/i%20wanna%20go%20home.mp3" + ], + [ + "not so hard to do", + "http://www.billwurtz.com/not%20so%20hard%20to%20do.mp3" + ], + [ + "instrumental: i'm alive", + "http://www.billwurtz.com/im%20alive.mp3" + ], + [ + "instrumental: groove thing", + "http://www.billwurtz.com/groove%20thing.mp3" + ], + [ + "shut up", + "http://www.billwurtz.com/shut%20up.mp3" + ], + [ + "don't talk to me", + "http://www.billwurtz.com/don%27t%20talk%20to%20me.mp3" + ], + [ + "magnet", + "http://www.billwurtz.com/magnet.mp3" + ], + [ + "diamond", + "http://www.billwurtz.com/diamond.mp3" + ], + [ + "instrumental: no castle", + "http://www.billwurtz.com/no%20castle.mp3" + ], + [ + "feathered box", + "http://www.billwurtz.com/feathered%20box.mp3" + ], + [ + "instrumental: wind and raeihgn", + "http://www.billwurtz.com/wind%20and%20raeihgn.mp3" + ], + [ + "instrumental: this song yeah", + "http://www.billwurtz.com/this%20song%20yeah.mp3" + ], + [ + "bears", + "http://www.billwurtz.com/bears.mp3" + ], + [ + "die", + "http://www.billwurtz.com/die.mp3" + ], + [ + "little door", + "http://www.billwurtz.com/little%20door.mp3" + ], + [ + "couldn't succeed", + "http://www.billwurtz.com/couldnt%20succeed.mp3" + ], + [ + "go home", + "http://www.billwurtz.com/go%20home.mp3" + ], + [ + "napkins", + "http://www.billwurtz.com/napkins.mp3" + ], + [ + "burger king", + "http://www.billwurtz.com/burger%20king.mp3" + ], + [ + "instrumental: grand piano demo", + "http://www.billwurtz.com/grand%20piano%20demo.mp3" + ], + [ + "instrumental: my sad song", + "http://www.billwurtz.com/my%20sad%20song.mp3" + ], + [ + "instrumental: thing 1 10 10 ", + "http://www.billwurtz.com/11010%20the%20thing.mp3" + ], + [ + "15 minutes", + "http://www.billwurtz.com/precursor.mp3" + ], + [ + "instrumental: window pain", + "http://www.billwurtz.com/window%20pain.mp3" + ], + [ + "punk: who am i (iris)", + "http://www.billwurtz.com/iris.mp3" + ], + [ + "instrumental: jungle mania", + "http://www.billwurtz.com/jungle%20mania.mp3" + ], + [ + "instrumental: good night", + "http://www.billwurtz.com/good%20night.mp3" + ], + [ + "instrumental: aimless", + "http://www.billwurtz.com/aimless.mp3" + ], + [ + "instrumental: music time", + "http://www.billwurtz.com/music%20time.mp3" + ], + [ + "instrumental: planet earth", + "http://www.billwurtz.com/planet%20earth.mp3" + ], + [ + "Marketing Telephono ft. Chris Aiello", + "http://www.billwurtz.com/marketing%20telephono.mp3" + ], + [ + "the song song", + "http://www.billwurtz.com/THE%20SONG%20SONG.mp3" + ], + [ + "instrumental: typhoon sample measuring kit", + "http://www.billwurtz.com/typhoon%20sample%20measuring%20kit.mp3" + ], + [ + "instrumental: time mop", + "http://www.billwurtz.com/time%20mop.mp3" + ], + [ + "instrumental: wrecked music of the state capital", + "http://www.billwurtz.com/wrecked%20music%20of%20the%20state%20capital.mp3" + ], + [ + "instrumental: help me, i'm trapped in the center of a rectangle", + "http://www.billwurtz.com/help%20me,%20i%27m%20trapped%20in%20the%20center%20of%20a%20rectangle.mp3" + ], + [ + "punk: your body is a wonderland", + "http://www.billwurtz.com/yourbodyisawonderland.mp3" + ], + [ + "punk: welcome to the jungle", + "http://www.billwurtz.com/rule.mp3" + ], + [ + "instrumental: paradise", + "http://www.billwurtz.com/paradise.mp3" + ], + [ + "instrumental: Trade X", + "http://www.billwurtz.com/Trade%20X.mp3" + ], + [ + "stuck in a rut", + "http://www.billwurtz.com/rut.mp3" + ], + [ + "instrumental: illuminated glass container", + "http://www.billwurtz.com/igc.mp3" + ], + [ + "instrumental: frontier cave", + "http://www.billwurtz.com/frontiercave.mp3" + ], + [ + "instrumental: sincere sam", + "http://www.billwurtz.com/sinceresam.mp3" + ], + [ + "instrumental: Late Nite Lounge with Loud Lenny", + "http://www.billwurtz.com/late-nite-lounge-with-loud-lenny.mp3" + ] +] diff --git a/bill-instrumentals.json b/bill-instrumentals.json new file mode 100644 index 0000000..b63f790 --- /dev/null +++ b/bill-instrumentals.json @@ -0,0 +1,182 @@ +[ + [ + "hey mom i beat the scale!", + "http://www.billwurtz.com/hey-mom-i-beat-the-scale.mp3" + ], + [ + "happy birfbday", + "http://www.billwurtz.com/Happy-Birfbday.mp3" + ], + [ + "juvenile (le nu jive)", + "http://www.billwurtz.com/juvenile%20(le%20nu%20jive).mp3" + ], + [ + "happy garden", + "http://www.billwurtz.com/happy%20garden.mp3" + ], + [ + "Unscheduled Psychiatric Confluence (UPC)", + "http://www.billwurtz.com/Unscheduled%20Psychiatric%20Confluence%20(UPC).mp3" + ], + [ + "Summer Love (Froy Thrampton ft. Bill Wurtz)", + "http://www.billwurtz.com/Summer%20Love%20(Froy%20Thrampton%20ft.%20Bill%20Wurtz).mp3" + ], + [ + "meadow music", + "http://www.billwurtz.com/meadow%20music.mp3" + ], + [ + "jazz: in a mellow tone", + "http://www.billwurtz.com/inamellowtone.mp3" + ], + [ + "jazz: look to the sky", + "http://www.billwurtz.com/looktotheskyjobim.mp3" + ], + [ + "jazz: central park west wtf", + "http://www.billwurtz.com/centralparkwestwtf.mp3" + ], + [ + "mashup of 'clip 6 from 7 29 08'", + "http://www.billwurtz.com/mashup%20of%20clip%206%20from%207%2029%2008.mp3" + ], + [ + "ABCDE", + "http://www.billwurtz.com/ABCDE.mp3" + ], + [ + "end of the world concert", + "http://www.billwurtz.com/end%20of%20the%20world%20concert%205%2021%2011%20450am.mp3" + ], + [ + "this funny bad flame -- ponso skidpul", + "http://www.billwurtz.com/this%20funny%20bad%20flame%20-%20ponso%20skidpul.mp3" + ], + [ + "basic balloon seed iteration 1", + "http://www.billwurtz.com/basic%20balloon%20seed%20iteration%201.mp3" + ], + [ + "relaxment stage 1", + "http://www.billwurtz.com/relaxment%20stage%201.mp3" + ], + [ + "jazz over pilotwings", + "http://www.billwurtz.com/jazzoverpilotwings.mp3" + ], + [ + "i'm alive", + "http://www.billwurtz.com/im%20alive.mp3" + ], + [ + "groove thing", + "http://www.billwurtz.com/groove%20thing.mp3" + ], + [ + "no castle", + "http://www.billwurtz.com/no%20castle.mp3" + ], + [ + "wind and raeihgn", + "http://www.billwurtz.com/wind%20and%20raeihgn.mp3" + ], + [ + "this song yeah", + "http://www.billwurtz.com/this%20song%20yeah.mp3" + ], + [ + "grand piano demo", + "http://www.billwurtz.com/grand%20piano%20demo.mp3" + ], + [ + "my sad song", + "http://www.billwurtz.com/my%20sad%20song.mp3" + ], + [ + "thing 1 10 10 ", + "http://www.billwurtz.com/11010%20the%20thing.mp3" + ], + [ + "window pain", + "http://www.billwurtz.com/window%20pain.mp3" + ], + [ + "punk: who am i (iris)", + "http://www.billwurtz.com/iris.mp3" + ], + [ + "jungle mania", + "http://www.billwurtz.com/jungle%20mania.mp3" + ], + [ + "good night", + "http://www.billwurtz.com/good%20night.mp3" + ], + [ + "aimless", + "http://www.billwurtz.com/aimless.mp3" + ], + [ + "music time", + "http://www.billwurtz.com/music%20time.mp3" + ], + [ + "planet earth", + "http://www.billwurtz.com/planet%20earth.mp3" + ], + [ + "typhoon sample measuring kit", + "http://www.billwurtz.com/typhoon%20sample%20measuring%20kit.mp3" + ], + [ + "time mop", + "http://www.billwurtz.com/time%20mop.mp3" + ], + [ + "wrecked music of the state capital", + "http://www.billwurtz.com/wrecked%20music%20of%20the%20state%20capital.mp3" + ], + [ + "help me, i'm trapped in the center of a rectangle", + "http://www.billwurtz.com/help%20me,%20i%27m%20trapped%20in%20the%20center%20of%20a%20rectangle.mp3" + ], + [ + "punk: your body is a wonderland", + "http://www.billwurtz.com/yourbodyisawonderland.mp3" + ], + [ + "punk: welcome to the jungle", + "http://www.billwurtz.com/rule.mp3" + ], + [ + "paradise", + "http://www.billwurtz.com/paradise.mp3" + ], + [ + "Trade X", + "http://www.billwurtz.com/Trade%20X.mp3" + ], + [ + "reggae car dealership", + "http://www.billwurtz.com/reggae-car-dealership.mp3" + ], + [ + "illuminated glass container", + "http://www.billwurtz.com/igc.mp3" + ], + [ + "frontier cave", + "http://www.billwurtz.com/frontiercave.mp3" + ], + [ + "sincere sam", + "http://www.billwurtz.com/sinceresam.mp3" + ], + [ + "Late Nite Lounge with Loud Lenny", + "http://www.billwurtz.com/late-nite-lounge-with-loud-lenny.mp3" + ] +] diff --git a/play.js b/play.js index 6013821..f0c9d60 100644 --- a/play.js +++ b/play.js @@ -76,6 +76,7 @@ function promisifyProcess(proc, showLogging = true) { if (code === 0) { resolve() } else { + console.error('Process failed!', proc.spawnargs) reject(code) } }) @@ -106,22 +107,36 @@ function pickRandomFromPlaylist(playlist) { return picked } -function loopPlay(fn) { - const picked = fn() - const [ title, href ] = picked +async function loopPlay(fn) { + // Looping play function. Takes one argument, the "pick" function, + // which returns a track to play. Preemptively downloads the next + // track while the current one is playing for seamless continuation + // from one song to the next. - console.log(`Downloading ${title}..\n${href}`) + async function downloadNext() { + const picked = fn() + const [ title, href ] = picked + console.log(`Downloading ${title}..\n${href}`) - const outWav = `.${sanitize(title)}.wav` + const wavFile = `.${sanitize(title)}.wav` - return fetch(href) - .then(res => res.buffer()) - .then(buf => fsp.writeFile('./.temp-track', buf)) - .then(() => convert('./.temp-track', outWav)) - .then(() => fsp.unlink('./.temp-track')) - .then(() => playFile(outWav), () => console.warn('Failed to convert ' + title + '\n' + href)) - .then(() => fsp.unlink(outWav)) - .then(() => loopPlay(fn)) + const res = await fetch(href) + const buffer = await res.buffer() + await fsp.writeFile('./.temp-track', buffer) + await convert('./.temp-track', wavFile) + await fsp.unlink('./.temp-track') + + return wavFile + } + + let wavFile = await downloadNext() + + while (true) { + const nextPromise = downloadNext() + console.log(wavFile) + await playFile(wavFile) + wavFile = await nextPromise + } } function filterPlaylistByPathString(playlist, pathString) { |