Skip to content

rickbutton/speaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

speaker

Introduction

speaker is an application that turns a bunch of computers/embedded systems/toasters into a mesh of synchronized speaker outputs. This is the more advanced version of pressing PLAY on a large number of MP3 players all at the same time, hoping that they don't get out of sync, or god forbid, you didn't press them all at the same time.

Installation

You probably just want to know how to install it.

git clone http://github.com/rickbutton/speaker
cd speaker
mvn

Usage

Server

java -jar speaker.jar --server --input 1

Client

java -jar speaker.jar --client

Go to the options to learn more about the possible command line flags.

Challenges

The real challenge that speaker tries to conquer is to get near perfect audio synchronization (the human ear can detect differences less than a few dozen milliseconds) over an unreliable network. Because of network latency, it is pretty much impossible to merely play two streams of music without delay. Even on a local network, or even the same machine, there is a large non-negligble amount of latency between the sending of the audio data and the decoding step.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages