Methods and apparatus for distributing live performances on MIDI devices via a non-real-time network protocol
First Claim
1. A MIDI track, the MIDI track comprising:
- a sequence of MIDI events, each event includingan event message; and
a time stamp, the time value in each time stamp of each event being relative to the same single event in the sequence.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for distributing MIDI tracks across a network using non-real-time protocols such as TCP/IP. Included are techniques for producing MIDI tracks from MIDI streams as the MIDI streams are themselves produced and distributing the MIDI tracks across the network, techniques for dealing with the varying delays involved in distributing the tracks using non-real-time protocols, and techniques for saving the controller state of a MIDI track so that a user may begin playing the track at any point during its distribution across the network. Network services based on these techniques include distribution of continuous tracks of MIDI music for applications such as background music, distribution of live recitals via the network, and participatory music making on the network ranging from permitting the user to "play along" through network jam sessions to using the network as a distributed recording studio.
102 Citations
27 Claims
-
1. A MIDI track, the MIDI track comprising:
a sequence of MIDI events, each event including an event message; and a time stamp, the time value in each time stamp of each event being relative to the same single event in the sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
20. A method of generating a first MIDI stream or a second MIDI track from a first MIDI track such that a MIDI device which is playing the first MIDI stream or a second MIDI stream produced from the second MIDI track begins playing at a given point which is not at the beginning of the first MIDI track, the method comprising the steps of:
-
in a portion of the first MIDI track that precedes the given point, reading MIDI event messages from the first MIDI track that define a starting state for the MIDI device; placing MIDI event messages that produce the defined starting state in the MIDI device but do not cause the MIDI device to play at the beginning of the first MIDI stream or the second MIDI track; and beginning at the given point, placing MIDI event messages from the first MIDI track that do cause the MIDI device to play in the first MIDI stream or second MIDI track. - View Dependent Claims (21, 22, 23, 24)
-
-
25. An improved MIDI track, the improvement comprising:
control state information associated with the MIDI track but distinct therefrom, the control state information containing information from which a starting state at a given point in the MIDI track other than the beginning thereof may be produced for a MIDI device which is playing the track, whereby the MIDI device may begin playing the MIDI track at a point other than the beginning thereof. - View Dependent Claims (26, 27)
Specification