Web Audio Stereo Component

Initial Proposal

Michael Foy

Dave Hillyard

Barrett Cervenka

Tony Camilli

CPSC 483 - 501

Dr. Mahapatra

September 20, 1999

Introduction

Streaming audio and video have become very popular in recent years. Technically savvy computer users have enjoyed having music on demand without having to wait for a large download to complete. Because there are thousands of streaming audio sources on the Internet (broadcast.com, spinner.com, and NetRadio are all examples), the selection of music is limitless.

Unfortunately, the only people who can take advantage of this kind of musical flexibility and convenience are those people who own a personal computer. So we ask, why does one need to own a computer to enjoy broadcast music from all over the world? We propose the Stereo Web Radio: a small appliance that anyone can use to listen to RealAudio music without the necessary personal computer.

The Stereo Web Radio will be a stereo component, just like a stereo tape player or stereo compact disc player. It can connect to a stereo receiver using standard RCA jacks on the back of the box. It will also connect to the Internet via an Ethernet port on the box, taking advantage of high-speed Internet connection that is becoming more and more prevalent in homes throughout America.

By using this device, non-technical users can begin to enjoy the variety and simplicity of Internet radio.

Features and Benefits

  • Real-time audio
The streaming audio will be decompressed in real-time without the necessity of a PC
  • Wider variety of stations

Accessing streaming audio via the web allows you to listen to stations that would not be available to the home user otherwise (example: BBC in England)

  • CD Quality sound through TCP/IP
Our project will allow users to have CD quality sound (44 kHz, 16-bit stereo) which is better than what RealPlayer currently allows with their web interface
  • Reception never deteriorates
Unlike regular radio signals, our signal through the Internet will never deteriorate
  • Intuitive interface with LCD

The LCD and buttons will provide the user with an easy interface for connecting to streaming audio servers

Project Objectives and Deliverables

  • Our device should be able to connect to a steaming audio server over the Internet.
  • Our device should be able to decode the network protocol.
  • Our device should be able to decode the digital audio signal coming in through the network interface.
  • Our device should be able to convert the digital audio signal to an analog signal.
  • Change between sites so that the user can listen to different stations.
  • Deliver a LINE OUT from digital audio.

Project Plan

Device Construction

Our device will be a simple black box. It will have a simple LCD display so the user knows what RealAudio station is playing. An RJ-45 port will be in the back so that the user can connect the device to a home or office LAN, similar to the way a network printer connects to a LAN. Finally, two stereo RCA jacks will output the analog signal. This will conceivable be connected to a stereo receiver, which is then connected to external speakers.

Inside the box will be several hardware components. At the center, the Motorola M-CORE processor will be used for most processing. We will connect to it several other components. For network communication, we will use the NE2000 chip. For the user display, a multiline LCD panel will be used. Several buttons connect to the processor to take in user input. Finally, a digital-to-analog (DAC) converter connects to process the data stream from the Internet.

Internet Connection

Since the music that we are playing has to be grabbed from the Internet, we must have a connection to the Internet via TCP/IP. Using the NE2000 chip as a network interface, we will decode the data stream from the Internet by implementing a small TCP/IP stack on the M-CORE processor. By referencing the device driver handbook for the M-CORE processor and consulting resources on network programming, we can construct the necessary hardware and software solutions to implement this.

Data Stream Decoding

Once the network interface can communicate with a RealAudio server, we must be able to decode the data stream in real time to a digital signal that can be processed. To do this, we must implement a software solution that uses RealAudio’s decoding, decompression, and rendering techniques that they have implemented in their RealPlayer software. There are several resources on RealAudio’s corporate website for building custom client applications; unfortunately, the software has not been explicitly written for the Motorola family of processors. Therefore, we expect to have to analyze the documentation and the SDK to implement the core functionality of the RealPlayer on the M-CORE processor.

Digital Conversion

Now that we have decoded the data stream from the Real Audio server, we have to output it to the user. A signal that is full of alternating ones and zeroes means nothing to a listener, so this stream must be coverted. Using a DAC, the digital signal will be electronically converted into an analog signal. Since we do not yet know the properties of the digital signal we will be converting, the type of DAC needed will be determined at a later date. Finally, once an analog signal has been produced, it will be fed out the RCA jacks on the box as per the RCA standard.

User Interface

So how can the user find an Internet radio station that they can listen to? The first revision of our project will have two RealAudio sites hard-coded into the system. This means that these are the only two stations that can be listened to at first. Obviously, this is not a viable alternative for a similar commercial product. Therefore, we will construct a small user interface that will allow the user to select a RealAudio site to listen to. The UI will consist of a small multi-line LCD panel and several buttons to be used as input. The user can enter the IP address and port number of a RealAudio site that they would like to connect to, and the machine will play back the music from the particular site.

