1. Field of the Invention
The present invention relates to a data communication apparatus and a data communication method in which data of low speed specifications are transmitted using a transmission line of high speed specifications, and a program for implementing the method.
2. Description of Related Art
Personal computers are generally equipped with an IEEE 1394 serial bus that is an interface of high speed specifications, or a USB (Universal Serial Bus) that is an interface of medium speed specifications, and data of low speed specifications such as MIDI (Musical Instrument Digital Interface) data are transmitted and received via these interfaces. For example, the data transfer rate of the IEEE 1394 serial bus is 100–400 Mbps, and the data transfer rate of the USB is approximately 10 Mbps. On the other hand, MIDI Standards prescribes that 8 bit data (including 1 bit for stop bit) should be transferred at a reference clock frequency of 31.25 kHz , that is, the data transfer rate is approximately 300 kbps.
When MIDI data are generated using a sequence program on a personal computer, complicated control change data or data of a number of channels exceeding 16 channels, that is, data whose required processing speed exceeds the above-mentioned reference clock according to MIDI Standards, can be frequently generated. Even such data whose required processing speed exceeds the reference clock according to MIDI Standards can be transmitted to an external apparatus using the IEEE 1394 serial bus or the USB. However, if the external apparatus is a so-called MIDI apparatus (an apparatus according to MDI Standards), it may fail to perfectly receive data transmitted thereto at a transfer rate in excess of the reference clock according to MIDI Standards. This can lead to inadequate data processing.
It is an object of the present invention to provide a data communication apparatus and a data communication method that are capable of properly transmitting and receiving data of low speed specifications such as MIDI data even via a transmission line of high speed specifications such as an IEEE 1394 serial bus, and hence capable of properly processing the data, and a program for implementing the method.
To attain above-described object, in a first aspect of the present invention, there is provided a data communication apparatus that transmits data to a data receiving apparatus having a data processing section that processes received data at a predetermined processing speed, comprising a data generating device that is capable of generating data to be transmitted, at a higher speed than the predetermined processing speed, a speed control device that outputs the generated data at an output speed adjusted to the predetermined processing speed, and a transmission device that transmits the output data at a higher speed than the predetermined processing speed.
According to the first aspect of the present invention, the speed control device limits data input to the transmission device according to the processing speed of the data processing section of the data receiving apparatus. The transmission device transmits data to the data processing section. The input of the data to the data processing section is adjusted to the processing speed of the data processing section. Thus, even if the data transfer rate is high, data is not supplied to the data processing section at a rate in excess of the processing capacity of the data processing section, and the data receiving apparatus will not fail to receive the transmitted data.
To attain the above object, in a second aspect of the present invention, there is provided a communication apparatus that transfers received data to a data receiving apparatus having a data processing section that processes the received data at a predetermined processing speed, comprising a receiving device that receives data to be processed by the data processing section at a higher speed than the predetermined processing speed, and a transfer device that transfers the data received by the receiving device to the data receiving apparatus at a speed adjusted to the predetermined processing speed.
According to the second aspect of the present invention, even when data is transmitted at a high speed to the data communication apparatus, the transfer device limits the speed at which the data is transferred to the data processing section of the data receiving apparatus. Thus, data is not supplied to the data receiving apparatus at a rate in excess of the processing capacity of the data processing section. Therefore, data of low speed specifications can be reliably transmitted and received using a communication line of high speed specifications without failure to receive the data by the data receiving apparatus.
Preferably, in the first aspect, the data generating device generates MIDI data, and the transmission device transmits the MIDI data via one of an IEEE1394 serial bus and a USB.
Also preferably, in the first aspect, the speed control device controls the output speed based on a predetermined clock.
Preferably, in the second aspect, the data is MIDI data, and the transfer device transmits the MIDI data via one of an IEEE1394 serial bus and a USB.
To attain the above object, in a third aspect of the present invention, there is provided a data communication method executed by a data communication apparatus that transmits data to a data receiving apparatus having a data processing section that processes received data at a predetermined processing speed, comprising a data generating step of generating data to be transmitted, at a higher speed than the predetermined processing speed, a speed control step of outputting the generated data at an output speed adjusted to the predetermined processing speed, and a transmission step of transmitting the output data at a higher speed than the predetermined processing speed.
To attain the above object, in a fourth aspect of the present invention, there is provided a data communication method executed by a data communication apparatus that transfers received data to a data receiving apparatus having a data processing section that processes the received data at a predetermined processing speed, comprising a receiving step of receiving data to be processed by the data processing section at a higher speed than the predetermined processing speed, and a transfer step of transferring the data received by the receiving device to the data receiving apparatus at a speed adjusted to the predetermined processing speed.
To attain the above object, in a fifth aspect of the present invention, there is provided a program executed by a data communication apparatus that transmits data to a data receiving apparatus having a data processing section that processes received data at a predetermined processing speed, comprising a data generating module for generating data to be transmitted, at a higher speed than the predetermined processing speed, a speed control module for outputting the generated data at an output speed adjusted to the predetermined processing speed, and a transmission module for transmitting the output data at a higher speed than the predetermined processing speed.
To attain the above object, in a sixth aspect of the present invention, there is provided a program executed by a data communication apparatus that transfers received data to a data receiving apparatus having a data processing section that processes the received data at a predetermined processing speed, comprising a receiving module for receiving data to be processed by the data processing section at a higher speed than the predetermined processing speed, and a transfer module for transferring the data received by the receiving device to the data receiving apparatus at a speed adjusted to the predetermined processing speed.
The above and other objects, features, and advantages of the invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.
The present invention will now be described in detail with reference to the drawings showing embodiments thereof.
The data communication apparatus according to the present embodiment is adapted to transmit MIDI (Musical Instrument Digital Interface) data in an isochronous mode. The isochronous mode is a mode for transmitting data such as MIDI data without handshaking.
A transmission data generating means 1 is implemented, for example, by an automatic performance sequence program operating on a personal computer and having a function of generating MIDI data at a period shorter than the MIDI reference clock of 31.25 kHz (which corresponds to a period of 32 μ sec). Data (MIDI data) generated by the transmission data generating means 1 is buffered in a transmission FIFO 2. The data buffered in the transmission FIFO 2 is read out by a transmitting time interval limiting means 3 that controls the time interval of transmitting data, and is input to a high speed communication data transmitting section 5. A transmitting time interval-regulating signal generating means 3a that generates a data transmitting time interval-regulating signal, is connected to the transmitting time interval limiting means 3. The transmitting time interval limiting means 3 and the transmitting time interval-regulating signal generating means 3a may be each implemented by hardware, or alternatively, may be implemented by software that can operate on the personal computer. The transmission FIFO 2 may also be implemented by a RAM of the personal computer.
The transmitting time interval-regulating signal generating means 3a generates a 31.25 kHz clock pulse signal that is the reference clock according to MIDI Standards, and outputs it to the transmitting time interval limiting means 3. In accordance with the input clock pulse, the transmitting time interval limiting means 3 reads out the MIDI data buffered in the transmission FIFO 2, and delivers the MIDI data to the high speed communication data transmitting section 5 at time intervals corresponding to the input clock pulse.
The high speed communication data transmitting section 5, a high speed communication path 6 and a high speed communication data receiving section 7 constitute high speed communication means according to IEEE 1394 Standards, for example, and can transmit and receive data at a transfer rate of 100–400 Mbps, that is, several hundreds times as fast as the data transfer rate according to MIDI Standards. The high speed communication data transmitting section 5 transmits the MIDI data that is input from the transmitting time interval limiting means 3 to the high speed data receiving section 7 via the high speed communication path 6. Strictly speaking, this transmission and reception processing should be carried out such that the required frequency band is guaranteed so as to avoid variation of the data transfer rate. However, the transfer rate is much faster than the reference clock 31.25 kHz according to MIDI Standards, and therefore it can be considered that the processing is completed in an instant with no time lag.
The high speed communication data receiving section 7 receives the MIDI data sent from the high speed communication data transmitting section 5 via the high speed communication path 6, and delivers the data to a low speed communication data transmitting section 8. Here, the high speed communication data receiving section 7 and the low speed communication data transmitting section 8 constitute an apparatus separate from the above-mentioned apparatus (for example, a personal computer) including the communication data generating means 1. The low speed communication data transmitting section 8 buffers data that are input from the high speed communication data receiving section 7, converts the data into a data format according to MIDI Standards, and sends the same out to a low speed communication path, not shown, such as a MIDI interface. A MIDI tone generator or the like, not shown, is connected to the opposite end of the low speed communication path. The low speed communication data sanding section 8 corresponds to the data processing means (data processing section) of the present invention. A MIDI tone generator may be directly connected as the data processing means to the high speed communication data receiving section 7, while the low speed communication data sanding section 8 is omitted.
By thus limiting the communication speed on the transmitting side (transmitting time interval-regulating signal generating means 3a and transmitting time interval limiting means 3), MIDI data of low speed specifications are sent via the high speed communication path 6, and therefore the apparatus of low speed specifications on the receiving side can reliably receive the transmitted data without fail. The high speed communication path 6 is not limited to an IEEE 1394 serial bus, but may be a USB, or may be ISDN (Integrated Services Digital Network), ADSL (Asymmetric Digital Subscriber Line), or Ethernet or IEEE802.11 (so-called wireless LAN). The transmitted/received data is not limited to MIDI data.
The transmission data generating means 1 can generate data faster than the reference clock according to MIDI Standards. In general, data are not always generated continuously at a regular pace, but intermittently at time intervals. Thus, even if data are generated at a high rate, the accumulated data can be sent out while the data generation is interrupted, so that all data can be transmitted reliably without fail.
When first data is generated by the transmission data generating means 1 after interruption of the data generation and input via the transmission FIFO 2, the transmitting time interval limiting means 3 may reset the clock and start counting in timing of the first data being input, so as to minimize the time lag.
As described above, according to the present embodiment, the transfer rate of data of low speed specifications that is generated at a high rate is regulated to a low rate before being sent to the high speed communication path, whereby failure to receive the transmitted data by the receiving side can be prevented. Alternatively, the transfer rate of data may be adapted to low-speed specifications on the receiving side of the high speed communication path, so that a large amount of data can be transmitted at a high rate via the high speed communication path. In this case, the data transfer rate of the high speed communication path need not be constant, so long as it is higher than that of a low speed communication path.
The high speed communication data receiving section 14 delivers the received data to a transfer time interval limiting means 15. The transfer time interval limiting means 15 includes a receiving buffer and a transfer time interval-regulating signal generating means, neither of which is shown. The transfer time interval limiting means 15 buffers MIDI data that is input at a high rate, and outputs the data at time intervals of 31.25 kHz which is the reference clock frequency according to MIDI Standards, the data being converted into a data format according to MIDI Standards.
By thus limiting the data transfer rate on the receiving side, even MIDI data of low speed specifications which are transmitted at a high rate via the high speed communication path 6 such as an IEEE 1394 serial bus can be received reliably without fail. Further, the data can be transferred in a format and at a rate according to MIDI Standards. The high speed communication path 6 is not limited to an IEEE1394 serial bus, but may be a USB, ISDN, ASDL, Ethernet or IEEE802.11 (so-called Wireless LAN). The transmitted/received data is not limited to MIDI data.
The transmission data generating means 11 can generate data faster than the reference clock according to MIDI Standards. In general, data are not always generated continuously at a regular pace, but intermittently at time intervals. Thus, even if data are generated at a high rate, the accumulated data can be sent out while the data generation is interrupted, so that all data can be transmitted reliably without fail.
When first data is generated by the high speed communication data receiving section 14 after interruption of the data generation and input, the transfer time interval limiting means 15 may reset the clock and start counting in timing of the first data being input, so as to minimize the time lag.
In the arrangement shown in
In the above first-described embodiment, the clock generated by the transmitting time interval-regulating signal generating means 3a is assumed to be the reference clock (31.25 kHz) according to MIDI Standards. The clock generated by the transmitting time interval-regulating signal generating means 3a may be a clock having a frequency as high as 1/N of the reference clock (31.25 kHz). In this case, N MIDI signals are buffered and input to the high speed communication data transmitting section 5, and N MIDI signals that are transmitted via the high speed communication path 6 are decomposed on the receiving side, and are subjected to the same reception and transfer processing as in the above-described embodiment.
It is to be understood that the object of the present invention may also be accomplished by using a program as software which realizes the functions of the above described embodiment.
Further, it is to be understood that that the present invention may be implemented by supplying a system or an apparatus with a storage medium in which a program code of software which realizes the functions of the above described embodiment is stored, and causing a computer (or CPU or MPU) of the system or apparatus to read out and execute the program code stored in the storage medium.
In this case, the program code read out from the storage medium realizes the functions of the above described embodiment, so that the storage medium storing the program code also constitutes the present invention.
The storage medium for supplying the program code may be, for example, a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a non-volatile memory card, or a ROM. The program code may be supplied from a server computer through other MIDI equipment or communication network.
Further, it is to be understood that the functions of the above described embodiment may be accomplished not only by executing a program code read out by a computer, but also by causing an OS (Operating System) or the like which operates on the computer to perform a part or all of the actual operations based on instructions of the program code.
Further, it is to be understood that the functions of the above described embodiment may be accomplished by writing a program code read out from the storage medium into an expansion board inserted into a computer or a memory provided in an expansion unit connected to the computer and then causing a CPU, etc. provided in the expansion board or the expansion unit to perform a part or all of the actual operations based on instructions of the program code.
It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the invention is to cover all modifications, alternate constructions and equivalents falling within the spirit and scope of the invention as expressed in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2001-064926 | Mar 2001 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5933430 | Osakabe et al. | Aug 1999 | A |
6088364 | Tokuhiro | Jul 2000 | A |
6404770 | Fujimori et al. | Jun 2002 | B1 |
Number | Date | Country |
---|---|---|
05-075666 | Mar 1993 | JP |
07-050703 | Feb 1995 | JP |
9-116593 | May 1997 | JP |
09-281961 | Oct 1997 | JP |
10-031484 | Feb 1998 | JP |
10-200582 | Jul 1998 | JP |
Number | Date | Country | |
---|---|---|---|
20020128824 A1 | Sep 2002 | US |