1. Field of the Invention
The present invention relates to a music synthesis system. In particular, the present invention relates to a wavetable synthesis system for synthesizing a corresponding digital music output according to commands from a music data file.
2. Description of the Prior Art
Referring to
As shown in
Referring to
In conventional music synthesis system 10, the memory 15 for storing the wavetable 14 is usually the flash memory or ROM. The cost for storing the uncompressed wavetable 14 in the memory 15 is usually one of the most significant part in the total cost. For reducing the cost of storing the wavetable 14, it is usually for the prior to store only the sampling data at one or two predetermined pitches of a specific musical instrument. For example, for the sampling data of the music of a piano, the wavetable 14 only stores the digital sampling data 22a representing the piano at pitch C. Therefore, when the music synthesis system 10 shown in
Referring to
According to the above, conventional music synthesis system 10 has the disadvantages of high storing cost and high calculating cost.
The objective of the present invention is to provide a music synthesis system and method for performing memory management according to the importance of the data, so as to decrease the cost and processing load and maintain the quality of the digital music output.
The present invention provides a music synthesis system for synthesizing a corresponding digital music output according to commands specified in a music data file. According to one embodiment, the music data file comprises a plurality of music data units. Each music data unit records related information of the music. This kind of information usually, but not limited to, comprises the current pitch, duration, and type of the musical instrument of the music.
In the embodiment, the music synthesis system comprises a wavetable, a first memory, a second memory, a music analyzer, a wavetable preprocessor, and a synthesizer. The wavetable is used for storing a plurality of digital sampling data. Each digital sampling data represents audio signals generated by a specific musical instrument at a predetermined pitch. The memory has a predetermined memory capacity for storing data. The music analyzer is used for receiving the music data file, and according to a predetermined music analysis procedure, it is also used for analyzing the music data units of the music data file and generating a corresponding analysis result constituting an importance analysis table. The wavetable preprocessor is used for selecting the digital sampling data with relatively higher importance in the wavetable from the first memory according to system capacity, inter alia, the memory capacity of the second memory and the analysis result, and then it stores the selected digital sampling data in the second memory. The synthesizer is used for selecting the required digital sampling data from the second memory according to the music data file and for synthesizing the digital music output requested according to commands specified in the music data file. The above-mentioned first and second memory can be put into practice by two memories or one memory with a large memory capacity.
According to the embodiment, a music synthesis system and method for performing memory management according to the importance of a data is provided. The analysis result in the importance analysis table can be used to facilitate the limited-capacity of the memory in a more efficient way. Instead of storing all the received uncompressed music data files as performed in the prior arts, the inclusion of this table in the present music synthesis system generally allows only the storage of the digital sampling data with higher importance in the limited memory. If the memory capacity of the memory allows, the wavetable preprocessor can perform pitch-shifting to part of the digital sampling data and store those data in the memory, so as to share the processing load of the synthesizer and avoid performing the required calculations of pitch-shifting repeatedly. Therefore, the music synthesis system could decrease the cost and processing load while maintaining the quality of the digital music output.
The advantage and spirit of the invention may be understood by the following recitations together with the appended drawings.
Referring to
The music data file 42 could be obtained by decoding a MIDI data stream. The music data file 42 comprises a plurality of music data units (42a, 42b, 42c, . . . ). A music data unit(42a, 42b or 42c) usually, but not limited to, represents the audio signals of a specific musical instrument performed at a specific pitch. Each music data unit records the related information of each segment of music. In this embodiment, the related information includes the pitch, the duration, and the type of the musical instrument of the music.
The wavetable 44 is used for pre-storing a plurality of digital sampling data (54a, 54b, 54c, . . . ); each digital sampling data represents the audio signals generated by a specific musical instrument performed at a predetermined pitch. For example, the digital sampling data 54a represents the audio signals of the music generated by a piano at pitch C, and the digital sampling data 54b represents the audio signals of the music generated by a violin at pitch G. In the present embodiment, the wavetable 44 is stored in the first memory 46. In the music synthesis system 40, the first memory 46 comprises a predetermined memory capacity for storing data. To be more specific, the wavetable 44 could be originally stored in the first memory 46, or it could be stored in other storage device external to the music synthesis system 40, and then be read into the first memory 46. The external storage device could be, for example, other memory devices, optical storage medium, or resources from the network.
The music analyzer 48 is used for receiving the music data file 42 and for generating an analysis result 58. Besides, the music analyzer 48 can analyze the music data units (42a, 42b, 42c, . . . ) according to a predetermined music analysis procedure and can generate a corresponding importance analysis table 56. The wavetable preprocessor 50 is used for selecting the digital sampling data (57a, 57b, and 57c) with relatively higher importance in the wavetable 44 according to the memory capacity of the second memory 47 and the importance analysis table 56, and those data are temporarily stored in the second memory 47; the meaning of relatively higher importance will be described later. The synthesizer 52 is used for selecting the required decompressed digital sampling data from the second memory 47 according to the music data file 42 and for synthesizing the digital music output 43 according to commands specified in the music data file 42. The synthesizer 52 obtains the information, which is required during the synthesis of the digital music output 43, by the analysis result 58.
By employing the wavetable preprocessor 50, the digital sampling data (54a, 54b, 54c, . . . ) can be reduced in size through a predetermined data compression procedure before they are stored in the wavetable 44. After the wavetable preprocessor 50 selects the digital sampling data (54a, 54b, 54c, . . . ) from the wavetable, the wavetable preprocessor 50 performs a decompression procedure and then temporarily stores the decompressed digital sampling data in the second memory 47. The corresponding compression procedure can be designed to cooperate with the decompression procedure. With proper design, the compression/decompression procedures can work in tandem to prevent the problem arising from the disappearance of the looping points if an improper decompress procedure of digital sampling data (54a, 54b, 54c, . . . ) is used. In the music synthesis system 40 according to the present invention, the digital sampling data (54a, 54b, 54c, . . . ) are stored in the wavetable 44 in a compressed format. In contrast, it is uncompressed digital sampling data that are stored in the wavetable of the conventional music synthesis system 10. Therefore, the present invention fashions an economical means to use less memory capacity to store the wavetable 44.
In the following, it is intended to provide a more detailed description for those digital sampling data (57a, 57b, 57c, . . . ) temporarily stored in the second memory 47 and possessing “relatively higher importance” according to the present invention. The digital sampling data stored in the wavetable 44 generally includes a plurality of orchestral music sampling data and a plurality of percussion music sampling data. For example, the wavetable usually includes 128 orchestral music sampling data and 47 percussion music sampling data. However, in most cases, the music data file 42 only requires a part, but not all, of the digital sampling data stored in the wavetable 44. For example, the music data file 42 requires 8 orchestral music sampling data and 3 percussion music sampling data. Therefore, the predetermined music analysis procedure performs classification, statistics, and sorting to all the music data units (42a, 42b, 42c, . . . ) according to the type of the musical instrument or the pitch recorded in the music data units (42a, 42b, 42c, . . . ), so as to obtain the importance analysis table 56. The importance of each digital sampling data depends on the contribution of the digital sampling data from which the digital music output is later synthesized. The importance analysis table 56 is arranged and sequentially sorted according to the contributions of the digital sampling data. By the music analysis procedure, the music synthesis system 40 could find out the digital sampling data required by the music data file 42, and the relative importance among the digital sampling data can therefore be parsed. In a practical case, the capacity of the second memory 47 is usually limited. Selection, as to which digital sampling data are to be decompressed and then stored in the second memory 47, has to be made according to the capacity of the second memory 47. Facilitated by the importance analysis table 56, the wavetable preprocessor 50 could then select and performs decompression on the digital sampling data having relatively higher importance from the wavetable in the first memory 46, and could then store the decompressed digital sampling data in the second memory 47.
For a specific musical instrument, usually digital sampling data of only one or two predetermined pitches are stored in the wavetable 44 due to the limited memory capacity. When in need, one or more digital sampling data of one particular musical instrument can be synthesized by pitch-shifting. In this fashion, the digital sampling data of another pitch of the same musical instrument is thus generated. The synthesizer 52 selects the required digital sampling data from the second memory 47 according to the analysis result 58 of the music data file 42 and performs the necessary pitch-shifting, so as to fully synthesize the digital music output 43. If the memory capacity of the second memory 47 permits, the wavetable preprocessor 50 could also perform pitch-shifting on some of the digital sampling data and the new data are then stored in the second memory 47. This can share the processing load of the synthesizer 52. In other words, the synthesizer 52 does not need to perform pitch-shifting in real time. For example, assume that only the digital sampling data of the piano at pitch C is stored in the wavetable 44. If it is intended to synthesize the digital music output 43 of the piano at pitches C, D, F, and G, the embodiment of the present invention can simulate and generate the digital sampling data of the piano at pitches D, F, and G by the digital sampling data of the piano at pitch C, and stores the data in the second memory 47. Therefore, when the synthesizer 52 needs to use the digital sampling data of the piano at pitches D, F, and G, the synthesizer 52 can directly read from the second memory 47 instead of performing pitch-shifting in real time. According to the embodiment, because the digital sampling data are stored in the wavetable 44 in a compressed format, the required memory capacity could be reduced. When necessary, pitch-shifting can be performed on some of the digital sampling data in advance. The outcome therefrom can be stored in the second memory 47 and be used by the synthesizer 52 later. In this way, this embodiment solves the problems of conventional synthesizers which either require a large number of calculations for pitch-shifting or require a large memory capacity for storing uncompressed digital sampling data.
As to the importance analysis table 56, the importance of each digital sampling data is determined according to the contribution of the digital sampling data from which the digital music output is later synthesized. The content of the importance analysis table 56 can be arranged and sequentially sorted/prioritized according to the contributions of the corresponding digital sampling data. In the present embodiment, the contribution is determined according to the related information recorded in the music data units (42a, 42b, 42c, . . . ). The contribution of the digital sampling data can be evaluated/determined in proportion to the frequency of the digital sampling data during synthesis. The contribution can also be evaluated/determined based on the frequency the digital sampling data would be used for the simulation of other pitches.
In another embodiment, the contribution can also be evaluated/determined based on the duration. During the analysis of the related information recorded in the music data units (42a, 42b, 42c, . . . ) and the synthesis of the digital music output, if the duration of one digital sampling data is longer, the contribution and the importance of that digital sampling data will be larger. Another alternative can be made to the determination of the contribution. If the duration of one digital sampling data from which other pitches are simulated is longer, the contribution of the digital sampling data will be larger.
Referring to
According the above, the embodiment provides a music synthesis system and method for performing the memory management according to the importance of a data. Before the synthesizer of the music synthesis system starts to synthesize the digital music output, the embodiments according to the present invention establish the importance analysis table by analyzing the commands from the music data file, so as to permit the digital sampling data with greater importance be stored in the limited-capacity memory. If the capacity of the memory allows, the wavetable preprocessor will perform pitch-shifting to some of the digital sampling data and store the data in the memory, so as to share the processing load of the synthesizer and avoid performing the required calculations of pitch-shifting repeatedly. Therefore, the music synthesis system decreases the cost and processing load when the music synthesis system stores the wavetable, and the process does not affect the quality of the digital music output.
The above-mentioned embodiments use two memories, namely the first memory 46 and the second memory, for illustration. The first memory 46 is used for pre-storing the compressed digital sampling data. The second memory 47 is used for temporarily storing the decompressed digital sampling data, so as to allow the data reading by the synthesizer 52 later on. The music synthesis system can certainly use two different memories, or use one single memory with a larger memory capacity and divided into two areas.
With the example and explanations above, the features and spirits of the invention will be hopefully well described. Those skilled in the art will readily observe that numerous modifications and alterations of the device may be made while retaining the teaching of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
93103579 A | Feb 2004 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
4622877 | Strong | Nov 1986 | A |
4715257 | Hoshiai et al. | Dec 1987 | A |
4922794 | Shibukawa | May 1990 | A |
5300724 | Medovich | Apr 1994 | A |
5444818 | Lisle | Aug 1995 | A |
5486644 | Kudo et al. | Jan 1996 | A |
5553011 | Fujita | Sep 1996 | A |
5591930 | Kakishita et al. | Jan 1997 | A |
5596159 | O'Connell | Jan 1997 | A |
5675762 | Bodin et al. | Oct 1997 | A |
5689080 | Gulick | Nov 1997 | A |
5698802 | Kamiya | Dec 1997 | A |
5717154 | Gulick | Feb 1998 | A |
5744739 | Jenkins | Apr 1998 | A |
5744742 | Lindemann et al. | Apr 1998 | A |
5753841 | Hewitt | May 1998 | A |
5763801 | Gulick | Jun 1998 | A |
5817964 | Kosugi | Oct 1998 | A |
5824935 | Tanaka | Oct 1998 | A |
5847304 | Hewitt | Dec 1998 | A |
5862063 | Thome et al. | Jan 1999 | A |
5872727 | Kuo | Feb 1999 | A |
5890115 | Cole | Mar 1999 | A |
5896291 | Hewitt et al. | Apr 1999 | A |
5901333 | Hewitt | May 1999 | A |
5917917 | Jenkins et al. | Jun 1999 | A |
5973251 | Mukojima et al. | Oct 1999 | A |
5987584 | Chambers et al. | Nov 1999 | A |
6008446 | Van Buskirk et al. | Dec 1999 | A |
6011213 | Duruoz | Jan 2000 | A |
6018118 | Smith et al. | Jan 2000 | A |
6040515 | Mukojima et al. | Mar 2000 | A |
6047365 | Chambers et al. | Apr 2000 | A |
6096960 | Scott | Aug 2000 | A |
6100461 | Hewitt | Aug 2000 | A |
6101469 | Curtin | Aug 2000 | A |
6124542 | Wang | Sep 2000 | A |
6137046 | Kamiya | Oct 2000 | A |
6138224 | Lisle | Oct 2000 | A |
6180864 | Furuhashi et al. | Jan 2001 | B1 |
6195736 | Lisle | Feb 2001 | B1 |
6253172 | Ding et al. | Jun 2001 | B1 |
6362409 | Gadre | Mar 2002 | B1 |
6426456 | Khawand et al. | Jul 2002 | B1 |
6529191 | Ryo | Mar 2003 | B1 |
6630621 | Yamada et al. | Oct 2003 | B1 |
6643744 | Cheng | Nov 2003 | B1 |
6900381 | Lindgren et al. | May 2005 | B2 |
6976108 | Kim et al. | Dec 2005 | B2 |
7088835 | Norris et al. | Aug 2006 | B1 |
20020124715 | Fay | Sep 2002 | A1 |
20030033338 | Lindgren et al. | Feb 2003 | A1 |
20040158470 | Kawahara et al. | Aug 2004 | A1 |
20040226434 | Hsieh et al. | Nov 2004 | A1 |
20040231497 | Hsieh | Nov 2004 | A1 |
20050011341 | Petef | Jan 2005 | A1 |
20050080498 | Tico et al. | Apr 2005 | A1 |
20050114136 | Hamalainen et al. | May 2005 | A1 |
Number | Date | Country | |
---|---|---|---|
20050188819 A1 | Sep 2005 | US |