Abstract:
A method for playing music having i note polyphony, as well as a system containing a plurality of sources and a source itself, with at least two sources of a group of sources, where a first source is assigned to play j notes and a second source is assigned to play k notes, where j&lt;i and k&lt;i, and where the notes are assigned in a predetermined order. For a case where j+k&lt;i, the methods further includes assigning a third source l additional notes to play of the musical composition. For a case where j+k_i, the l notes may duplicate all or some of the j or k notes played by the first or second sources. The j and k notes are played simultaneously, and the method further includes an initial step of synchronizing the first source to the second source through a wireless local network such as an RF network, e.g., a Bluetooth network, or an optical network. Preferably one of the at least two sources functions as a group master, and assigns an identification within the group to the other source or sources using the wireless local network.

Description:
TECHNICAL FIELD  
         [0001]    The field of the invention is that of combining the processing power of and synchronizing a plurality of simple computing and communications devices, such as cellular telephones, to increase the polyphony of a song being played or other sound generation. In particular, these teachings relate to techniques for musical compositions and to wireless communications systems and methods.  
         BACKGROUND  
         [0002]    A standard protocol for the storage and transmission of sound information is the MIDI (Musical Instrument Digital Interface) system, specified by MIDI Manufacturers Association. The invention is discussed in the context of MIDI for convenience because that is a well known, commercially available standard. Other standards could be used instead, and the invention is not confined to MIDI.  
           [0003]    The information exchanged between two MIDI devices is musical in nature. MIDI information informs a music synthesizer, in a most basic mode, when to start and stop playing a specific note. Other information includes, e.g. the volume and modulation of the note, if any. MIDI information can also be more hardware specific. It can inform a synthesizer to change sounds, master volume, modulation devices, and how to receive information. MIDI information can also be used to indicate the starting and stopping points of a song or the metric position within a song. Other applications include using the interface between computers and synthesizers to edit and store sound information for the synthesizer on the computer.  
           [0004]    The basis for MIDI communication is the byte, and each MIDI command has a specific byte sequence. The first byte of the MIDI command is the status byte, which informs the MIDI device of the function to perform. Encoded in the status byte is the MIDI channel. MIDI operates on 16 different channels, numbered 1 through 16. MIDI units operate to accept or ignore a status byte depending on what channel the unit is set to receive. Only the status byte has the MIDI channel number encoded, and all other bytes are assumed to be on the channel indicated by the status byte until another status byte is received.  
           [0005]    A Network Musical Performance (NMP) occurs when a group of musicians, located at different physical locations, interact over a network to perform as they would if located in the same room. Reference in this regard can be had to a publication entitled “A Case for Network Musical Performance”, J. Lazzaro and J. Wawrzynek, NOSSDAV&lt;01, Jun. 25-26, 2001, Port Jefferson, N.Y., USA. These authors describe the use of a client/server architecture employing the IETF Real Time Protocol (RTP) to exchange audio streams by packet transmissions over a network. Related to this publication is another publication: “The MIDI Wire Protocol Packetization (MWPP)”, also by J. Lazzaro and J. Wawrzynek, http://www.ietf.org/internet-drafts/draft-ietf-avt-mwpp-midi-rtp-02.txt, Internet Draft, Feb. 28, 2002 (expires Aug. 28, 2002).  
           [0006]    General MIDI (GM) is a wide spread specification family intended primarily for consumer quality synthesizers and sound cards. Currently there exist two specifications: GM 1.0, “General MIDI Level 1.0”, MIDI Manufacturers Association, 1996, and GM 2.0, “General MIDI Level 2.0”, MIDI Manufacturers Association, 1999. Unfortunately, these specifications require the use of high polyphony (24 and 32), as well as strenuous sound bank requirements, making them less than optimum for use in low cost cellular telephones and other mobile stations.  
           [0007]    In order to overcome these problems, the MIDI Manufacturers Association has established a Scalable MIDI working group that has formulated a specification, referred to as SP-MIDI, that has become an international third generation (3G) standard for mobile communications. In order to have the most accurate references, this application will quote from the specification from time to time. SP-MIDI&#39;s polyphony and sound bank implementations are scalable, which makes the format better suited for use in mobile phones, PDAs and other similar devices. Reference with regard to SP-MIDI can be found at www.midi.org., more specifically in a document entitled Scalable Polyphony MIDI Specification, The MIDI Manufacturers Association, Los Angeles, Calif., and in a document entitled Scalable Polyphony MIDI Specification and Device Profiles which is incorporated by reference herein.  
           [0008]    As wireless telecommunications systems and terminals evolve it has become desirable to provide high quality audio applications that run in this environment. Examples of applications are in providing users an ability to listen to high quality music, as well as high quality sound generation, such as musical ringing tones for telephones.  
         SUMMARY OF THE INVENTION  
         [0009]    The foregoing and other problems are overcome, and other advantages are realized, in accordance with the presently preferred embodiments of these teachings.  
           [0010]    A method is herewith provided to allocate and partition the computational load of software synthesis between two or more sources.  
           [0011]    The teachings of this invention provide an entertainment application utilizing software synthesis and, preferably, the SP-MIDI or a similar standard. The use of SP-MIDI is not required, and is used as an example for convenience. Other protocols or standards could also be used. By the use of this invention one is enabled to combine the sound processing power of two or more sources in order to increase the polyphony of a song being played. The sources are assumed to be synchronized to one another using, for example, a low power RF interface such as Bluetooth, and the sources play the same MIDI file according to specified rules, preferably rules specified by SP-MIDI or some other MIDI-related protocol. MIDI is referred to for convenience because that is a well known, commercially available standard. Other standards could be used instead, and the invention is not confined to MIDI.  
           [0012]    Disclosed is a method for playing music, as well as a system containing a plurality of sources and a source itself. The method includes providing a MIDI musical composition having i note polyphony and playing the musical composition with at least two sources of a set of sources, where a first source is assigned to play j notes and a second source is assigned to play k notes, where j&lt;i and k&lt;i, and where the notes are assigned in a Channel Priority Order. For a case where j+k&lt;i, the methods further includes assigning a third source l additional notes to play of the musical composition. For a case where j+k=i, the l notes may duplicate all or some of the j or k notes played by the first or second sources.  
           [0013]    The j and k notes are played simultaneously, and the method further includes an initial step of synchronizing the first source to the second source through a cable or wireless local network such as an RF network, e.g., a Bluetooth network, or an optical network.  
           [0014]    Preferably one of the two sources functions as a group master, and assigns an identification within the group to the other source or sources, using the wireless local network. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    The foregoing and other aspects of these teachings are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein:  
         [0016]    [0016]FIG. 1 is a high level block diagram showing a wireless communication network comprised of a plurality of MIDI devices, such as one or more sources and one or more MIDI units, such as a synthesizer;  
         [0017]    [0017]FIG. 2 is a simplified block diagram in accordance with this invention showing two of the sources from FIG. 1 that are MIDI enabled;  
         [0018]    [0018]FIG. 3 is an exemplary state diagram illustrating the setting of IDs when one device acts as a master device; and  
         [0019]    [0019]FIG. 4 shows an example of how SP-MIDI synthesizers with different polyphony capabilities (SP-MIDInn) select which MIDI channels to play. A number of the highest priority MIDI channels are selected according to the corresponding MIP values.  
         [0020]    [0020]FIG. 5 shows a block level diagram of a mobile station. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0021]    [0021]FIG. 1 shows a wireless communication network  1  that includes a plurality of MIDI devices, such as one or more mobile telephone apparatus (handsets)  10 , one or MIDI units  12 . The MIDI unit  12  could be or could contain a music synthesizer, a computer, or any device that has MIDI capability. Illustratively, handsets  10  will contain a chip that performs the tasks of synthesis and associated software. The sources  10  could include headphones (not shown), but preferably for a group playing session as envisioned herein a speaker, such as the internal speaker  10 A or an external speaker  10 B, is used for playing music. Wireless links  14  are assumed to exist between the MIDI devices, and may include one or more bi-directional (two way) links  14 A and one or more uni-directional (one way) links  14 B. The wireless links  14  could be low power RF links (e.g., those provided by Bluetooth hardware), or they could be IR links provided by suitable LEDs and corresponding detectors. Box  18 , labeled Content Provider, represents a source of MIDI files to be processed by the inventive system. Files may be transferred through any convenient method, e.g. over the Internet, over the telephone system, through floppy disks, CDs, etc. In one particular application, the data could be transmitted in real time over the internet and played as it is received. One station could receive the file and transmit it, in whole or just the relevant parts, over the wireless link or the phone system to the others. Alternatively, the file could be received at any convenient time and stored in one or more stations.  
         [0022]    The above mentioned SP-MIDI specification presents a music data format for the flexible presentation of MIDI for a wide range of playback devices. The specification is directed primarily at mobile phones, PDAs, palm-top computers and other personal appliances that operate in an environment where users can create, purchase and exchange MIDI music with devices that have diverse MIDI playback capabilities.  
         [0023]    SP-MIDI describes a minimum required sound set, sound locations, percussion note mapping, controller usage, etc., thereby defining a given set of capabilities expected of an SP-MIDI-compatible synthesizer. In general, SP-MIDI provides a standardized solution for scalable playback and exchange of MIDI content. The Scalable Polyphony MIDI Device 5-24 Note Profile for 3 GPP defines requirements for devices capable of playing 5-24 voices simultaneously (5-24 polyphony devices).  
         [0024]    Referring now to FIG. 5, there is shown a block diagram level representation of a station according to the invention. On the right, units exterior to the station are displayed-speakers  56 , microphone  58 , power supply (or batteries)  52  and MIDI input device  54 . The power supply may be connected only to the external speakers  56 , to the other exterior units, or to the station itself. The MIDI input device may be a keyboard, drum machine, etc. On the left of the Figure, a line of boxes represent various functions and the hardware and/or software to implement them. In the center, connectors  32 A and -B and  34 A and -B represent any suitable connector for a microphone-earpiece headset that may be used in the invention to connect a standard mobile station to external devices without adding an additional connector. At the bottom left, Storage  40  represents memory, floppy disks, hard disks, etc. for storing data. Control  48  represents a general purpose CPU, micro-controller, etc. for operating the various components according to the invention. Receiver  40  represents various devices for receiving signals—the local RF link discussed above, telephone signals from the local phone company, signal packets from the Internet, etc. Synthesizer  44  represents a MIDI or other synthesizer. Output  38  represents switches (mechanical or solid state) to connect various units to the output connector(s). Similarly, Input  36  represents switches (mechanical or solid state) to connect various units to the input connector(s) as well as analog to digital converters to convert microphone input to signals compatible with the system, as described below. Generator  42  represents devices to generate signals to be processed by the system; e.g. a) an accelerometer to be used to convert shaking motions by the user to signals that can control the synthesizer to produce maraca or other percussion sounds, or b) the keypad of the mobile station. Those skilled in the art will be aware that there is flexibility in block diagram representation and one physical unit may perform more than one of the functions listed above; or a function may be performed by more than one unit cooperating.  
         [0025]    SP-MIDI  
         [0026]    Before describing this invention in further detail, a more thorough discussion of certain aspects of SP-MIDI that are of most concern to this invention will first be made.  
         [0027]    One aspect of SP-MIDI that pertains to this invention is referred to as channel masking. Consider a situation where a synthesizer plays a MIDI file that has a higher polyphony requirement (i.e., a higher maximum number of simultaneous playable notes) than the synthesizer can support. As the synthesizer is not capable of simultaneously playing all of the notes, the music playback may be partially randomized in prior practice, depending on a note stealing method used by the synthesizer manufacturer.  
         [0028]    An important goal of polyphony scalability is to avoid this randomization of music playback. If all the notes on a particular MIDI channel cannot be played, an SP-MIDI synthesizer instead masks that channel, i.e., it ignores all notes on that particular channel.  
         [0029]    Channel priorities are used to determine the MIDI channel masking order. In SP-MIDI, the content creator defines the priority order of the channels, and the priorities can be subsequently revised during playback.  
         [0030]    For example, the composer can place the most important material in channels having the highest priority and the remainder of the playback material in lower priority channels.  
         [0031]    This ensures that the most important instruments are played, even with low-polyphony playback devices that are not capable of playing all of the channels.  
         [0032]    Based on the foregoing discussion, it may be appreciated that an SP-MIDI playback device is required to have some knowledge of MIDI channel polyphonies and priorities in order to be able to define the channels that it is capable of playing. For this purpose an SP-MIDI-specific MIDI message is used. This message is referred to herein as a Maximum Instantaneous Polyphony (MIP) message. The MIP message data is used to inform the synthesizer in a source  10  or the MIDI unit  12  of the polyphonies required for different MIDI Channel combinations within the MIDI file. The MIP may be considered as a cumulative polyphony of all  16  MIDI Channels. The order of the MIDI channel combinations is determined by the above-mentioned Channel Priority list.  
         [0033]    A purpose of SP-MIDI is to offer the composer enhanced control over the playback of the music on various platforms. The composer is then enabled to freely decide how different SP-MIDI synthesizers should react to the content. Using the MIP message it is possible to incorporate multiple versions of the same high-polyphony piece of music within the same SP-MIDI file. Each SP-MIDInn synthesizer plays only those parts in (or layers of) a song that the composer has defined to be optimal for that polyphony. As an example, the composer can make a three-layer 24-polyphony SP-MIDI file that can be played on SP-MIDI8, SP-MIDI16, and SP-MIDI24 (SP-MIDI 8-polyphony, SP-MIDI 16-polyphony, SP-MIDI 24-polyphony) synthesizers, with different sets of instrumental sounds to produce a pleasing composition in each synthesizer. Thus, one would have 8-, 16- and 24-note arrangements with layers 1-8, 9-16 and 17-24.  
         [0034]    As a specific example, the composer could choose alto and tenor saxophones, two trumpets, snare and bass drums, cymbals and bass for the 8-polyphony synthesizer, thus having a first set of MIDI instructions giving a first part of the composition (the melody, say), to the saxophones and trumpets, so that the music is played in the minimum case on a first apparatus comprising the 8-polyphony synthesizer. The composer would provide an option for adding a piano part (with up to four polyphony, say) and a guitar part (also with up to four polyphony) for the 16-polyphony case. The composer would have to make a design choice whether to merely add subordinate parts for the 16-polyphony case, or to give the piano some of the more important music (i.e. to provide different saxophone, trumpet and other melody parts for the 8-polyphony and 16-polyphony cases). Thus, a piece of music to be played according to the invention might include an 8-polyphony version having a first saxophone part and a 16-polyphony version having a different saxophone part, etc. for the other instruments that normally play the melody. The term “part”, as used herein, means the music for an instrument of a particular type, e.g. the saxophone part for a saxophone section of up to n saxophones. The term “portion” as applied to music means the melody, rhythm, etc. Thus, in a more complex system according to the invention, a second set of instructions allocates some of the melody portion of the music to a second set of instrumental voices (saxophone, trumpet and piano). Similarly, the rhythm portion of the music can have versions for a limited number of voices and for a larger number.  
         [0035]    In addition to polyphony, the SP-MIDI standard is also defined to be scalable. The SP-MIDI specification introduces a minimum required sound set, although manufacturers may expand the minimum sound set up to, for example, a full General MIDI 2.0 sound set. Any required instruments that are not available are patched such that a most similar-sounding of the available instruments is played instead. In this way none of the specified musical elements are neglected due to a lack of instrument support by the playback system.  
         [0036]    In SP-MIDI, each of the MIDI channels  10  and  11  can be used as rhythm channels. If there were only one available rhythm channel then the creation of scalable and good sounding musical content would become very difficult as the polyphony rises. Each MIDI channel, apart from channel  10 , can be used as a melody channel.  
         [0037]    The teachings of this section provide an entertainment application that utilizes software synthesis in the context of the SP-MIDI standard. In this invention the sound processing power of two or more sources  10  is combined in order to increase the polyphony of a song being played. The sources are synchronized to one another using, some suitable wireless communication link, a LAN or the phone network. The wireless communication link may be a low power, short-range RF link (e.g., Bluetooth), or it may be an IR optical link. The synchronized sources  10  play different portions of the same MIDI file according to rules specified by SP-MIDI. Each source  10  may have a different set of sounds (instruments) all of which are assumed to adhere to the SP-MIDI specification. Both polyphony and the quantity of available sounds are therefore summed together.  
         [0038]    In the typical case each SP-MIDInn synthesizer plays only those parts of a song that the composer has defined to be optimal for that polyphony. In one example, a composer might create a three-part, 24-polyphony SP-MIDI file that can be played on SP-MIDI8, SP-MIDI16 and SP-MIDI24 synthesizers. An individual terminal may, if it has enough memory, store the whole composition. Alternatively, it may receive only the data that it will be playing.  
         [0039]    In accordance with an aspect of this invention, the  24  notes of this example are partitioned between the available sources  10 . If there are, for example, two sources  10  available that have SP-MIDI8 capability, the first SP-MIDI8 source plays the first eight notes according to the Channel Priority Order, and the second SP-MIDI8 source plays the next eight notes. If a third source  10  later joins the group of two sources, it is assigned to play the remainder of the 24 notes. Thus the full 24 note composition can be played, even though not one of the participating sources has a synthesizer capable of playing more than eight notes.  
         [0040]    The teachings of this invention thus provide for grouping several devices together to create a musical sound environment that is common to all the devices. Each source  10  and/or MIDI device  12  is assumed to have at least one (internal or external) speaker. The source(s)  10  and/or MIDI device(s)  12  are preferably located in the same space so that every user hears the sound output from all of the devices. Each device is given a unique ID for differentiating that device from other devices in the group of devices, thereby providing the ability to inform the devices as to which layers of the SP-MIDI file they should play.  
         [0041]    By the use of this invention the sounds of multiple MIDI devices are combined into one shared sound environment. The use of this invention relieves the high computational requirements of software synthesis by partitioning the processing load between at least two SP-MIDI-compatible sources  10  and/or MIDI devices  12 . Both the polyphony and the quantity of available sounds are therefore summed together.  
         [0042]    The use of this invention automatically allocates different MIDI channels between the sources  10  and/or MIDI devices  12 . Furthermore, a separate controlling host operation is not required, as embedded decentralized control is provided by the participating sources  10  and/or MIDI devices  12  and their communication over the local area wireless network that is implemented using Bluetooth or some other suitable technique. The actual sound output is generated through each source  10  speaker  10 A, though a common mixer and speakers could also be used.  
         [0043]    The teachings of this invention solve the problem of the high computational requirements of software synthesis by splitting the processing load between two or more sources  10 . This enables higher polyphony music to be played and enjoyed in a group situation. The actual sound is improved and additional voices are enabled to be heard. The addition of devices with enhanced sound banks further improves the sound. Certain instruments can be multiplied by playing them with more than one source  10 .  
         [0044]    The MIDI-related services can be downloaded to users over the air, and basic ringing tone MIDI files and the like can be used so that additional effort by content creators may not be required.  
         [0045]    Before the playback can begin, the sources  10  are synchronized to each other by using, for example, Bluetooth. Preferably, the synchronization continues through the playing. If the sources  10  have timing that is sufficiently good, the synchronization information could be sent only at the beginning of playing. When several devices are used to create the shared sound environment, each of them is uniquely identified in order to be able to resolve which device plays which SP-MIDI layer. It is possible to implement the process to be totally automatic or user controllable.  
         [0046]    Discussing first the totally automatic mode, heuristics implemented in the system select which parts of the music, sometimes referred to as layers, are played by which synthesizer. Referring to FIG. 2, it can be seen that each source  10  includes a synthesizer  20  coupled with a controller  22  (which may be a general purpose or special purpose computer) that operates in accordance with this invention, and that receives information from at least one other controller  22  via a wireless link  24 , such as Bluetooth. This is done automatically after the shared sound playing is enabled in the source  10 , and another SP-MIDI-enabled source  10  is detected in the immediate environment.  
         [0047]    In the user controllable mode, a relatively simple user interface (UI)  26  is provided for enabling the selection of which channels are played by which source  10 . One alternative is that one source  10  of the group assumes the role of a master device, and sets the IDs for each device as they join the group. The ID numbers can be assigned in order of joining the group, or at random, and they determine which MIDI channels (i.e. which SP-MIDI layer or musical part) the device should play.  
         [0048]    [0048]FIG. 3 shows an example of starting an application and assigning the IDs to various one of the sources  10  of the group. At Step A the application is begun, and at Step B one of the sources  10  assumes the role of the master device and reserves a master device ID. As examples, this source  10  could be the first one to join the group, or one selected by the users through the UI  26 . As other sources  10  enter the space occupied by the group (e.g., a space defined by the reliable transmission range of the wireless link  24 , that is also small enough for the sound from all devices to be heard by all participating sources  10 ) the new device attempts to enroll or register with the group (Step C). If accepted by the master device an acknowledgment is sent, as well as the new sourcc=s MIDI group ID (Step D). At some point, if playing has not yet begun, the group is declared to be full or complete (Step E), and at Step F the group begins playing the music, where each source  10  plays only its assigned layer. The end result is a substantial increase in polyphony without a corresponding increase in computational load and power consumption for any one particular source.  
         [0049]    If there are more willing participants than there are available SP-MIDI layers, some layers can be assigned to two or more sources  10 .  
         [0050]    While described in the context of certain presently preferred embodiments, the teachings in accordance with this invention are not limited to only these embodiments. For example, the wireless connection between terminals  10  can be any suitable type of low latency RF or optical connection (wireless or cable) so long as it exhibits the bandwidth required to convey messages between the participating sources. Further in this regard the link could be made through any suitable connection, including the Internet.