My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
RawAudioSocket  
Speakers running at port 44100 tcp/udp playing raw PCM audio stream
Concept, UserStory, Phase-InProcess
Updated Mar 22, 2010 by techtonik@gmail.com

User Story

I've got an old box with speakers in my network. Now I need a fast way to transmit sound to this box. I would like to avoid complicated protocols, discovery etc. Plain way to send sound over network, so the box can immediately transmit it to speakers.

Details

As the system should be as simple as possible, there is no discovery or negotiation. Client sends audio data in raw audio PCM format defined below to explicitly specified server name/IP address. Server plays them immediately, perhaps mixing several streams together. No volume control, no cache control - nothing. Server may have a buffer for gapless playback, but should not cache large amount of data to stop playing almost immediately after transmission stopped.

Raw audio socket uses port TCP/UDP port 44100

  • numbered after sampling rate - see below

Raw audio PCM format is defined as:

  • PCM 16bit, little endian, signed, 44.1kHz, stereo, left interleaved
    • it is audio CD PCM format with the same quality
    • it is also old school top grade SB16 setting
    • should work "out of the box" on many platforms including DOS
    • easy to implement as no codecs are used

Remarks

  • everybody can make you box "shout"
  • this port can be used to "ping" colleague in headphones over WiFi
  • if you need access control - you can make server listen on local interface and forward stream to it from your own port
  • server may accept packets at a faster rate if requested to do so by some other external means, but by default it's buffer is limited. Client also can limit the amount of sent packets

References

  1. http://wiki.multimedia.cx/index.php?title=PCM#Red_Book_CD_Audio
  2. http://www.absoluteastronomy.com/topics/Red_Book_%28audio_CD_standard%29

Implementations

- NONE so far -

Sign in to add a comment
Powered by Google Project Hosting