Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesSound and the Web


January 1997 / Features / Walking, Talking Web / Sound and the Web

When you're compressing sound, the first step is to leave most of it out. While that may seem surprising, telephone engineers have known it for years. You can slice out most of the highest and lowest parts of the audio spectrum, and average listeners probably won't notice any quality degradation. (This is mainly true for spoken sound, not for music, which is why you find very few bands recording albums over the telephone.)

Another nice feature of sound, for the purposes of compression, is the large degree of repetition found in most speech and music. When you're sampling music 44,100 times a second (for CD quality), much of it can be encoded as "ditto." Same for speech: Vowel sounds vary little from beginning to en d, and there are not that many consonantal sounds to encode (which makes you wonder why all artificial speech programs sound like inebriated frogs).

Not surprisingly, there are many more products for sending speech (i.e., telephony) over the Web than there are for music. Sound compression is quite lossy, and most people can tell the difference (that's one reason we listen to FM radio rather than AM and CDs rather than records).

Music over the Web requires higher bandwidth than even a 33.6-Kbps modem connection. Once you have tossed out the frequencies you don't want, there are many choices for compressing the result, including Lempel-Ziv-Welch (LZW). Because compressed sound travels as packets over the Internet, you must plan for packets going astray. One strategy, implemented by VocalTec's Internet Wave, uses the Transmission Control Protocol (TCP) with a buffer that stores a few seconds of sound, plus a predictive cache. The buffer provides a few seconds' wait for any dawdli ng packets to show up, and if the packets never show up, the prediction algorithm guesses at their contents.

Another strategy, one that's implemented by Progressive Networks' RealAudio, employs the User Datagram Protocol (UDP), with the sound minced and distributed among successive packets. If one of these packets does not show up, the effect is a few-milliseconds gap every quarter of a second for about 3 seconds.

Want to pause, fast forward, or rewind? Unfortunately, HTTP is not bidirectional. Again, there are ways around this: VocalTec, for example, uses Common Gateway Interface (CGI) scripts with HTTP; Progressive Networks uses other non-HTTP servers.


Up to the Features section contentsGo to previous article: Sound and the WebSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network