Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rickbutton/speaker
https://github.com/rickbutton/speaker
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rickbutton/speaker
- Owner: rickbutton
- Created: 2013-03-05T06:10:46.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-05-13T00:31:56.000Z (over 11 years ago)
- Last Synced: 2024-04-15T02:59:22.759Z (7 months ago)
- Language: Go
- Size: 2.48 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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][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.
[options]: https://github.com/rickbutton/speaker/wiki/Options