Method and apparatus for remote real time collaborative music performance
First Claim
Patent Images
1. A musical performance station for use by a musician, said station comprising:
- a keyboard for the musician to play, said keyboard generating a local musical event in response to being played by the musician;
a communication channel interface, said interface providing access through a communication channel to at least one remote musical performance station, said access to each of the at least one remote musical performance station having an associated latency, said interface sending the local musical event from the keyboard to the at least one remote musical performance station, said interface further receiving a remote musical event from the at least one remote musical performance station;
a delay, said delay having a non-zero local delay value, said delay receiving the local musical event from the keyboard and holding the local musical event for a first amount of time specified by the local delay value, said delay further having a remote delay value associated with each of the at least one remote musical performance station, said delay receiving the remote musical event from the communication channel interface and holding the remote musical event for a second amount of time specified by the remote delay value associated with the remote musical performance station which originated the remote musical event; and
, a synthesizer for rendering musical events into an audio signal, said synthesizer receiving the local musical event from the delay when the first amount of time has elapsed, and rendering the local musical event into the audio signal, said synthesizer receiving the remote musical event from the delay when the second amount of time has elapsed, and rendering the remote musical event into the audio signal.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are disclosed to permit real time, distributed performance by multiple musicians at remote locations. The latency of the communication channel is transferred to the behavior of the local instrument so that a natural accommodation is made by the musician. This allows musical events that actually occur simultaneously at remote locations to be played together at each location, though not necessarily simultaneously at all locations. This allows locations having low latency connections to retain some of their advantage. The amount of induced latency can be overridden by each musician.
-
Citations
30 Claims
-
1. A musical performance station for use by a musician, said station comprising:
-
a keyboard for the musician to play, said keyboard generating a local musical event in response to being played by the musician;
a communication channel interface, said interface providing access through a communication channel to at least one remote musical performance station, said access to each of the at least one remote musical performance station having an associated latency, said interface sending the local musical event from the keyboard to the at least one remote musical performance station, said interface further receiving a remote musical event from the at least one remote musical performance station;
a delay, said delay having a non-zero local delay value, said delay receiving the local musical event from the keyboard and holding the local musical event for a first amount of time specified by the local delay value, said delay further having a remote delay value associated with each of the at least one remote musical performance station, said delay receiving the remote musical event from the communication channel interface and holding the remote musical event for a second amount of time specified by the remote delay value associated with the remote musical performance station which originated the remote musical event; and
,a synthesizer for rendering musical events into an audio signal, said synthesizer receiving the local musical event from the delay when the first amount of time has elapsed, and rendering the local musical event into the audio signal, said synthesizer receiving the remote musical event from the delay when the second amount of time has elapsed, and rendering the remote musical event into the audio signal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
a groove track, said groove track having a like groove track on each of the at least one remote musical performance station, and in which the local musical event represents a command to start the groove track, said synthesizer rendering the groove track into the audio signal upon receiving the local musical event.
-
-
8. The musical performance station according to any one of claims 1, 2, or 3, further comprising:
-
a groove track, said groove track having a like groove track on each of the at least one remote musical performance station, and in which the remote musical event represents a command to start the groove track, said synthesizer rendering the groove track into the audio signal upon receiving the remote musical event.
-
-
9. The musical performance station of claim 1, further comprising:
-
a local clock, and wherein each of the at least one remote musical performance station has a remote clock, said local musical event including the value of the local clock at the time the local musical event is generated, said remote musical event including the value of the respective remote clock at the time the remote musical event is generated, said remote delay value being calculated as the local delay value less the mean latency associated with the respective remote performance station less the difference between the local clock at the time the remote musical event is received and the value of the respective remote clock contained in the remote musical event plus the difference between the local clock and the respective remote clock.
-
-
10. The musical performance station of claim 9, in which the local delay value is set to the greatest latency.
-
11. The musical performance station of claim 9, in which the local delay value is determined by the musician.
-
12. The musical performance station according to any one of claims 9, 10, or 11, in which the delay discards the remote musical event when the remote delay value is negative.
-
13. The musical performance station according to any one of claims 9, 10, or 11, in which the delay discards the remote musical event when the remote delay value is more negative than a threshold value set by the musician.
-
14. The musical performance station according to any one of claims 1, 2, 3, 4, 5, 6, 9, 10, or 11, wherein the communication channel interface directs the local musical event to each of the at least one remote musical performance station.
-
15. The musical performance station according to any one of claims 1, 2, 3, 4, 5, 6, 9, 10, or 11, wherein the communication channel interface of the musical performance station directs the local musical event to a fanout server,
said fanout server being operatively connected to the communication channel, the fanout server forwarding the local musical event to each of the at least one remote musical performance station, and wherein the remote musical event is communicated to the musical performance station by way of the fanout server.
-
16. A method for real time, distributed, musical performance by multiple musicians, comprising the steps of:
-
creating a local musical event, advancing the local musical event through a communication channel having access to at least one remote location, said access to each of the at least one remote location having an associated latency, receiving through the communication channel, from the at least one remote location, a remote musical event, delaying the local musical event by a non-zero first amount of time, delaying the remote musical event by a second amount of time associated with the remote location which originated the remote musical event, playing the local musical event when the first amount of time has elapsed, and playing the remote musical event when the second amount of time has elapsed. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
augmenting the local musical event with the value of a local clock at the time the local musical event is generated, and calculating said second amount of time as the first amount of time less the mean latency associated with the respective remote location less the difference between the local clock at the time the remote musical event is received and the value of the respective, remote clock contained in the remote musical event plus the difference between the local clock and the respective remote clock.
-
-
25. The method of claim 24, in which the first amount of time is equal to the greatest latency.
-
26. The method of claim 24, further comprising the step of:
the first amount of time being set by the musician.
-
27. The method according to any one of claims 24, 25, or 26, further comprising the step of:
discarding the remote musical event when the second amount of time is negative.
-
28. The method according to any one of claims 24, 25, or 26, further comprising the step of:
discarding the remote musical event when the second amount of time is more negative than a threshold value set by the musician.
-
29. The method according to any one of claims 16, 17, 18, 19, 20, 21, 24, 25, or 26, wherein the step of advancing the local musical event comprises separately sending the local musical event to each of the at least one remote location.
-
30. The method according to any one of claims 16, 17, 18, 19, 20, 21, 24, 25, or 26, wherein the step of advancing the local musical event comprises the steps of:
-
sending the local musical event to an intermediate location, and forwarding the local musical event from the intermediate location to each of the at least one remote location.
-
Specification