System and method for a networked virtual musical instrument
AssigneeCinesamples, Inc.
InventorsMichael G. Patti, Christian J. Hessler
Life of this patent
Estimating the term…
Abstract
A system and method for operating and performing a remotely networked virtual musical instrument. A client transmits musical control data to a remote server over the network, encompassing a digital music engine and digitally sampled virtual musical instruments. In return, the client consumes, synchronizes, and mixes the combined server playback stream from the network of the fully expressive and interactive musical performance with zero audible latency.
Claims20
A virtual musical instrument system, comprising:
- a server;
- and
- a client;
- wherein said server and said client are linked via a network;
- wherein
- said server comprises a database;
- wherein said database comprises one or more virtual musical instrument samples;
- wherein
- said client comprises:
- a user interface;
- a musical control event input device;
- and a local audio device;
- wherein said musical control event input device is configured to allow a user to select a first virtual musical instrument sample from said one or more virtual musical instrument samples;
- wherein said first virtual musical instrument sample comprises one or more samples that are divided by said server into one or more start samples and one or more end samples;
- wherein said server sends said one or more start samples to said client in response to said user selecting said first virtual musical instrument sample;
- wherein said musical control event input device is configured to allow said user to generate control event data that is processed by said client;
- wherein said client queues and sends said control event data over said network to said server and wherein said server processes said control event data and sends said one or more end samples, to said client;
- and
- wherein said client is configured to process said one or more start samples and said one or more end samples, such that they are synchronized and streamed to said local audio device, such that a zero-latency final interactive performance is delivered by said local audio device based on said control event data;
- wherein said client further comprises a series of client buffers;
- wherein said series of client buffers are configured to:
- a. process said control event data and sends said control event data to said server;
- b. accept from said server said one or more start samples and send said one or more start samples to a different client buffer;
- c. accept said one or more start samples and queues them to be transmitted;
- d. accept said one or more end samples and queue them to be transmitted;
- e. accept said one or more start samples and said one or more end samples, and mix and synchronize the samples to create a combined server playback stream that is outputted by said local audio device;
- and
- wherein said combined server playback stream is a fully expressive and interactive musical performance with no noticeable audible latency.
A method for performing networked virtual musical instruments in real-time with zero latency, comprising the steps:
- providing a server, said server comprising a virtual musical instrument sampler application and a database comprising one or more virtual musical instrument samples;
- wherein said server comprises two or more server buffers configured to manage control event data that comes in and a plurality of audio data that goes out;
- providing at least one client, said client comprising:
- a first client buffer;
- a second client buffer;
- a third client buffer;
- a fourth client buffer;
- a user interface;
- a musical control event input device;
- and a local audio device;
- wherein said server and said client are in communication over a network;
- wherein said musical control event input device is configured to allow a user to select a first virtual musical instrument sample from said one or more virtual musical instrument samples;
- wherein said first virtual musical instrument sample comprises a plurality of start samples and a plurality of end samples;
- wherein said musical control event input device is configured to allow said user to generate said control event data;
- processing said control event data by said first client buffer;
- sending said control data by said first client buffer to said two or more server buffers;
- and
- synchronizing, throttling, and mixing said plurality of audio data for zero-latency playback by said second, third, and fourth client buffers;
- calculating a latency between said client and said server over said network as a time taken to send a standard packet of data between them;
- calculating an offset window value, which is greater than said latency;
- loading by said server a desired portion of said first virtual musical instrument sample based on said offset window value;
- and
- segmenting a plurality of sample slices of said first virtual musical instrument sample into a plurality of start samples and a plurality of end samples based on said offset window value.
A method for performing networked virtual musical instruments in real-time with zero latency, comprising the steps:
- providing a server, said server comprising a virtual musical instrument sampler application and a database comprising one or more virtual musical instrument samples;
- wherein said server comprises two or more server buffers configured to manage control event data that comes in and a plurality of audio data that goes out;
- providing at least one client, said client comprising:
- a series of client buffers;
- a user interface;
- a musical control event input device;
- and a local audio device;
- wherein said server and said client are in communication over a network;
- wherein said musical control event input device is configured to allow a user to select a first virtual musical instrument sample from said one or more virtual musical instrument samples;
- wherein said first virtual musical instrument sample comprises a plurality of start samples and a plurality of end samples;
- wherein said musical control event input is configured to allow said user to generate said control event data;
- processing said control event data by a first of said series of client buffers;
- sending said control data by said first of said series of client buffers to said two or more server buffers;
- and
- synchronizing, throttling, and mixing said plurality of audio data for zero-latency playback by one or more additional client buffers of said series of client buffers;
- calculating a latency between said client and said server over said network as a time taken to send a standard packet of data between them;
- calculating an offset window value, which is greater than said latency;
- loading by said server a desired portion of said first virtual musical instrument sample based on said offset window value;
- and
- segmenting a plurality of sample slices of said first virtual musical instrument sample into a plurality of start samples and a plurality of end samples based on said offset window value.
Dependencies are inferred from the claim text.