Block Diagram

Background

High-speed Internet access at home is the trend of the future as more people realize that 56k modems simply aren’t fast enough. The maximum data rate achievable through a phone line can’t handle large amounts of video and audio. There are a lot of exciting possibilities for the home Internet user with a large amount of bandwidth. For our project, we are assuming that a user has a home stereo and a fast, dedicated connection to the Internet.

The traditional way the radio stations have broadcast their signal is, of course, over the air in RF encoded information. Recently many of these same radio stations have started simulcasting their signal over the Internet in RealAudio format. You can listen to the radio on your computer now, but you must use your PC for this application. That makes it unpractical for the everyday person to use in their sound system in their living room. Our idea is to develop an embedded system that will decode the Internet protocol and the RealAudio protocol to output the signal to your stereo. This embedded system will be installed in a stereo component that can be plugged into a stereo receiver and allow the user to listen to RealAudio music as easily as listening to a radio station.

TCP/IP is a name given to the suite of networking protocols that have been used to construct the global Internet. The TCP/IP name is taken from two of the fundamental protocols in the collection, IP and TCP. These protocols work together to provide a basic networking framework that is used by many different applications.

Internet Protocol (IP) is the central, unifying protocol in the TCP/IP suite. It provides the basic delivery mechanism for packets of data sent between all systems. All other protocols in the TCP/IP suite depend on IP to carry out the fundamental function of moving packets across the Internet. IP does not guarantee actually delivering the data to the destination without errors and as a result, it is a very simple protocol. Applications usually depend on TCP or UDP to provide assurances of data integrity.

Transmission Control Protocol (TCP) provides a reliable byte-stream transfer service between two endpoints. TCP depends on IP to move packets around the network on its behalf. IP is unreliable by itself, so TCP protects against data loss, data corruption, packet reordering and data duplication by adding checksums and sequence numbers to transmitted data and, on the receiving side, sending back packets that acknowledge the receipt of data. Before sending data across the network, TCP establishes a connection with the destination via an exchange of management packets. TCP has a multi-stage flow-control mechanism which continuously adjusts the sender's data rate in an attempt to achieve maximum data throughput.

Our project will make a connection through TCP/IP to a server that is sending a constant stream of encoded audio. Since a high-speed connection cannot send data fast enough for CD quality (44 kHz), we will use a hardware solution to decode into an analog signal in real-time.

Uncompressed CD-quality digital audio is typically stored as 16-bit samples, and requires 44100 samples per second to capture the full range of frequencies that a listener can hear. While very high quality, this results in a data rate of 700kbps. With stereo files, the data rate doubles to 1400kbps. A RealAudio server sends data through a TCP/IP connection in their RM file format. A temporary file is created on the user’s computer and data is constantly added to and removed from it. Using LabView, we’re going to take the data from a RealAudio server and make sure we understand the RM file format and are able to use it. We will take this data, decompress the audio data from the RM file and change this signal to digital audio. All of this will be done on the Motorola MMC2001 so that we won’t need a PC connected to any portion of the project.

Testing

There will be various stages of testing throughout the development of this system. During development, module testing will be of key importance before the integrated system can be built. Due to some inter-module dependence, not all modules can truly be tested independently of one another. Thus, testing will be done in three phases: UI testing, bit-stream/audio input and output testing, and system testing.

  1. NIC, TCP/IP Decoding, Audio Decoding and Conversion

These two modules would be impossible or insignificant to test independently, so

they have been combined for the sake of sub-component testing. Again, using

LabVIEW and the National Instruments DAQ, testing of this module will consist of

monitoring the bit-stream sent using TCP/IP. This bit-stream is then received by the

network interface and the TCP/IP is translated to digital audio. Monitor points can be

established at the network/NIC interface, NIC/processor interface, and

processor/DAC interface. Because the system is implemented using a

microprocessor, all audio decoding is done at the software level at cannot be tested

within the processor itself. Instead, as mentioned, the TCP/IP input and the audio

output will be monitored to ensure proper operation.

  1. User Interface

The user interface will consist of three buttons which allow user input, and an LCD panel which gives feedback to the user. All information that is visible to the user can be tested in a stand-alone, simulation environment. Once this portion of the system has been built, the LCD panel and buttons can be wired to a protoboard along with I/O lines to and from the Xilinx FPGA. This simulated environment will enable a tester to navigate through the textual interface of the system, and input his/her actions. While the actual result of the user input cannot be implemented at this stage in testing, a logic analyzer or a National Instruments DAQ (along with LabVIEW) can monitor the signal that is sent to the system’s processor. This will ensure that the user interface sub-system is sending the correct information to the rest of the system.

  1. System Testing

