依据数据重要性进行内存管理的波表音乐合成系统与方法

文档序号:2821536阅读:177来源:国知局

专利名称::依据数据重要性进行内存管理的波表音乐合成系统与方法
技术领域
:本发明涉及一种波表音乐合成系统,用来依据一音乐数据文件的要求来合成一相对应的数字音乐输出。
背景技术
:请参阅图1,图1为已知波表音乐合成系统10的示意图。波表音乐合成系统10包含一序列器(sequencer)12、一波表(wavetable)14、一内存15以及一合成器16。波表音乐合成系统10依据一音乐数据文件18以合成出相对应的数字音乐输出20。音乐数据文件18中包含有多个音乐数据单元(musicdataunit)19a、19b、、、,每一音乐数据单元则记载有该音乐各个乐段的相关信息。如图1所示,波表14用来预先存放多笔数字取样数据22a、22b、、、。内存15则用以储存波表14,该波表14可原本即储存在内存15中、或是原本储存在波表音乐合成系统10外部(例如其它的内存、光盘储存媒体、甚至网络等等)而后经由读取才进入内存15中。序列器12接收音乐数据文件18,并产生一序列结果24。而合成器16会依据序列结果24,自波表14中选取出所需的数字取样数据,以合成出数字音乐输出20。每一笔数字取样数据是代表一特定乐器在一预定音高所演奏出音响的取样数据。例如,数字取样数据22a代表钢琴在音高C演奏出音响的取样数据,而数字取样数据22b代表小提琴在音高G演奏出音响的取样数据。请参阅图2,图2为图1的数字取样数据22a的波形图。图1中每一笔数字取样数据代表一特定乐器在一预定音高所演奏出音响的取样数据,并且取一预定的音长(duration),而被存放在波表14之中。如图2所示,数字取样数据22a是被取一段音长T而存放在波表14,其中,一循环记录点(loopingpoint)32被标记,以做为将来欲合成不同音长的数字取样数据22a时所需要的一重要依据。一般而言,数字取样数据22a、22b、、、是以未经过压缩(datacompressed)的形式储存,这是因为数字取样数据的压缩可能造成循环记录点32的消失。如图2所示,数字取样数据22a的压缩是将数字取样数据22a取一预定数量的压缩记录点34,而仅储存这些压缩记录点34,以缩减数据大小(datasize),而解压缩的程序是依据各压缩记录点34以运算(例如以内插法运算)并还原出数字取样数据22a。然而,循环记录点32的标记极有可能在此一压缩与解压缩的过程之中消失。因此在许多文献所记载,甚至如MIDI1.0的说明书皆不建议压缩这些数字取样数据22a、22b、、、。已知波表音乐合成系统10中,用以储存波表14的内存15通常为闪存(flash)或只读存储器(ROM)。而储存未经过压缩的波表14所需要的内存15的储存成本通常成为整体成本中最重要的部份之一。考虑储存波表14所需付出的储存成本,已知技术中通常对于一特定乐器仅储存一至两个预定音高的取样数据。例如,对于钢琴音响的取样数据而言,波表14仅存放有代表钢琴音高C的数字取样数据22a。因此,如图1的波表音乐合成系统10在合成数字音乐输出20时,需要使合成器16对所选取的数字取样数据进行音高位移(pitch-shift),以演算出对于一特定乐器而言并未储存的其它音高的数字取样数据。请参阅图3,图3为图1合成器16进行音高位移的示意图。例如,数字音乐输出20需使用钢琴音高C、D、F以及G,然而波表14之中仅存放有钢琴音高C的数字取样数据22a,因此,合成器16会利用数字取样数据22a进行音高位移以演算出数字取样数据22p、22q以及22r。此外,在合成数字音乐输出20的过程中,波表音乐合成系统10是实时地进行音高位移(doespitch-shiftinreal-time)。举例而言,若音乐数据单元19a以及另一音乐数据单元19b皆包含有钢琴音高F,则合成器16根据音乐数据文件18的要求,进行关于音乐数据单元19a的合成时需进行一次音高位移,而进行至关于音乐数据单元19b的合成时,仍然需再次进行一次音高位移。因此,大量而重复的音高位移运算对于已知波表音乐合成系统10来说,是沉重的工作负担。综合以上所述,已知波表音乐合成系统10具有高储存成本及以高运算负担的缺点。
发明内容本发明的目的是提供一种可依据数据重要性来进行内存管理的波表音乐合成系统及其方法,以使波表音乐合成系统降低储存波表的成本与减轻工作负担,而不至于影响数字音乐输出的品质。本发明是提供一种波表音乐合成系统,用来依据一音乐数据文件的要求(requestfromamusicdatafile)来合成一相对应的数字音乐输出(digitalmusicoutput)。该音乐数据文件中包含有多个音乐数据单元(musicdataunits),每一音乐数据单元则记载有该音乐的相关信息。该波表音乐合成系统包含一波表、一第一内存、一第二内存、一音乐分析器(musicanalyzer)、一波表前处理器、以及一合成器。该波表(wavetable)用来预先存放多笔数字取样数据。每一笔数字取样数据是代表一特定乐器在一预定音高所演奏出音响的取样数据。该内存具有一预定大小的存储容量以用来存放数据。该音乐分析器用以接收该音乐数据文件,并依据一预定的音乐分析程序来对于其中这些音乐数据单元进行分析,并产生出一相对应的重要性分析表(Importanceahalysistable)。该波表前处理器(wavetablepreprocessor)用以依据该第二内存的存储容量以及该重要性分析表,来自该第一内存中选取出该波表中重要性相对较高的数字取样数据、并暂存于该第二内存中。该合成器(synthesizer)用以依据该音乐数据文件而自该第二内存中选取出所需的数字取样数据,并合成该音乐数据文件所要求的数字音乐输出。上述的第一内存以及第二内存可以用两个内存来实施、亦可以一个容量较大的内存来实施。本发明是提供了一依据数据重要性来进行内存管理的波表音乐合成系统与其方法。重要性分析表的主要功用在于有效率地使用内存有限的容量,使有限容量的内存可用来存放重要性较高的数字取样数据,而不是所有被接收的未经过压缩的音乐数据文件。并且在内存的存储容量容许时,波表前处理器会先将部分的数字取样数据进行音高位移,并存放于内存中,以分担合成器的工作负担,并避免重复进行音高位移所需要的运算。因此本发明波表音乐合成系统降低储存波表的成本与减轻工作负担,并能不影响数字音乐输出的品质。关于本发明的优点与精神可以藉由以下的发明详述及附图得到进一步的了解。附图简述图1为已知波表音乐合成系统的示意图。图2为图1的数字取样数据的波形图。图3为图1合成器进行音高位移的示意图。图4为本发明波表音乐合成系统的示意图。图5为本发明利用波表来合成数字音乐输出的方法流程图。附图符号说明40波表音乐合成系统48音乐分析器44波表46第一内存47第二内存52合成器42音乐数据文件43数字音乐输出58序列结果32循环记录点34压缩记录点50波表前处理器56重要性分析表54a、54b、54c数字取样数据42a、42b、42c音乐数据单元具体实施方式请参阅图4,图4为本发明波表音乐合成系统40的示意图。本发明波表音乐合成系统40用来读取一音乐数据文件42、并依据该音乐数据文件42的需求(requestfromamusicdatafile)来合成一相对应的数字音乐输出(digitalmusicoutput)43。波表音乐合成系统40包含一波表44、一第一内存46、一第二内存47、一音乐分析器48、一波表前处理器50以及一合成器52。数字音乐输出43可传送至数字/模拟转换器(未图示)以及扬声器(未图标),以将该数字音乐输出43转换为可供聆听的音乐或是声音。音乐数据文件42可经由译码一计算机合成音乐数据流(MIDIdatastream)而得,其包含有多个音乐数据单元(musicdataunits)42a、42b、42c、、、。每一音乐数据单元则记载有该音乐各个乐段的相关信息,这些相关信息包含该音乐目前的音高(pitch)、音长(duration)与所属的乐器种类等信息。波表(wavetable)44用来预先存放多笔数字取样数据54a、54b、54b、、、,每一笔数字取样数据是代表一特定乐器在一预定音高所演奏出音响的取样数据。例如,数字取样数据54a代表钢琴在音高C演奏出音响的取样数据,而数字取样数据54b代表小提琴在音高G演奏出音响的取样数据。在本实施例中,波表44是存放于第一内存46内。波表音乐合成系统40中,第一内存46具有一预定大小的存储容量以用来存放数据。需要说明的是,波表44可原本即储存在第一内存46中、或是原本储存在波表音乐合成系统40外部(例如其它的内存、光盘储存媒体、甚至网络等等)而后经由读取才进入第一内存46中。音乐分析器(musicanalyzer)48用以接收音乐数据文件42,产生一分析结果58。除此之外,音乐分析器48并可依据一预定的音乐分析程序来对于其中这些音乐数据单元42a、42b、42c、、、进行分析,并产生出一相对应的重要性分析表(Importanceanalysistable)56。波表前处理器(wavetablepreprocessor)50则依据第二内存47的存储容量以及重要性分析表56,来选取出波表44中重要性相对较高的已解压缩数字取样数据57a、57b、57c并暂存在第二内存47中,至于「重要性较高」在本发明中的意义将于后续加以说明。合成器(synthesizer)52用来依据音乐数据文件42而自第二内存47中选取出所需的已解压缩数字取样数据,并合成音乐数据文件42所要求的数字音乐输出43。合成器52是经由分析结果58而得到合成数字音乐输出43时所需要的信息。藉由波表前处理器50,这些数字取样数据54a、54b、54c、、、可经由一预定的压缩程序缩减数据大小(datasize),以存放在波表44之中。而波表前处理器50自波表44中将一些数字取样数据54a、54b、54b、、、选取出之后,径行一预定的解压缩程序,而后将这些已解压缩的数字取样数据暂存在第二内存47中。该预定的压缩程序是经过设计与该预定的解压缩程序配合,以使这些数字取样数据54a、54b、54b、、、在解压缩之后不至于发生循环记录点(loopingpoint)消失的问题。相较于已知波表音乐合成系统10,其波表中是储存未压缩的数字取样数据,而本发明波表音乐合成系统40中,数字取样数据54a、54b、54c、、、是以压缩的形式存在波表44之中,因此本发明可使用较少的存储容量来储存波表44。本发明中暂存在第二内存47中所谓「重要性较高」的已解压缩数字取样数据57a、57b、57c、、、,可以说明如下。由于波表44中所存放的数字取样数据通常包含有多笔的管弦乐取样数据以及多笔的打击乐取样数据。一般而言,波表包含有128笔管弦乐取样数据以及47笔打击乐取样数据。然而,音乐数据文件42的要求通常只使用波表44中部分的数字取样数据,例如,可能只使用8笔管弦乐取样数据以及3笔打击乐取样数据。因此本发明以该预定的音乐分析程序,依据这些音乐数据单元42a、42b、42c、、、中的乐器种类或音高,对于所有这些音乐数据单元以其在后续合成数字音乐输出43的贡献度(contribution)而进行分类、统计与排序,以得出经过排序后的重要性分析表56。藉此预定的音乐分析程序,本发明波表音乐合成系统40得以得知音乐数据文件42的要求使用哪几笔数字取样数据,并得知所使用到的数字取样数据之间的重要性关系。以在实际实施的情形下,使波表前处理器50可依据第二内存47有限的存储容量,并且依据这些数字取样数据的重要性,来从第一内存46中选取出重要性相对较高的数字取样数据以进行该预定的解压缩程序,并将已解压缩的数字取样数据暂存在第二内存47中。波表44中对于一特定乐器仅储存一至两个预定音高的取样数据,其中属于某一乐器的一个或多个数字取样数据,可经由音高位移(pitch-shift)而模拟出属于同一乐器的其它音高的数字取样数据。合成器52会依据音乐数据文件42的分析结果58,自第二内存47中选取出所需的数字取样数据,并进行必要的音高位移(pitch-shift),以完整合成出数字音乐输出43。在第二内存47的存储容量容许的情形下,波表前处理器50会先将部分的数字取样数据进行音高位移,并存放在第二内存47中,以分担合成器52的工作负担。换句话说,合成器52不再需要及时地进行音高位移。举例而言,波表44若只存放有钢琴C的数字取样数据,则在合成其中使用钢琴C、D、F以及G的数字音乐输出43时,本发明藉由钢琴C数字取样数据以仿真出钢琴D、钢琴F以及钢琴G数字取样数据,并暂存在第二内存47之中,使得合成器52在使用钢琴D、F以及G数字取样数据时可直接由第二内存47存取而不需要实时地进行音高位移。由于本发明是以压缩的形式储存波表44中的数字取样数据,因此在实施上本发明不需增设更多的整体存储容量,即可以将部分的数字取样数据先进行音高位移以存放在第二内存47中,提供合成器52后续的使用。如此一来,本发明可避免已知技术中合成器大量而重复的音高位移运算。关于本发明所建立的重要性分析表56,每一数字取样数据的重要性是由该数字取样数据对于后续合成数字音乐输出43的贡献度而定,重要性分析表56并依据该数字取样数据的贡献度来依次排序。在本实施例中,贡献度的决定是依照分析这些音乐数据单元42a、42b、42c、、、所记载的相关信息时,如果需要某一数字取样数据、或需以该数字取样数据来仿真其它音高的数字取样数据的次数愈多,则该数字取样数据的贡献度愈大。而在另一实施例中,贡献度的决定是可依照分析这些音乐数据单元42a、42b、42c、、、所记载的相关信息时,如果需要某一数字取样料或需以该数字取样料来仿真其它音高的数字取样数据的时间愈长,则该数字取样数据的贡献度愈大。请参阅图3及图5。图5为本发明利用波表44来合成数字音乐输出43的方法流程图。本发明利用波表44来合成数字音乐输出43的方法包含下列步骤步骤500开始。步骤502利用波表44(wavetable)来预先存放多笔数字取样数据。步骤504接收音乐数据文件42的要求,依据一预定的音乐分析程序来对于音乐数据文件42中的多个音乐数据单元进行分析,并产生出一相对应的重要性分析表56。步骤506依据第二内存47的存储容量以及重要性分析表56,来自第一内存46中选取出波表44中重要性相对较高的数字取样数据,并依据需要进行必要的解压缩或是音高位移,而后暂存在第二内存47中。步骤508依据音乐数据文件42而自第二内存47中选取出所需的数字取样数据,并合成该音乐数据文件所要求的数字音乐输出43。步骤510结束。综合以上所述,本发明是提供了一依据数据重要性来进行内存管理的波表音乐合成系统与其方法。在波表音乐合成系统的合成器开始合成出数字音乐输出之前,藉由分析音乐数据文件的要求,以建立重要性分析表,使有限的内存可用来存放重要性较高的数字取样数据。并且在内存的存储容量容许时,波表前处理器会先将部分的数字取样数据进行音高位移,并存放在内存中,以分担合成器的工作负担,并避免重复进行音高位移所需要的运算。因此本发明的波表音乐合成系统能降低储存波表的成本与减轻工作负担,并能不影响数字音乐输出的品质。以上的实施例是以两个内存第一内存46以及第二内存47来作说明。第一内存46主要是用来预先储存压缩后的数字取样数据,原则上并不需要写入;第二内存47是用来暂存解压缩后的数字取样数据,以供合成器52读取。这两个内存可以采用两个不同的内存、也可以采用一个容量较大的内存,然后以不同的地址(address)来作区隔。藉由以上较佳具体实施例的详述,是希望能更加清楚描述本发明的特征与精神,而并非以上述所揭露的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的专利范围的范畴内。权利要求1.一种波表音乐合成系统,用来依据一音乐数据文件的要求来合成一相对应的数字音乐输出,该音乐数据文件中包含有多个音乐数据单元,每一音乐数据单元则记载有该音乐的相关信息,该波表音乐合成系统包含一波表,用来预先存放多笔数字取样数据,每一笔数字取样数据是代表一特定乐器在一预定音高所演奏出音响的取样数据;一内存,具有一预定大小的存储容量以用来存放数据;一音乐分析器,用以接收该音乐数据文件,并依据一预定的音乐分析程序来对于其中这些音乐数据单元进行分析,并产生出一相对应的重要性分析表;一波表前处理器,以依据该内存的存储容量以及该重要性分析表,来选取出该波表中重要性相对较高的数字取样数据并暂存在该内存中;以及一合成器,用来依据该音乐数据文件而自该内存中选取出所需的数字取样数据,并合成该音乐数据文件所要求的数字音乐输出。2.如权利要求1所述的波表音乐合成系统,其中,该音乐数据文件是一计算机合成音乐数据流。3.如权利要求1所述的波表音乐合成系统,其中,每一这些音乐数据单元中所记载的相关信息包含该音乐目前的音高、音长与所属的乐器种类。4.如权利要求3所述的波表音乐合成系统,其中,该预定的音乐分析程序是依据记载在这些音乐数据单元中的乐器种类或音高,对于所有这些音乐数据单元进行分类、统计与排序,以得出该重要性分析表。5.如权利要求4所述的波表音乐合成系统,其中,该波表前处理器是以这些数字取样数据的重要性,来决定该波表中哪些数字取样数据需存放在该有限存储容量的内存中,而每一数字取样数据的重要性是由该数字取样数据对于后续合成该数字音乐输出的贡献度而定,该重要性分析表并依据该数字取样数据的贡献度来依次排序。6.如权利要求5所述的波表音乐合成系统,其中,属于某一乐器的一个或多个数字取样数据,可经由音高位移而模拟出属于同一乐器的其它音高的数字取样数据,而在分析这些音乐数据单元所记载的相关信息时,如果需要某一数字取样数据或需以该数字取样数据来仿真其它音高的数字取样数据的次数愈多,则该数字取样数据的贡献度愈大。7.如权利要求6所述的波表音乐合成系统,其中,在合成该数字音乐输出时,如果某一数字取样数据或需以该数字取样数据来仿真其它音高的数字取样数据的时间愈长,则该数字取样数据的贡献度愈大。8.如权利要求1所述的波表音乐合成系统,其中,该波表中所存放的数字取样数据包含有多笔的管弦乐取样数据以及多笔的打击乐取样数据。9.如权利要求1所述的波表音乐合成系统,其中,该合成器会依据该音乐数据文件自该内存中选取出所需的数字取样数据,并进行必要的音高位移,以完整合成出该数字音乐输出。10.如权利要求1所述的波表音乐合成系统,该波表前处理器会先将部分的数字取样数据进行音高位移,并存放在该内存中,以分担该合成器的工作负荷。11.如权利要求1所述的波表音乐合成系统,其中,这些数字取样数据是可经由一预定的压缩程序缩减数据大小,以存放在该波表之中。12.一种利用波表来合成数字音乐输出的方法,该方法包含下列步骤利用一波表来预先存放多笔数字取样数据,每一笔数字取样数据是代表一特定乐器在一预定音高所演奏出音响的取样数据;接收一音乐数据文件的要求,并依据一预定的音乐分析程序来对于该音乐数据文件中的多个音乐数据单元进行分析,并产生出一相对应的重要性分析表,其中,每一这些音乐数据单元中则记载有该音乐的相关信息;依据一内存的存储容量以及该重要性分析表,来选取出该波表中重要性相对较高的数字取样数据并暂存在该内存中;以及依据该音乐数据文件而自该内存中选取出所需的数字取样数据,并合成该音乐数据文件所要求的数字音乐输出。13.如权利要求1所述的方法,其中,该音乐数据文件是一计算机合成音乐数据流。14.如权利要求1所述的方法,其中,每一这些音乐数据单元中所记载的相关信息包含该音乐目前的音高、音长与所属的乐器种类。15.如权利要求14所述的方法,其中,该预定的音乐分析程序是依据记载在这些音乐数据单元中的乐器种类或音高,对于所有这些音乐数据单元进行分类、统计与排序,以得出该重要性分析表。16.如权利要求15所述的方法,其中,这些数字取样数据的重要性会被用来决定该波表中哪些数字取样数据需存放在该有限存储容量的内存中,而每一数字取样数据的重要性在由该数字取样数据对于后续合成该数字音乐输出的贡献度而定,该重要性分析表并依据该数字取样数据的贡献度来依次排序。17.如权利要求16所述的方法,其中,属于某一乐器的一个或多个数字取样数据,可经由音高位移而模拟出属于同一乐器的其它音高的数字取样数据,而在分析这些音乐数据单元所记载的相关信息时,如果需要某一数字取样数据或需以该数字取样数据来仿真其它音高的数字取样数据的次数愈多,则该数字取样数据的贡献度愈大。18.如权利要求17所述的方法,其中,在合成该数字音乐输出时,如果某一数字取样数据或需以该数字取样数据来仿真其它音高的数字取样数据的时间愈长,则该数字取样数据的贡献度愈大。19.如权利要求12所述的方法,其中,该方法依据该音乐数据文件而自该内存中选取出所需的数字取样数据之后,会先进行必要的音高位移,以完整合成出该数字音乐输出。20.如权利要求12所述的方法,该方法在选取出该波表中重要性相对较高的数字取样数据之时,会先将部分的数字取样数据进行音高位移并存放在该内存中,以减轻后续的工作负荷并加速该数字音乐输出的合成。全文摘要一种波表音乐合成系统,用来依据一音乐数据文件以合成一相对应的数字音乐输出。该系统包含一波表、一第一内存、一第二内存、一音乐分析器、一波表前处理器以及一合成器。该第一内存与该第二内存可以用两个内存来实施,亦可以一个容量较大的内存来实施。文档编号G10H7/00GK1661672SQ200410005948公开日2005年8月31日申请日期2004年2月23日优先权日2004年2月23日发明者林宗瑶,张北辰申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1