Music synchronization from your browser.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
static
templates
.gitattributes
.gitignore
LICENSE
Makefile
README.md
config-go.cfg
controls.go
data.go
mp3s.go
normalize.go
server.go
ssh.go
utils.go

README.md

Logo

musicsaur - Try it

Music Synchronization And Uniform Relaying

Version 1.5 Join the chat at https://gitter.im/schollz/musicsaur


Update 08/09/2016: Version 1.5 released!

  • Updated to the latest version of caddy
  • Updated to latest version of howler.js

Want to sync up your music on multiple computers? This accomplishes exactly that - using only a simple program and a browser. Simply run the program, and open up a browser on each computer you want to sync up - that's it!

Help

This program is powered by the excellent howler.js library from goldfire. Essentially all the client computers sync their clocks and then try to start a song at the same time. Any dissimilarities between playback are also fixed, because the clients will automatically seek to the position of the server.

Tested on Android, Windows phone, Windows, OS X, and Linux.

Setup

If you don't want to install anything, just download the compiled version. Otherwise, read on ->.

git clone https://github.com/schollz/musicsaur.git
cd musicsaur
go get ./...
go build

Then copy the configuration file

cp config-go.cfg config.cfg

and edit line #5 with your music folders. Then simpily use

./musicsaur

to start up the server!

I suggest using ffmpeg as it will make syncing much faster. Installation is easy:

sudo add-apt-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install ffmpeg

Some notes

chrome://flags/#disable-gesture-requirement-for-media-playback
  • If you want to play music from a Raspberry Pi, just type this command (works on headless):
xinit /usr/bin/midori -a http://W.X.Y.Z:5000

OR

xinit /usr/bin/luakit -u http://W.X.Y.Z:5000

Screenshot

Screenshot

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

History

  • 08/09/2016: Version 1.5 Release
  • 03/11/2016: Version 1.4 Release
  • 12/26/2015: Version 1.3 Release
  • 12/19/2015: Version 1.2 Release
  • 12/18/2015 (evening): Version 1.1 Release
  • 12/18/2015 (morning): Version 1.0 Release

Credits