Once the system has been completed, functionality will be tested using radio stations

that use similar audio compression formats. While initially, this will consist of one

radio station, other stations that broadcast in similar formats could be added. To test

the final deliverable, a stereo amplifier and speakers will be brought into the lab. The

system will make use of the established network in the lab. The results of this testing

are simple: if the system plays the specified web radio station, then the system is

working.

Components

Component /
Approximate Price
Network Interface Card (NE2000) / In stock
Multi-line LCD (Optrex DMC20481) / In stock
Xilinx Chip / In stock
Buttons / In stock
Breadboard / In stock
Digital Audio Converter (2) 16-bit parallel / $5.00/each
Motorola MMC2001 processor / In stock
Total / $10.00

Development Tools

  • LabView
  • Visual C++
  • Visual J++
  • National Instruments DAQ
  • HP1562B Logic Analyzer

Project Estimates

Our initial estimates for this project are as follows:

  • 60% software

The software portion of the project includes decoding the TCP/IP information as well as taking the encoded data and turning it into an analog signal. The LCD will have to be programmed as well.

  • 40% hardware

We will be using the Motorola MMC2001 to perform the necessary decompression algorithms in real-time and we will have to interface it with the LCD and NIC.

Team Member Responsibilities

Michael Foy will be in charge of the digital to analog signal, filters, and amplifier in order to deliver a “line out.” This line out will be CD quality (44 kHz).

Tony Camilli will be in charge of our user interface. His duties include making the LCD display work properly and configuring the buttons as channel selectors.

Barrett Cervenka and David Hillyard will be in charge of decoding the TCP/IP data and converting the network information into digital audio to be decoded by Mike’s portion of the project.

Schedule

  • Week 1September 20 – September 24
  1. Proposal
  2. Research
  • LCD
  • TCP/IP
  • RealAudio streaming data
  • Audio Compression/Decompression
  • DAC components
  • Line-out audio (RCA)
  • Learn more about the Motorola MMC2001
  1. Order hardware components and testing tools
  • Week 2September 27 – October 1
  1. Continue research if needed
  2. Begin implementing network interface (TCP/IP)
  3. Using LabView, begin implementing RealAudio decoding
  • Week 3October 4 – October 8
  1. Bi-Weekly 1
  2. Continue network interface
  3. Continue RealAudio decoding
  • Week 4October 11 – October 15
  1. Using LabView, begin decoding TCP/IP data
  2. Continue decoding RealAudio
  3. Experiment with RealAudio decoding using a Windows PC
  • Week 5October 18 – October 22
  1. Bi-Weekly 2
  2. Finish implementing network interface
  3. Continue RealAudio decoding
  4. Begin implementing RealAudio decoding on Motorola processor
  5. Begin audio decompression using a Windows PC
  • Week 6October 25 – October 29
  1. Continue RealAudio implementation on Motorola processor
  2. Continue decompression implementation
  • Week 7November 1 – November 5
  1. Bi-Weekly 3
  2. Finish implementation of RealAudio decoding on Motorola processor
  3. Continue audio decompression, begin implementing on Motorola processor
  • Week 8November 8 – November 12
  1. Finish audio decompression
  2. Begin experimenting with DAC
  • Week 9November 15 – November 19
  1. Bi-Weekly 4
  2. Implement DAC
  3. Experiment with RCA line out logic
  4. Begin LCD implementation
  • Week 10November 22 – November 26
  1. Thanksgiving
  2. Finish RCA line out
  3. Finish LCD
  4. Combine individual components (LCD, network interface, decoding/decompression software, DAC, RCA line out)
  • Week 11November 29 – December 3
  1. Finish integration
  2. Testing, testing, testing!
  • Week 12December 6 – December 10
  1. Final Presentation

Component / 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12
Network interface / X / X / X / X
RealAudio decoding / X / X / X / X / X / X
Audio decompression / X / X / X / X
Digital-to-Audio conversion / X / X
RCA line out / X / X
LCD interface / X / X
Integration / X / X
Testing / X
Final Presentation / X

References

Introduction to TCP/IP –

gopher://gopher-chem.ucdavis.edu/11/Index/Internet_aw/Intro_the_Internet/intro.to.ip/

RealAudio Information –

Motorola –

483 Home Page –

Analog Devices –

Xilinx Home Page -

1