US20050100023A1 - Isochronous audio network software interface - Google Patents

Isochronous audio network software interface Download PDF

Info

Publication number
US20050100023A1
US20050100023A1 US10/704,164 US70416403A US2005100023A1 US 20050100023 A1 US20050100023 A1 US 20050100023A1 US 70416403 A US70416403 A US 70416403A US 2005100023 A1 US2005100023 A1 US 2005100023A1
Authority
US
United States
Prior art keywords
isochronous audio
audio
isochronous
network
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/704,164
Inventor
Paul Buckwalter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harman International Industries Inc
Original Assignee
Harman International Industries Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harman International Industries Inc filed Critical Harman International Industries Inc
Priority to US10/704,164 priority Critical patent/US20050100023A1/en
Assigned to HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED reassignment HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BUCKWALTER, PAUL BENJAMIN
Priority to US10/578,766 priority patent/US7917642B2/en
Priority to CN200480036223.8A priority patent/CN1890626A/en
Priority to PCT/US2004/036881 priority patent/WO2005048125A2/en
Priority to EP04800774A priority patent/EP1685477A2/en
Priority to JP2006538497A priority patent/JP2007520096A/en
Publication of US20050100023A1 publication Critical patent/US20050100023A1/en
Priority to US13/039,898 priority patent/US8583269B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Definitions

  • This invention relates to an interface, and more particularly, to a software interface that communicates uncompressed isochronous audio.
  • Some audio systems communicate uncompressed data across real-time, digital audio networks. These networks are considered isochronal when audio devices on the network respond to a clock signal in a manner similar to a synchronous serial communication system. The networks rely on dedicated hardware to interface audio devices.
  • This invention provides a system that includes a network interface.
  • the network interface is compatible with known operating systems and may receive isochronous audio packets and other data.
  • the system may include software that extracts audio data from isochronous audio packets.
  • FIG. 2 is a second isochronous audio controller.
  • FIG. 4 is a transmission flow chart for an isochronous audio driver.
  • FIG. 5 is a reception flow chart for an isochronous audio driver.
  • the isochronous audio controller 100 may include a network interface 102 , a memory 104 , a processor 106 , and a user interface 108 .
  • the network interface 102 connects the isochronous audio controller 100 to another device and may be a card or a socket that transfers information from one place to another.
  • the network interface 102 may include a PCMCIA card, an ISA card, a PCI card, a networking circuit or another device. These devices may provide network connectivity in accordance with a standard, such as an Institute of Electrical and Electronics Engineers (“IEEE”) 802 standard, an Ethernet standard, an IEEE 1394 standard, a wireless Ethernet standard, a Fiber Distributed Data Interface (“FDDI”) standard, or a similar standard.
  • IEEE Institute of Electrical and Electronics Engineers
  • Ethernet such as an IEEE 1394 standard, a wireless Ethernet standard, a Fiber Distributed Data Interface (“FDDI”) standard, or a similar standard.
  • FDDI Fiber Distributed Data Interface
  • the network interface 102 operates at a frequency of about 100 Mbps or higher.
  • the network 116 may conform to one of these standards.
  • the memory 104 is a medium that preserves data for retrieval. It may include a hard disk drive, a compact disc drive, a digital versatile disc drive, a Random Access Memory (“RAM”), a Read Only Memory (“ROM”), a Programmable Read-Only Memory (“PROM”), an Electrically Erasable Programmable Read-Only Memory (“EEPROM”), a flash memory, or any other digital storage device.
  • the processor 106 may include a Central Processing Unit (“CPU”) such as an Intel Pentium® microprocessor, a Sun SPARC® microprocessor, a Motorola microprocessor, an International Business Machines (IBM) processor, or any other processor.
  • CPU Central Processing Unit
  • the user interface 108 may include software or hardware that enables a user to access an application.
  • the user interface 108 may include an absolute pointing device, a relative pointing device, or a physical pointing device.
  • Other cursor control devices may also be used including a keyboard and a touch screen system.
  • the isochronous audio software 114 may conform to an isochronous audio specification to facilitate communication with other isochronous audio devices.
  • the isochronous audio software 114 may process isochronous audio data, play audio data, and/or save audio data in a recordable medium.
  • the isochronous audio software 114 may also receive audio data from a medium, such as a hard disk, or another source, such as a microphone, and create and send audio data to the network drivers 110 for transmission over the network 116 .
  • the isochronous audio controller 200 may include a network interface 202 , a memory 204 , a processor 206 , and a user interface 208 .
  • the network interface 202 , the memory 204 , the processor 206 , and the user interface 208 may have the same structure and functionality as the network interface 102 , the memory 104 , the processor 106 , and the user interface 108 described above.
  • the memory 204 may include layers of network software that provide network support.
  • the memory 204 may include a network interface driver 210 , a multiple protocol driver 212 , a protocol stack 214 , an Application Program Interface (“API”) 216 , and one or more applications 218 .
  • the memory 204 may also include isochronous audio software 220 .
  • the network interface driver 210 may be a hardware driver provided by the manufacturer of the network interface 202 , a hardware driver provided by an operating system vendor, or a hardware driver provided by a third party.
  • the multiple protocol drivers 212 may be a driver provided by the supplier of an operating system used with the isochronous audio controller 300 , or a similar abstraction layer provided by another party.
  • the protocol stack 214 comprises a set of protocols that work together on different levels to enable communication on a network.
  • the protocol stack 214 may be a protocol suite available from the supplier of an operating system, or may be a protocol stack provided by a third party.
  • the API 216 may be an API available from the supplier of the operating system, or may be an API provided by a third party.
  • the isochronous audio software 220 may include its own protocol stack and API.
  • the applications 218 may include many other user interfaces and applications, such as a browsers, news clients, e-mail clients, file servers, or other servers or clients.
  • the isochronous audio software 212 may process isochronous audio data, play audio data, and/or save audio data in a recordable medium.
  • the isochronous audio software 212 may also receive audio data from a medium, such as a compact disc, or another source, such as a tape deck or a radio receiver, and create and send audio data to the multiple protocol drivers 204 for transmission over the network 116 .
  • the isochronous audio controller 300 may include a network interface 302 , a memory 304 , a processor 306 , and a user interface 308 .
  • the memory 304 may include layers of network software that provide network support for the applications 318 .
  • the memory 304 may include a network interface driver 310 , a Network Device Interface Specification (NDIS) driver 312 , a TCP/IP stack 314 , a socket API 316 , and one or more applications 318 .
  • the isochronous audio controller 300 may also include an isochronous audio driver 320 and an isochronous audio application 322 .
  • the isochronous audio driver 320 and an isochronous audio application 322 may be integrated into a single isochronous audio software package 324 .
  • the network interface driver 310 may be a hardware driver provided by an operating system vendor, a hardware driver provided by the manufacturer of the network interface 302 , or a hardware driver provided by a third party.
  • the NDIS driver 312 may be a driver provided by the supplier of the operating system used with the isochronous audio controller 300 , or a similar network layer provided by another party.
  • the network interface driver 310 and NDIS driver 312 may be drivers available from the manufacturer of the network interface 302 , from a supplier of an operating system used in the isochronous audio controller 300 , or from a third party.
  • the TCP/IP stack 314 may be a protocol stack available from the supplier of the operating system, or may be a TCP/IP stack included with a firewall application or may be a stand alone protocol stack.
  • the socket API 316 may be an API available from the supplier of the operating system, or may be an API provided by a third party.
  • protocol stacks and APIs for other protocols such as IPX/SPX, NetBIOS, NetBEUI, AppleTalk, ATM and/or Token-Ring may also be used.
  • TCP/IP stack 314 and the socket API 316 are discussed.
  • the isochronous audio driver 320 includes its own protocol stack and API, and does not rely upon another protocol stack.
  • the applications 318 may include many other user interfaces and applications, such as a browsers, content providing clients, news clients, e-mail clients, file servers, or other servers or clients.
  • the isochronous audio driver 320 and an isochronous audio application 322 , or, alternatively, the isochronous audio software package 324 may process isochronous audio data, play audio data, save audio data in a recordable medium, receive audio data from a medium, and/or create and send audio data to the NDIS driver 312 for transmission over the network 116 .
  • the applications 318 do not communicate directly with the network interface 302 . Rather, the isochronous audio controller 300 includes a high-level network interface through the socket API 316 . The applications 318 send and receive network requests and responses to and from the socket API 316 , which communicates with the next lower layer.
  • the socket API 316 When the socket API 316 receives a request from one of the applications 318 , the socket API 316 formats the request and forwards the request to the TCP/IP stack 314 .
  • the TCP/IP stack 314 reformats the request as one or more data packets.
  • data packet refers to a variable or fixed length transmission unit that includes binary digits representing information other than isochronous audio data. The units of information may contain both data and a header including an identification number, source and destination addresses (including multicast addresses), and sometimes error control data. Data packets may include IP packets, UDP packets, Ethernet packets, and IPX packets.
  • isochronous audio packet describes packets of information that contain isochronous audio data. The data may be formatted to be transmitted over a network, and may contain a header having an identification number, source and destination addresses (including multicast addresses), and sometimes error control data.
  • the TCP/IP stack 314 forwards data packets to the NDIS driver 312 .
  • the NDIS driver 312 is a software layer that allows a plurality of protocol stacks to share one or more network interfaces 302 .
  • the NDIS driver 312 forwards data packets to the network interface driver 310 .
  • the network interface driver 310 is the lowest layer of the software.
  • the network interface driver 310 sends data packets directly to the network interface 302 .
  • the data packets travel in a reverse order of a request. That is, the data packets are first received by the network interface 302 , and are processed by the network interface driver 310 , the NDIS driver 312 , the TCP/IP stack 314 , and the socket API 316 .
  • the illustrative isochronous audio controller 300 includes the isochronous audio application 322 and an isochronous audio driver 320 .
  • the isochronous audio driver 320 provides an interface between the NDIS driver 312 and the isochronous audio application 322 .
  • the isochronous audio driver 320 may include, create, or access a transmit buffer 326 and a receive buffer 328 that temporarily store audio data.
  • the isochronous audio driver 320 determines whether the isochronous audio application 322 is transmitting audio data at 402 . This determination may assess if the isochronous audio controller 300 has been authorized to transmit isochronous audio packets over the network 116 . If the isochronous audio application 322 is not transmitting data, the isochronous audio driver 320 stops and waits for the next packet. At 404 , the isochronous audio driver 320 determines whether the received packet is a synchronization packet. An authorized transmitter may only transmit upon reception of a synchronization packet. If the received packet is not a synchronization packet, then the isochronous audio driver 320 stops processing and waits for the next packet.
  • the isochronous audio driver 320 determines whether the audio data in the transmit buffer 326 should be sent. It may be necessary to buffer audio data prior to a transmission so that there is enough audio data to fill an isochronous audio packet when a synchronization packet is received. If the audio data in the transmit buffer 326 is not ready to be sent, then the isochronous audio driver 320 stops until it receives the next packet.
  • the isochronous audio driver 320 prepares an isochronous audio packet and inserts the appropriate headers.
  • the headers may include information such as the resolution of the samples, the frequency of the samples, and how many channels (slots) of audio data are included in the isochronous audio packet.
  • Isochronous audio data may be pulse-code modulated (PCM), although other modulation schemes may be used. PCM resolutions may be about 16 bits, 20 bits, or 24 bits in length. Some sampling frequencies that may be used include 32 KHz, 44 KHz, 48 KHz, and 96 KHz among other acceptable sampling frequencies. In this example, the maximum number of channels per packet is eight.
  • the isochronous audio driver 320 adds a bundle number to the packet. Bundle numbers facilitate communication of multiple channels of audio data.
  • the isochronous audio driver 320 adds audio data from the transmit buffer 326 to the isochronous audio packet, and transmits the isochronous audio packet at 416 .
  • the isochronous audio packet is received by the NDIS driver 312 , it is conveyed to the network 116 through the network interface driver 310 and the network interface 302 .
  • the isochronous audio driver 320 determines whether the isochronous audio application 322 is currently receiving audio data at 502 . If it is not receiving audio data, then the isochronous audio driver 320 waits for the next packet. Otherwise, at 504 the isochronous audio driver 320 determines whether the received packet is an isochronous audio packet. If it is not an isochronous audio packet, the isochronous audio driver 320 stops until it receives the next packet. If the received packet is an isochronous audio packet, then at 506 the isochronous audio driver 320 determines whether the packet's bundle number is a bundle number that the isochronous audio application 322 is currently processing. If the packet's bundle number is not a bundle number that the isochronous audio application 322 is currently processing, the isochronous audio driver 320 stops until it receives the next packet.
  • the isochronous audio driver 320 extracts audio data from the packet and separates the audio data into slots or channels.
  • the isochronous audio driver 320 stores the audio data in the receive buffer 328 .
  • the isochronous audio driver 320 determines whether the audio data in the receive buffer 328 should be sent to the isochronous audio application 322 . If it should not be sent to the isochronous audio application 322 , then isochronous audio driver 320 stops until it receives the next packet.
  • the isochronous audio driver 320 transmits the audio data to the isochronous audio application 322 .
  • the isochronous audio driver 320 may run as a system process, so that it has a higher priority than some applications.
  • the isochronous audio driver 320 may be very “lean,” as shown in FIGS. 3-5 .
  • the direct communication between the isochronous audio driver 320 and the isochronous audio application 322 facilitates high-speed operation, so that the isochronous audio driver 320 is able to process (transmit and receive) 750 isochronous audio packets per second.

Abstract

A computer system includes a network interface that transmits and/or receives isochronous audio packets and data packets. The computer system may have isochronous audio software to extract audio data from the isochronous audio packets, or isochronous audio software to format audio data into isochronous audio packets. The software may extract data from the data packets.

Description

    BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • This invention relates to an interface, and more particularly, to a software interface that communicates uncompressed isochronous audio.
  • 2. Related Art
  • The transmission and reception of digital audio signals are becoming more common. Digital audio signals may be transmitted in a compressed format, or in an uncompressed format. While signal compression reduces the bandwidth needed to store and transmit digital audio signals, signal compression can cause perceivable delays and signal loss in some audio systems.
  • Some audio systems communicate uncompressed data across real-time, digital audio networks. These networks are considered isochronal when audio devices on the network respond to a clock signal in a manner similar to a synchronous serial communication system. The networks rely on dedicated hardware to interface audio devices.
  • One known proprietary system uses proprietary interfaces to control timing and other low-level processing tasks. These proprietary interfaces cannot communicate in a Transmission Control Protocol/Internet Protocol (“TCP/IP”) used by the Internet. A second interface is needed. Because multiple interfaces are required to transmit and receive digital audio signals and provide access to the Internet, proprietary systems may be expensive.
  • Therefore, there is a need for a system that can transmit or receive isochronous audio using a standard network interface.
  • SUMMARY
  • This invention provides a system that includes a network interface. The network interface is compatible with known operating systems and may receive isochronous audio packets and other data. The system may include software that extracts audio data from isochronous audio packets.
  • The system may also use software that formats audio data into isochronous audio packets. The isochronous audio packets may be formatted to many protocols, including a CobraNet specification.
  • Other systems, methods, features and advantages of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
  • FIG. 1 is a first isochronous audio controller.
  • FIG. 2 is a second isochronous audio controller.
  • FIG. 3 is a third isochronous audio controller.
  • FIG. 4 is a transmission flow chart for an isochronous audio driver.
  • FIG. 5 is a reception flow chart for an isochronous audio driver.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • First Isochronous Audio Controller
  • A first illustrative isochronous audio controller 100 is shown in FIG. 1. The isochronous audio controller 100 may include a network interface 102, a memory 104, a processor 106, and a user interface 108. The network interface 102 connects the isochronous audio controller 100 to another device and may be a card or a socket that transfers information from one place to another.
  • In FIG. 1, the network interface 102 may include a PCMCIA card, an ISA card, a PCI card, a networking circuit or another device. These devices may provide network connectivity in accordance with a standard, such as an Institute of Electrical and Electronics Engineers (“IEEE”) 802 standard, an Ethernet standard, an IEEE 1394 standard, a wireless Ethernet standard, a Fiber Distributed Data Interface (“FDDI”) standard, or a similar standard. Preferably, the network interface 102 operates at a frequency of about 100 Mbps or higher. Likewise, the network 116 may conform to one of these standards.
  • The memory 104 is a medium that preserves data for retrieval. It may include a hard disk drive, a compact disc drive, a digital versatile disc drive, a Random Access Memory (“RAM”), a Read Only Memory (“ROM”), a Programmable Read-Only Memory (“PROM”), an Electrically Erasable Programmable Read-Only Memory (“EEPROM”), a flash memory, or any other digital storage device. The processor 106 may include a Central Processing Unit (“CPU”) such as an Intel Pentium® microprocessor, a Sun SPARC® microprocessor, a Motorola microprocessor, an International Business Machines (IBM) processor, or any other processor.
  • The user interface 108 may include software or hardware that enables a user to access an application. The user interface 108 may include an absolute pointing device, a relative pointing device, or a physical pointing device. Other cursor control devices may also be used including a keyboard and a touch screen system.
  • The memory 104 may include network drivers 110, isochronous audio software 114, and applications 112. The network drivers 110 may provide low-level communications with network interface 102. Additionally, the network drivers 110 may support protocols such as a TCP/IP, IPX/SPX, NetBIOS, ATM, NetBEUI, AppleTalk, and Token-Ring. The network drivers 110 may also provide a software interface for the applications 112. The network drivers 110 may be drivers available from the manufacturer of the network interface 102, or from a third party. Illustratively, the isochronous audio controller 100 may include an operating system where the network drivers 100 implement the Open System Interconnection (OSI) model. The OSI model is a networking framework for implementing network protocols in seven layers. Packets or datagrams are passed from one layer to the next.
  • The isochronous audio software 114 may conform to an isochronous audio specification to facilitate communication with other isochronous audio devices. The isochronous audio software 114 may process isochronous audio data, play audio data, and/or save audio data in a recordable medium. The isochronous audio software 114 may also receive audio data from a medium, such as a hard disk, or another source, such as a microphone, and create and send audio data to the network drivers 110 for transmission over the network 116.
  • Second Isochronous Audio Controller
  • A second illustrative isochronous audio controller 200 is shown in FIG. 2. The isochronous audio controller 200 may include a network interface 202, a memory 204, a processor 206, and a user interface 208. The network interface 202, the memory 204, the processor 206, and the user interface 208 may have the same structure and functionality as the network interface 102, the memory 104, the processor 106, and the user interface 108 described above.
  • The memory 204 may include layers of network software that provide network support. The memory 204 may include a network interface driver 210, a multiple protocol driver 212, a protocol stack 214, an Application Program Interface (“API”) 216, and one or more applications 218. The memory 204 may also include isochronous audio software 220.
  • The network interface driver 210 may be a hardware driver provided by the manufacturer of the network interface 202, a hardware driver provided by an operating system vendor, or a hardware driver provided by a third party. The multiple protocol drivers 212 may be a driver provided by the supplier of an operating system used with the isochronous audio controller 300, or a similar abstraction layer provided by another party.
  • The protocol stack 214 comprises a set of protocols that work together on different levels to enable communication on a network. The protocol stack 214 may be a protocol suite available from the supplier of an operating system, or may be a protocol stack provided by a third party. Similarly, the API 216 may be an API available from the supplier of the operating system, or may be an API provided by a third party. (The isochronous audio software 220 may include its own protocol stack and API.) The applications 218 may include many other user interfaces and applications, such as a browsers, news clients, e-mail clients, file servers, or other servers or clients.
  • The isochronous audio software 212 may process isochronous audio data, play audio data, and/or save audio data in a recordable medium. The isochronous audio software 212 may also receive audio data from a medium, such as a compact disc, or another source, such as a tape deck or a radio receiver, and create and send audio data to the multiple protocol drivers 204 for transmission over the network 116.
  • Third Isochronous Audio Controller
  • A third illustrative isochronous audio controller 300 is shown in FIG. 3. The isochronous audio controller 300 may include a network interface 302, a memory 304, a processor 306, and a user interface 308.
  • The memory 304 may include layers of network software that provide network support for the applications 318. The memory 304 may include a network interface driver 310, a Network Device Interface Specification (NDIS) driver 312, a TCP/IP stack 314, a socket API 316, and one or more applications 318. The isochronous audio controller 300 may also include an isochronous audio driver 320 and an isochronous audio application 322. Alternatively, the isochronous audio driver 320 and an isochronous audio application 322 may be integrated into a single isochronous audio software package 324.
  • The network interface driver 310 may be a hardware driver provided by an operating system vendor, a hardware driver provided by the manufacturer of the network interface 302, or a hardware driver provided by a third party. The NDIS driver 312 may be a driver provided by the supplier of the operating system used with the isochronous audio controller 300, or a similar network layer provided by another party.
  • The network interface driver 310 and NDIS driver 312 may be drivers available from the manufacturer of the network interface 302, from a supplier of an operating system used in the isochronous audio controller 300, or from a third party. The TCP/IP stack 314 may be a protocol stack available from the supplier of the operating system, or may be a TCP/IP stack included with a firewall application or may be a stand alone protocol stack. Similarly, the socket API 316 may be an API available from the supplier of the operating system, or may be an API provided by a third party. In addition to or in place of the TCP/IP stack 314 and the socket API 316, protocol stacks and APIs for other protocols such as IPX/SPX, NetBIOS, NetBEUI, AppleTalk, ATM and/or Token-Ring may also be used. For simplicity, the TCP/IP stack 314 and the socket API 316 are discussed. In FIG. 3, the isochronous audio driver 320 includes its own protocol stack and API, and does not rely upon another protocol stack.
  • The applications 318 may include many other user interfaces and applications, such as a browsers, content providing clients, news clients, e-mail clients, file servers, or other servers or clients. The isochronous audio driver 320 and an isochronous audio application 322, or, alternatively, the isochronous audio software package 324, may process isochronous audio data, play audio data, save audio data in a recordable medium, receive audio data from a medium, and/or create and send audio data to the NDIS driver 312 for transmission over the network 116.
  • Standard TCP/IP Processing Example
  • As shown in FIG. 3, the applications 318 do not communicate directly with the network interface 302. Rather, the isochronous audio controller 300 includes a high-level network interface through the socket API 316. The applications 318 send and receive network requests and responses to and from the socket API 316, which communicates with the next lower layer.
  • When the socket API 316 receives a request from one of the applications 318, the socket API 316 formats the request and forwards the request to the TCP/IP stack 314. The TCP/IP stack 314 reformats the request as one or more data packets. The term “data packet” refers to a variable or fixed length transmission unit that includes binary digits representing information other than isochronous audio data. The units of information may contain both data and a header including an identification number, source and destination addresses (including multicast addresses), and sometimes error control data. Data packets may include IP packets, UDP packets, Ethernet packets, and IPX packets. The term “isochronous audio packet” describes packets of information that contain isochronous audio data. The data may be formatted to be transmitted over a network, and may contain a header having an identification number, source and destination addresses (including multicast addresses), and sometimes error control data.
  • The TCP/IP stack 314 forwards data packets to the NDIS driver 312. The NDIS driver 312 is a software layer that allows a plurality of protocol stacks to share one or more network interfaces 302. The NDIS driver 312 forwards data packets to the network interface driver 310. In this example, the network interface driver 310 is the lowest layer of the software. The network interface driver 310 sends data packets directly to the network interface 302.
  • When a response is received, the data packets travel in a reverse order of a request. That is, the data packets are first received by the network interface 302, and are processed by the network interface driver 310, the NDIS driver 312, the TCP/IP stack 314, and the socket API 316.
  • Isochronous Audio Processing Example
  • In FIG. 3, the illustrative isochronous audio controller 300 includes the isochronous audio application 322 and an isochronous audio driver 320. Like the TCP/IP stack 314 and the Socket API 316, the isochronous audio driver 320 provides an interface between the NDIS driver 312 and the isochronous audio application 322. The isochronous audio driver 320 may include, create, or access a transmit buffer 326 and a receive buffer 328 that temporarily store audio data.
  • In FIGS. 3 and 4, when an isochronous audio data packet is received from the NDIS driver 312, the isochronous audio driver 320 determines whether the isochronous audio application 322 is transmitting audio data at 402. This determination may assess if the isochronous audio controller 300 has been authorized to transmit isochronous audio packets over the network 116. If the isochronous audio application 322 is not transmitting data, the isochronous audio driver 320 stops and waits for the next packet. At 404, the isochronous audio driver 320 determines whether the received packet is a synchronization packet. An authorized transmitter may only transmit upon reception of a synchronization packet. If the received packet is not a synchronization packet, then the isochronous audio driver 320 stops processing and waits for the next packet.
  • If the received packet is a synchronization packet, then at 406 the isochronous audio driver 320 determines whether the audio data in the transmit buffer 326 should be sent. It may be necessary to buffer audio data prior to a transmission so that there is enough audio data to fill an isochronous audio packet when a synchronization packet is received. If the audio data in the transmit buffer 326 is not ready to be sent, then the isochronous audio driver 320 stops until it receives the next packet.
  • If audio data within the transmit buffer 326 should be sent, then at 408 the isochronous audio driver 320 prepares an isochronous audio packet and inserts the appropriate headers. The headers may include information such as the resolution of the samples, the frequency of the samples, and how many channels (slots) of audio data are included in the isochronous audio packet. Isochronous audio data may be pulse-code modulated (PCM), although other modulation schemes may be used. PCM resolutions may be about 16 bits, 20 bits, or 24 bits in length. Some sampling frequencies that may be used include 32 KHz, 44 KHz, 48 KHz, and 96 KHz among other acceptable sampling frequencies. In this example, the maximum number of channels per packet is eight.
  • At 410, the isochronous audio driver 320 adds a bundle number to the packet. Bundle numbers facilitate communication of multiple channels of audio data. At 412, the isochronous audio driver 320 adds audio data from the transmit buffer 326 to the isochronous audio packet, and transmits the isochronous audio packet at 416. When the isochronous audio packet is received by the NDIS driver 312, it is conveyed to the network 116 through the network interface driver 310 and the network interface 302.
  • In FIGS. 4 and 5, when an isochronous audio data packet is received, the isochronous audio driver 320 determines whether the isochronous audio application 322 is currently receiving audio data at 502. If it is not receiving audio data, then the isochronous audio driver 320 waits for the next packet. Otherwise, at 504 the isochronous audio driver 320 determines whether the received packet is an isochronous audio packet. If it is not an isochronous audio packet, the isochronous audio driver 320 stops until it receives the next packet. If the received packet is an isochronous audio packet, then at 506 the isochronous audio driver 320 determines whether the packet's bundle number is a bundle number that the isochronous audio application 322 is currently processing. If the packet's bundle number is not a bundle number that the isochronous audio application 322 is currently processing, the isochronous audio driver 320 stops until it receives the next packet.
  • When the packet has a bundle number that is currently being processed, at 508 the isochronous audio driver 320 extracts audio data from the packet and separates the audio data into slots or channels. At 510 the isochronous audio driver 320 stores the audio data in the receive buffer 328. At 512, the isochronous audio driver 320 determines whether the audio data in the receive buffer 328 should be sent to the isochronous audio application 322. If it should not be sent to the isochronous audio application 322, then isochronous audio driver 320 stops until it receives the next packet. If the audio data in the receive buffer 328 should be sent to the isochronous audio application 322, then at 514 the isochronous audio driver 320 transmits the audio data to the isochronous audio application 322. The isochronous audio driver 320 may run as a system process, so that it has a higher priority than some applications. The isochronous audio driver 320 may be very “lean,” as shown in FIGS. 3-5.
  • The direct communication between the isochronous audio driver 320 and the isochronous audio application 322 facilitates high-speed operation, so that the isochronous audio driver 320 is able to process (transmit and receive) 750 isochronous audio packets per second.
  • While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.

Claims (26)

1. A computer system, comprising:
a network interface operable to receive isochronous audio packets and data packets from a network; and
isochronous audio software that is executable to extract audio data from the isochronous audio packets received from a network.
2. The computer system of claim 1 further comprising network software executable to extract data from the data packets received from the network.
3. The computer system of claim 1 where the isochronous audio software comprises an isochronous audio driver.
4. The computer system of claim 1 where the isochronous audio software comprises an isochronous audio application.
5. The computer system of claim 1 where the data packets are formatted to a transmission control protocol/Internet protocol.
6. The computer system of claim 1 where the network is an Ethernet network and the network interface is an Ethernet network interface.
7. The computer system of claim 1 where the network interface conforms to an IEEE 802.3 standard.
8. The computer system of claim 1 where the network interface is adapted to transmit the isochronous audio packets to the network.
9. The computer system of claim 8 where the isochronous audio software is executable to format audio data into the isochronous audio packets.
10. The computer system of claim 1 where the isochronous audio packets are formatted in accordance with a CobraNet specification.
11. A computer system, comprising:
a network interface adapted to transmit isochronous audio packets to a network and configured to receive data packets from a network; and
isochronous audio software executable to format audio data into isochronous audio packets.
12. The computer system of claim 11 where the isochronous audio packets are formatted in accordance with a CobraNet specification.
13. The computer system of claim 11 comprising network software that is executable to extract data from the data packets received from the network.
14. The computer system of claim 11 where the isochronous audio software comprises an isochronous audio driver.
15. The computer system of claim 11 where the isochronous audio software comprises an isochronous audio application.
16. The computer system of claim 11 where the data packets are formatted to a transmission control protocol/Internet protocol.
17. The computer system of claim 11 where the network is an Ethernet network and the network interface is an Ethernet network interface.
18. A computer system, comprising:
a network interface;
an operating system that is executable to communicate with a network via the network interface according to a plurality of network protocols; and
isochronous audio software executable to communicate isochronous audio packets with the network via the network interface.
19. The computer system of claim 18 where one protocol of the plurality comprises a transmission control protocol/Internet protocol.
20. The computer system of claim 18 where the isochronous audio packets are formatted to a CobraNet specification.
21. A method of communicating isochronous audio packets over a network,
comprising:
receiving a packet with a network interface;
processing the packet with a network interface driver;
processing the packet with an NDIS driver; and
processing the packet with an isochronous audio driver.
22. The method of claim 21 where processing the packet with an NDIS driver includes determining whether the packet is an isochronous audio packet.
23. The method of claim 21 where processing the packet with an isochronous audio driver includes extracting audio data from the packet only if the packet is an isochronous audio packet.
24. The method of claim 22 where processing the packet with an isochronous audio driver comprises processing the audio data with an isochronous audio application.
25. An isochronous audio driver, comprising:
code executable to receive an isochronous audio packet from an operating system;
code executable to extract audio data from the isochronous audio packet; and
code executable to transmit the audio data to an isochronous audio application.
26. The isochronous audio driver of claim 25 further comprising:
code executable to receive audio data from an isochronous audio application;
code executable to format the audio data into an isochronous audio packet; and
code executable to send an isochronous audio packet to an operating system.
US10/704,164 2003-11-07 2003-11-07 Isochronous audio network software interface Abandoned US20050100023A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US10/704,164 US20050100023A1 (en) 2003-11-07 2003-11-07 Isochronous audio network software interface
US10/578,766 US7917642B2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
CN200480036223.8A CN1890626A (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
PCT/US2004/036881 WO2005048125A2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
EP04800774A EP1685477A2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
JP2006538497A JP2007520096A (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
US13/039,898 US8583269B2 (en) 2003-11-07 2011-03-03 Isochronous audio network software interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/704,164 US20050100023A1 (en) 2003-11-07 2003-11-07 Isochronous audio network software interface

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US10/578,766 Continuation-In-Part US7917642B2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
PCT/US2004/036881 Continuation-In-Part WO2005048125A2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
US57876607A Continuation-In-Part 2003-11-07 2007-05-04

Publications (1)

Publication Number Publication Date
US20050100023A1 true US20050100023A1 (en) 2005-05-12

Family

ID=34552061

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/704,164 Abandoned US20050100023A1 (en) 2003-11-07 2003-11-07 Isochronous audio network software interface
US10/578,766 Expired - Fee Related US7917642B2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
US13/039,898 Expired - Fee Related US8583269B2 (en) 2003-11-07 2011-03-03 Isochronous audio network software interface

Family Applications After (2)

Application Number Title Priority Date Filing Date
US10/578,766 Expired - Fee Related US7917642B2 (en) 2003-11-07 2004-11-08 Isochronous audio network software interface
US13/039,898 Expired - Fee Related US8583269B2 (en) 2003-11-07 2011-03-03 Isochronous audio network software interface

Country Status (5)

Country Link
US (3) US20050100023A1 (en)
EP (1) EP1685477A2 (en)
JP (1) JP2007520096A (en)
CN (1) CN1890626A (en)
WO (1) WO2005048125A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220432A1 (en) * 2003-11-07 2007-09-20 Buckwalter Paul B Isochronous Audio Network Software Interface
US20080109562A1 (en) * 2006-11-08 2008-05-08 Hariramanathan Ramakrishnan Network Traffic Controller (NTC)
US20100291901A1 (en) * 2003-11-13 2010-11-18 Voicecash Ip Gmbh Method for authentication of a user on the basis of his/her voice profile
CN111782177A (en) * 2020-07-10 2020-10-16 安徽芯智科技有限公司 Rtos-based audio stream output method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003284412A1 (en) * 2003-11-19 2005-06-08 National Institute Of Information And Communications Technology Analog signal i/o system utilizing network circuit
US8837529B2 (en) 2010-09-22 2014-09-16 Crestron Electronics Inc. Digital audio distribution
EP2608444B1 (en) * 2011-12-19 2014-10-22 GN Netcom A/S Method and system for synchronizing isochronous usb audio data to a rf communication device clock
CN103309680B (en) * 2013-07-03 2016-03-02 苏州科达科技股份有限公司 A kind of multimedia host layered design method and system
CN106375820B (en) * 2016-08-30 2018-07-06 京东方科技集团股份有限公司 The method and apparatus synchronized to audio and video frequency signal

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357511A (en) * 1993-03-22 1994-10-18 Peak Audio, Inc. Distributed processing in a digital audio mixing network
US5406634A (en) * 1993-03-16 1995-04-11 Peak Audio, Inc. Intelligent speaker unit for speaker system network
US5487167A (en) * 1991-12-31 1996-01-23 International Business Machines Corporation Personal computer with generalized data streaming apparatus for multimedia devices
US5761431A (en) * 1996-04-12 1998-06-02 Peak Audio, Inc. Order persistent timer for controlling events at multiple processing stations
US5761430A (en) * 1996-04-12 1998-06-02 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US20010004266A1 (en) * 1999-12-20 2001-06-21 Masakatsu Itsukaichi Computer system using a digital camera
US6339684B1 (en) * 1999-05-14 2002-01-15 Matsushita Graphic Communication Systems, Inc. Recording apparatus which judges whether a proper cartridge is attached thereto
US6483846B1 (en) * 1998-07-10 2002-11-19 Honeywell Inc. Middleware-based real-time communication system
US20070153774A1 (en) * 2002-12-17 2007-07-05 Tls Corporation Low Latency Digital Audio over Packet Switched Networks
US20070220432A1 (en) * 2003-11-07 2007-09-20 Buckwalter Paul B Isochronous Audio Network Software Interface

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339584B1 (en) 1996-04-12 2002-01-15 Cirrus Logic, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US6075796A (en) * 1997-03-17 2000-06-13 At&T Methods and apparatus for providing improved quality of packet transmission in applications such as internet telephony
FI103463B1 (en) * 1997-04-23 1999-06-30 Nokia Mobile Phones Ltd Computer and method of using the computer
US6191822B1 (en) * 1997-06-20 2001-02-20 Sony Corporation Method of and apparatus for separating audio and video data from a combined audio/video stream of data
US6675054B1 (en) * 1998-04-20 2004-01-06 Sun Microsystems, Inc. Method and apparatus of supporting an audio protocol in a network environment
US6519639B1 (en) * 1999-07-21 2003-02-11 Microsoft Corporation System and method for activity monitoring and reporting in a computer network
US20020071424A1 (en) * 2000-12-12 2002-06-13 Chiu King W. Packet voice telephony apparatus and method
US7051367B1 (en) * 2001-05-14 2006-05-23 Juniper Networks, Inc. Dynamically controlling packet processing
US20040268359A1 (en) * 2003-06-27 2004-12-30 Hanes David H. Computer-readable medium, method and computer system for processing input/output requests
US20060130144A1 (en) * 2004-12-14 2006-06-15 Delta Insights, Llc Protecting computing systems from unauthorized programs

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487167A (en) * 1991-12-31 1996-01-23 International Business Machines Corporation Personal computer with generalized data streaming apparatus for multimedia devices
US5406634A (en) * 1993-03-16 1995-04-11 Peak Audio, Inc. Intelligent speaker unit for speaker system network
US5357511A (en) * 1993-03-22 1994-10-18 Peak Audio, Inc. Distributed processing in a digital audio mixing network
US5761431A (en) * 1996-04-12 1998-06-02 Peak Audio, Inc. Order persistent timer for controlling events at multiple processing stations
US5761430A (en) * 1996-04-12 1998-06-02 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US6161138A (en) * 1996-04-12 2000-12-12 Peak Audio, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US6483846B1 (en) * 1998-07-10 2002-11-19 Honeywell Inc. Middleware-based real-time communication system
US6339684B1 (en) * 1999-05-14 2002-01-15 Matsushita Graphic Communication Systems, Inc. Recording apparatus which judges whether a proper cartridge is attached thereto
US20010004266A1 (en) * 1999-12-20 2001-06-21 Masakatsu Itsukaichi Computer system using a digital camera
US20070153774A1 (en) * 2002-12-17 2007-07-05 Tls Corporation Low Latency Digital Audio over Packet Switched Networks
US20070220432A1 (en) * 2003-11-07 2007-09-20 Buckwalter Paul B Isochronous Audio Network Software Interface

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070220432A1 (en) * 2003-11-07 2007-09-20 Buckwalter Paul B Isochronous Audio Network Software Interface
US7917642B2 (en) 2003-11-07 2011-03-29 Harman International Industries, Incorporated Isochronous audio network software interface
US20110153049A1 (en) * 2003-11-07 2011-06-23 Harman International Industries, Incorporated Isochronous audio network software interface
US8583269B2 (en) 2003-11-07 2013-11-12 Harman International Industries, Incorporated Isochronous audio network software interface
US20100291901A1 (en) * 2003-11-13 2010-11-18 Voicecash Ip Gmbh Method for authentication of a user on the basis of his/her voice profile
US8090410B2 (en) * 2003-11-13 2012-01-03 Voicecash Ip Gmbh Method for authentication of a user on the basis of his/her voice profile
US20080109562A1 (en) * 2006-11-08 2008-05-08 Hariramanathan Ramakrishnan Network Traffic Controller (NTC)
US9794378B2 (en) * 2006-11-08 2017-10-17 Standard Microsystems Corporation Network traffic controller (NTC)
US10749994B2 (en) 2006-11-08 2020-08-18 Standard Microsystems Corporation Network traffic controller (NTC)
CN111782177A (en) * 2020-07-10 2020-10-16 安徽芯智科技有限公司 Rtos-based audio stream output method

Also Published As

Publication number Publication date
US20070220432A1 (en) 2007-09-20
CN1890626A (en) 2007-01-03
JP2007520096A (en) 2007-07-19
WO2005048125A2 (en) 2005-05-26
US8583269B2 (en) 2013-11-12
EP1685477A2 (en) 2006-08-02
US7917642B2 (en) 2011-03-29
US20110153049A1 (en) 2011-06-23
WO2005048125A3 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
US8583269B2 (en) Isochronous audio network software interface
CN100508493C (en) Priority handling of voice over data in voice-over-internet protocol processor
US7233594B2 (en) Apparatus for transmitting/receiving wireless data and method thereof
US6278706B1 (en) Wireless packet data communication apparatus and method
US7684396B2 (en) Transmission apparatus having a plurality of network interfaces and transmission method using the same
US20060104278A1 (en) Apparatus and method for compressing headers in a broadband wireless communication system
EP1486039B1 (en) Method and apparatus for header compression in a wireless lan
US20030045316A1 (en) Point-to-point data communication implemented with multipoint network data communication components
EP1650913B1 (en) Method and apparatus for transmitting and receiving data via wireless universal serial bus (USB)
KR20030061827A (en) Reduction of protocol, overhead on the connection between base station controller and base transceiver station of a cellular radio network
KR20070053367A (en) Applying session services based on packet flows
US6674731B1 (en) Transmission and reception of TCP/IP data over a wireless communication channel
EP2241128B1 (en) Method for using bluetooth module to process non-bluetooth signals
WO1997008838A2 (en) Method and apparatus for modifying a standard internetwork protocol layer header
EP2436161B1 (en) Apparatus and method for supporting higher data rates on links with variable frame sizes
US20020089963A1 (en) Wireless communication device, wireless communication system using the same, and communication method therefor
US6650636B1 (en) Transmission and reception of TCP/IP data over a wireless communication channel
EP1457014A1 (en) Improved hardware arrangement, terminal, and method for transferring audio signal in packet-switched communications network
CN1666489B (en) Convergence layers for network devices and method for transmitting data traffic
US6693899B1 (en) System and method for facilitating communication between dissimilar radio voice devices
US20050111385A1 (en) Multimedia communication device using software and hardware protocol stacks and communication method thereof
US20030163521A1 (en) Program, storage medium, information transmission apparatus, and information transmission method
CN114079675B (en) Message processing method, device, terminal equipment and mobile broadband internet surfing equipment
EP1337928B1 (en) Network and method for invisible proxy and hooking systems with wireless communication
US7062574B1 (en) System and method for selectively detaching point-to-point protocol header information

Legal Events

Date Code Title Description
AS Assignment

Owner name: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED, CAL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BUCKWALTER, PAUL BENJAMIN;REEL/FRAME:014690/0006

Effective date: 20031023

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION