Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build a social music platform for your office

Avatar for Myke Bates Myke Bates
December 03, 2014

Build a social music platform for your office

The day TurnTable.fm shutdown was the day our office lost one of our favorite ways to pass the day. TurnTable was a really simple idea that let you host a room where 5 DJs would spin their favorite jams to a crowd in a round-robin fashion complete with all the usual social aspects(chat, like, lame, share, etc).

After a long while of mourning we finally decided to try and fill the TurnTable sized hole in our hearts. A few weeks ago we finally had an idea of how we might be able to accomplish this. One extended lunch hour later a prototype was finished. Though this is still very much in development and will continue to evolve we would like to share our discoveries so you, too, can build your own social music platform for your office.

Some of the topics that will be touched on

• Super Rapid Prototyping
• Laravel
• AngularJS
• Node.js
• Pusher
• Sass/gulp.js
• Audio streaming(Icecast/Darkice)
• Linux
• Spotify Web API
• Libspotify

Avatar for Myke Bates

Myke Bates

December 03, 2014
Tweet

More Decks by Myke Bates

Other Decks in Technology

Transcript

  1. The day the music died… (and the day we revived

    it) Dec 2014 http://sgfwebdevs.com
  2. Turntable.fm combined "music-streaming, chat rooms, and voting" by simulating a

    virtual environment filled with audience members and DJs represented by player avatars.
  3. The Components • • Super Rapid Prototyping • • Laravel

    • • AngularJS • • Node.js • • Pusher • • Sass/gulp.js • • Audio streaming(Icecast/Darkice) • • Linux • • Spotify Web API • • Libspotify
  4. Step 1 - Spotify Integration • Libspotify SDK - https://developer.spotify.com/technologies/libspotify/

    • node-spotify - http://www.node-spotify.com/ • Need Spotify premium • Application key • No luck with Homebrew on mac…so maybe not even try :) • Repo code is a rough demo of how to implement 
 https://github.com/sgf-web-devs/tap-music-player
  5. Step 2 - Streaming the tunes • Streaming Server -

    Icecast, Shoutcast, etc. http://www.shoutcheap.com/ is good stuff • Can be local if that fits your needs • Capture audio - Darkice, butt, anything that can push a stream • requires a sound card capable of monitoring(most thing besides Rpi) • Darkice - lots of dependencies. Can be a turd to get configured • darkice -c darkice.cfg
  6. Step 3 - Web App • Authenticates users via Spotify

    Web API • Communicates with player and members of the website(socket.io, pusher, etc) • Searches/previews tracks via Spotify Web API • Stores queue and user info • Provides interactive GUI • Other tech specs - Laravel, Angular, Pusher, Sass, etc.