Claims
- 1. A method of interactive, synchronized, collaborative real time, playing of MIDI data by MIDI synthesizers and MIDI instruments across an Internet network coupling remote computer systems comprising the steps of:synchronizing all said remote computer systems to a single clock, determining a time delay of said Internet network, creating MIDI data at at least one of the remote computer systems, time stamping said MIDI data using said clock at the at least one remote computer system, receiving the MIDI data with said time stamp from the at least one remote computer system, and applying said time delay to the received MIDI data to synchronize the received MIDI data.
- 2. The method of claim 1 further comprising the step of:time ordering said MIDI data in accordance with said time stamping from each remote computer system sending MIDI data.
- 3. The method of claim 2 further comprising the step of:sending said time ordered MIDI data to at least one of a synthesizer and a MIDI instrument, the synthesizer and the MIDI instrument playing the MIDI data from all the remote computer systems in correct time synchronization.
- 4. Apparatus for interactive, collaborative, real time, playing of MIDI data by MIDI synthesizers and MIDI instruments across a an Internet network coupling remote computer systems, comprising:means for synchronizing all said remote computer systems to a single clock, means for determining a time delay of said network, means for creating MIDI data at at least one of the remote computer systems, means for time stamping said MIDI data using said clock at the at least one remote computer system, means for receiving the MIDI data with said time stamp from the at least one remote computer system, and means for applying said time delay to the received MIDI data to synchronize the received MIDI data.
- 5. The apparatus defined in claim 4 further comprising:means for time ordering said MIDI data in accordance with said time stamping from each remote computer system sending MIDI data.
- 6. The apparatus defined in claim 5 further comprising:means for sending said time ordered MIDI data to at least one of a synthesizer and a MIDI instrument, the synthesizer and the MIDI instrument playing the MIDI data from all the remote computer systems in correct time synchronization.
- 7. A method of synchronizing MIDI data packets received from remote computers over a time synchronized internet network, comprising the steps, executed at a local computer, of:determining a delay time in said network, receiving MIDI data packets from the remote computers, the MIDI data packets having time stamps indicating a time of creation of said MIDI data packets, and adding the delay time to the received MIDI data packets to synchronize the received MIDI data packets.
- 8. Apparatus for synchronizing MIDI data packets received from remote computers over a time synchronized an Internet network, comprising:means for determining a delay time in said network, means for receiving MIDI data packets from the remote computers, the MIDI data packets having time stamps indicating a time of creation of said MIDI data packets, and means for applying the delay time to the received MIDI data packets to synchronize the received MIDI data packets.
- 9. A method of synchronizing MIDI data received at a computer system over an Internet network coupling the computer system to remote computer systems comprising the steps of:synchronizing all said computer systems to a single clock, time stamping MIDI data using said clock as said MIDI data is created at one of the remote computer systems, determining a time delay of said Internet network, receiving the MIDI data having said time stamp at the computer system, and applying said time delay to synchronize the received MIDI data.
- 10. The method as defined in claim 1 further comprising the steps of:wrapping said MIDI data having the time stamp with information identifying the MIDI data structure, creating transfer control packets, and incorporating said wrapped MIDI data into the transfer control packets for transmission on the network.
- 11. The method of claim 1 further comprising the steps of:accessing the MIDI data, adding information to the MIDI data, said information identifying the MIDI data structure to be sent over said network, creating transfer control protocol packets, incorporating said MIDI data into the transfer control packets, and transmitting said transfer control packets to the network.
- 12. The method of claim 11 wherein the receiving step includes the substeps of:receiving the transfer control packets from the network, identifying the MIDI data structure, extracting the MIDI data from the transfer control packets, and creating sound from said MIDI data.
- 13. The method of claim 11 wherein the receiving step includes the substeps of:receiving the transfer control packets, extracting the MIDI data from the transfer control packets, and storing said MIDI data.
- 14. Apparatus for synchronizing MIDI data received at a computer system over an Internet network coupling the computer system to remote computer systems, comprising:means for synchronizing all said computer systems to a single clock, means for time stamping MIDI data using said clock as said MIDI data is created at at least one of the remote computer systems, means for determining a time delay of said network, means for receiving the MIDI data having said time stamp at the computer system, and means for applying said time delay to said received MIDI data to synchronize the received MIDI data.
- 15. The apparatus as defined in claim 14 further comprising:means for wrapping said MIDI data having the time stamp with information identifying the MIDI data structure, means for creating transfer control packets, and means for incorporating said wrapped MIDI data into the transfer control packets for transmission on the network.
- 16. A networked computer system for playing MIDI data from remote computer systems and from local MIDI apparatuses, the network computer system and the remote computer systems being coupled via a an Internet network, comprising:means for receiving a network clock providing network time data, means for synchronizing said networked computer system to the network clock, means for incorporating the time data with the MIDI data from the local MIDI apparatuses, means for determining a delay time representing communication delays on said network, means for incorporating said delay time with said MIDI data from the remote computer systems, means for organizing said MIDI data from the remote computer systems and from the local MIDI apparatuses into a time ordered sequence using the time data and the delay time, and means for playing the organized MIDI data.
- 17. A memory, comprising:local MIDI data created locally; transfer control packets including: remote MIDI data received from the remote sites, time data including a time of creation of said local and remote MIDI data, network time delay data including a time delay of the remote MIDI data received from the remote sites, and information identifying a data structure of the local and remote MIDI data, such that the local and remote MIDI data can be extracted from the data structure for synchronized playing using the time data and the network time delay data.
RELATED APPLICATIONS
Priority is claimed under 35 U.S.C. § 119 (e) and § 120 for the present invention from Provisional Application Ser. No. 60/032,957 filed on Dec. 13, 1996 of the same title and inventors as the present application.
US Referenced Citations (9)
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/032957 |
Dec 1996 |
US |