← Back to Patent Explorer
US6067566A Expired / Lapsed US ⏱️ 0.0 years remaining

Methods and apparatus for distributing live performances on MIDI devices via a non-real-time network protocol

Assignee: LIVE UPDATE Inc
•
Filing: 1996-10-17
•
Granted: 2000-05-23
•
Expires: 2016-10-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 William A. Moline

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 07:02
CPC Classifications
G; G10; G10H; G10H1/00; G10H1/0033; G10H1/0041; G10H1/0058; G10H1/0066; H; H04; H04K; H04K1/00; G10H2240/00; G10H2240/171; G10H2240/281; G10H2240/295; G10H2240/305

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 42 words
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.
Claim 2
Dependent Claim 42 words
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.
Claim 3
Dependent Claim 19 words
The MIDI track set forth in claim 1 wherein: the single event is the first event in the sequence.
Claim 4
Dependent Claim 37 words
A MIDI server comprising: a track reader for reading the MIDI track set forth in any of claim 1 or 2 and using a non-real time protocol to provide the MIDI track to one or more clients.
Claim 5
Dependent Claim 40 words
The MIDI server set forth in claim 3 further comprising: a receiver that receives the MIDI track in the MIDI server; and the track reader reads the MIDI track while the MIDI track is being received in the MIDI server.
Claim 6
Dependent Claim 55 words
The MIDI server set forth in claim 3 wherein: the track reader provides the MIDI track to a given one of the clients beginning at a given event other than the first event in the MIDI track and in connection with so doing, provides a current controller state for the given event to the client.
Claim 7
Dependent Claim 38 words
The MIDI server set forth in claim 5 further comprising: a memory device that stores stored controller state separately from the MIDI track; and the MIDI server employs the stored controller state in providing the current controller state.
Claim 8
Dependent Claim 51 words
The MIDI server set forth in claim 6 wherein: the stored controller state summarizes a prior controller state of an event prior to the given event, whereby the MIDI server is required to store only a portion of the MIDI track that begins at the event prior to the given event.
Claim 9
Dependent Claim 29 words
The MIDI server set forth in claim 3 wherein: the MIDI server further provides a delay parameter to the one or more clients in association with the MIDI track.
Claim 10
Dependent Claim 32 words
Apparatus for generating a MIDI track, the apparatus comprising: a receiver that receives a MIDI stream; and a generator that generates the MIDI track of any of claims 1 through 2 therefrom.
Claim 11
Dependent Claim 46 words
The apparatus for generating a MIDI track set forth in claim 9 further comprising: a track provider that provides the MIDI track as it is generated to a server for distribution to clients of the server while the MIDI track is being received in the server.
Claim 12
Dependent Claim 28 words
The apparatus for generating a MIDI track set forth in claim 9 wherein: the track provider provides the track to the server by means of a non-real-time protocol.
Claim 13
Dependent Claim 47 words
Apparatus for generating a MIDI stream from a MIDI track comprising: a track reader for reading the MIDI track of any of claims 1 through 2 and a MIDI stream generator for generating a MIDI stream therefrom while the track is being read by the track reader.
Claim 14
Dependent Claim 49 words
The apparatus for generating a MIDI stream from a MIDI track of claim 12 wherein: the MIDI track reader receives the track via a non-real-time protocol; and the MIDI stream generator further comprises a delayer that waits a delay period before the MIDI stream generator begins reading the track.
Claim 15
Dependent Claim 49 words
The apparatus for generating a MIDI stream from a MIDI track of claim 13 wherein: the delay period is at a minimum the period required to receive enough of the MIDI track that a predetermined period of time is required for the MIDI stream generator to play the track.
Claim 16
Dependent Claim 39 words
The apparatus for generating a MIDI stream from a MIDI track of claim 14 wherein: the delayer receives a delay parameter that specifies the predetermined period of time from a user of the apparatus for generating a MIDI stream.
Claim 17
Dependent Claim 38 words
The apparatus for generating a MIDI stream from a MIDI track of claim 15 wherein: the MIDI track reader receives a parameter for the delay period in association with the track and provides the parameter to the delayer.
Claim 18
Dependent Claim 43 words
The apparatus for generating a MIDI stream from a MIDI track of claim 12 wherein: the MIDI track reader receives the track beginning with an arbitrary event therein and receives current controller state for the arbitrary event prior to receiving the arbitrary event.
Claim 19
Dependent Claim 26 words
The apparatus for generating a MIDI stream from a MIDI track of claim 17 wherein: the current controller state is a sequence of MIDI controller events.
Claim 20
Dependent Claim 67 words
The apparatus for generating a MIDI stream from a MIDI track of claim 12 wherein: the MIDI event message includes a channel specifier of a plurality thereof; the MIDI stream generator receives a channel parameter specifying at least one of the channel specifiers; and the MIDI stream generator does not output event messages to the MIDI stream that have the channel specifier specified in the channel parameter.
Claim 21
Independent Claim 163 words
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.
Claim 22
Independent Claim 163 words
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.
Claim 23
Dependent Claim 43 words
The method of generating a first MIDI stream or a second MIDI track set forth in claim 20 wherein: the step of placing MIDI event messages is performed by placing the MIDI event messages as they are read from the first MIDI track.
Claim 24
Dependent Claim 65 words
The method of generating a first MIDI stream or a second MIDI track set forth in claim 20 further comprising the step of: making a definition of the starting state from the read MIDI event messages and storing the definition separately from the first MIDI track; and in the step of placing MIDI event messages, the MIDI event messages are produced using the separately-stored definition.
Claim 25
Dependent Claim 58 words
The method of generating a first MIDI stream or a second MIDI track set forth in claim 22 wherein: the separately-stored definition is the read MIDI event messages that define the starting state; and in the step of placing MIDI event messages, the MIDI event messages are produced from the read MIDI event messages in the separately-stored definition.
Claim 26
Dependent Claim 79 words
The method of generating a first MIDI stream or a second MIDI track set forth in claim 22 wherein: the separately-stored definition defines the starting state at a point prior to the given point; and the step of placing MIDI event messages further includes the step of producing the MIDI event messages placed in the first MIDI stream or second MIDI track from MIDI event messages occurring between the point prior to the given point and the given point.
Claim 27
Dependent Claim 72 words
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.
Claim 28
Dependent Claim 72 words
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.
Claim 29
Dependent Claim 31 words
The improved MIDI track set forth in claim 25 wherein: the control state information is MIDI event messages from the MIDI track that do not cause the MIDI device to play.
Claim 30
Dependent Claim 30 words
The improved MIDI track set forth in claim 25 wherein: the control state information specifies the results of MIDI event messages that affect the starting state at the given point.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-05-23 2003-11-22 2004-05-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-05-23 2007-11-22 2008-05-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-05-23 2011-11-22 2012-05-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag