发明内容
本发明所要解决的技术问题是提供一种根据音符生成MIDI音乐的方法和装置,使音乐的创作简单化、便捷化。
为了解决上述问题,本发明公开了一种根据音符生成MIDI音乐的方法,包括:
对输入音符进行音乐属性的分析;
对输入音符进行音符与和弦映射的分析;
根据音乐属性、和弦映射关系和音乐素材库,通过预置规则一确定音乐结构,其中音乐结构由从音乐素材库中选取的匹配的和弦进行式构成;
通过所述音乐结构和预置规则二从音乐素材库选取匹配的旋律,得到旋律轨,生成MIDI音乐。
优选的,所述音乐属性的分析为:分析各个输入音符之间的音程,根据音程关系匹配相应的调式。
进一步,使输入音符代替从音乐素材库选取的旋律中的至少一个音符,得到MIDI音乐的旋律轨。
优选的,所述音乐素材库包括:各种旋律、伴奏、和弦进行式和各种风格的鼓点;其中一段旋律与多个和弦进行式相对应,一段伴奏与多个和弦进行式相对应。
优选的,所述方法还包括:
根据所述音乐结构和预置规则三从音乐素材库选取匹配的伴奏,得到伴奏轨,并加入到MIDI音乐的生成中。
优选的,所述方法还包括:
按照用户的设置或音乐属性确定音乐风格;
根据音乐风格从音乐素材库中选择相应风格的鼓点,加入到MIDI音乐的生成中。
优选的,所述方法还包括:
分析各个输入音符之间的音程之前,通过升八度和降八度的方式使各个音符之间的音程最小。
优选的,所述方法还包括效果处理:
对MIDI音乐中出现的输入音符进行力度、弯音轮和触后效果处理;
对各个旋律轨和/或伴奏轨进行平滑、简化和对齐处理。
此外,本发明还公开了一种根据音符生成MIDI音乐的装置,包括:
音符分析单元,用于对输入音符进行音乐属性、音符与和弦映射的分析;
结构确定单元,用于根据音乐属性、和弦映射关系和音乐素材库,通过预置规则一确定音乐结构,其中音乐结构由从音乐素材库中选取的匹配的和弦进行式构成;
音乐生成单元,用于通过所述音乐结构和预置规则二从音乐素材库选取匹配的旋律,得到旋律轨,生成MIDI音乐。
优选的,所述音符分析单元包括:属性分析子单元,用于分析各个输入音符之间的音程,根据音程关系匹配相应的调式。
优选的,所述音乐生成单元使输入音符代替从音乐素材库选取的旋律中的至少一个音符,得到MIDI音乐的旋律轨。
优选的,所述音乐素材库包括:
各种旋律、伴奏、和弦进行式和各种风格的鼓点;其中一段旋律与多个和弦进行式相对应,一段伴奏与多个和弦进行式相对应。
优选的,所述音乐生成单元还包括:
伴奏轨生成子单元,用于根据所述音乐结构和预置规则三从音乐素材库选取匹配的伴奏,得到伴奏轨,并加入到MIDI音乐的生成中。
优选的,所述音乐生成单元还包括:
鼓点生成子单元,用于按照用户的设置或音乐属性确定音乐风格,并根据音乐风格从音乐素材库中选择相应风格的鼓点,加入到MIDI音乐的生成中。
优选的,所述装置还包括:
效果处理单元,用于对MIDI音乐中出现的输入音符进行力度、弯音轮和触后效果处理;对各个旋律轨和/或伴奏轨进行平滑、简化和对齐处理。
与现有技术相比,本发明具有以下优点:
本发明通过对输入音符进行分析,根据分析结果与预置音乐库中的素材进行匹配,将匹配到的各个音乐素材组合生成MIDI音乐。其音乐的生成方法简单,对于没有乐理基础的用户来说,可以根据用户随意输入的音符自动生成与该音符具有一定关系的MIDI音乐。通过输入音符的替代,以及对音乐的效果处理,还可以使生成的音乐保留并突出输入音符的特征。本发明不需要用户编曲处理,使音乐的创作简单化、自动化。此外,由于生成的音乐即是输入音符的反馈,可以将用户构想的某一音节或乐句作为输入音符,以此中心扩展为一段完整的音乐,具有一定的娱乐性。
此外,对于有音乐基础的用户,如某些音乐制作人来说,通过有针对性的输入某些音符,得到具有该音符特点的音乐,该方法可以简化音乐的创作流程,方便音乐的创作。同时,对于已有的音乐,还可以有针对性的输入特定音符,将生成的音乐作为已有音乐的伴奏。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种根据音符生成MIDI音乐的方法实施例的流程图,包括:
步骤101,对输入音符进行音乐属性的分析;
首先分析输入音符的音乐属性。优选的,所述音乐属性的分析为分析各个输入音符之间的音程,根据音程关系确定相应的调式。具体为根据音符之间的音程关系,匹配常用到的音阶模式,按照音阶模式确定所要生成MIDI音乐的调式。
通常用半音来计算各种常见音程,以下如没有特殊说明,以简谱的形式表示各个音符。音程计算如下所示,
距离0个半音:纯一度(例如1-1、3-3);
距离1个半音:小二度(例如3-4)、增一度(例如1-#1);
距离2个半音:大二度(例如1-2)、减三度(例如#2-4);
距离3个半音:小三度、增二度;
距离4个半音:大三度、减四度;
距离5个半音:纯四度;距离6个半音:增四度、减五度;
距离7个半音:纯五度;距离8个半音:小六度;
距离9个半音:大六度;距离10个半音:小七度;
距离11个半音:大七度;距离12个半音:纯八度。
一般的音阶模式包括:大调音阶,自然小调音阶,和声小调音阶,旋律小调音阶,中国五声音阶,日本五声音阶,布鲁斯五声音阶,布鲁斯六声音阶,布鲁斯七声音阶,减音阶,全音阶,印度音阶,吉普赛音阶,匈牙利音阶,匈牙利小调音阶,爵士半音阶等。则根据音符之间的音程关系可以匹配到上述音阶模式。音阶模式与调式相对应,调式是几个音符按照其间的高低关系、稳定和不稳定关系组织起来的一个体系,而且以一个音符为中心音(即主音)。例如,C大调(其音阶关系为:1-2-3-4-5-6-7-1),就是一个以1为主音的调式。
以下列举几个音阶模式与调式的对应关系:
大调音阶,构成音符为1-2-3-4-5-6-7-1,为大调的基本形式。
自然小调,构成音符为6-7-1-2-3-4-5-6,为小调的基本形式。
和声小调,构成音符为6-7-1-2-3-4-#5-6,为升第七级的自然小调。
旋律小调,构成音符为6-7-1-2-3-#4-#5-6-5-4-3-2-1-7-6,上行时升第六第七级,下行时还原。
吉普赛音阶,构成音符为1-b3-#4-5-b6-b7-1,为升第四级的自然小调。
匈牙利音阶,构成音符为1-#2-3-#4-5-6-b7-1,升二、四级降七级的大调。
则通过分析各个输入音符之间的音程,根据音程关系确定的音阶模式就能够匹配到相对应的调式。在出现匹配调式不唯一的情况下,可以由用户进行选择,还可以由系统随机的确定或通过预先设置的规则确定出一种调式。
步骤102,对输入音符进行音符与和弦映射的分析;
和弦大致分为三类:和谐的和弦(I,VI),不和谐的和弦(II,IV),极不和谐的和弦(III,V),即I和弦与VI和弦稳定,II和弦与IV和弦比较不稳定,III和弦与V和弦极不稳定。音符与和弦的映射关系如下所示:
135与I和弦相对应;246与II和弦相对应;357与III和弦相对应;
461与IV和弦相对应;572与V和弦相对应;613与VI和弦相对应。
由上述映射关系可以看出,音符与和弦的映射可以是一对多的,如2对应II和弦、V和弦;3对应I和弦、III和弦、VI和弦。对输入的各个音符,可以按照预先设置的规则从映射关系中确定出音符所对应的和弦,例如,在输入音符中有4、6的时候,将音符2与II和弦相对应;在输入音符有5、7的时候,将音符2与V和弦相对应。还可以设定对于输入的前几个音符与稳定的和弦相对应,对输入的后几个音符与极不稳定的和弦相对应,对于输入的中间音符与比较稳定的和弦相对应;或者还可以设定系统随机的从上述映射关系中确定出输入音符对应的和弦。
步骤103,根据音乐属性、和弦映射关系和音乐素材库,通过预置规则一确定音乐结构,其中音乐结构由从音乐素材库中选取的匹配的和弦进行式构成;
优选的,所述音乐素材库包括:各种旋律、伴奏、和弦进行式和各种风格的鼓点;其中一段旋律与多个和弦进行式相对应,一段伴奏与多个和弦进行式相对应。对于音乐素材库,可以包括基于C调的各种旋律和伴奏,其他各调式的旋律和伴奏通过对C调升调或者降调即可以得到,可以包括与标准和弦进行式对应的预先制作好的各种旋律和伴奏,还包括人们熟悉各种旋律和伴奏。伴奏和旋律的每个小节或半小节都对应已知的和弦,各个乐句对应由已知和弦组成的和弦进行式。
根据输入音符,确定了调式和音符与和弦映射,就可以从音乐素材库中选取匹配的和弦进行式。例如正三和弦的进行式,音符与调式、和弦的对应关系如下:
I-IV-I和弦进行式,与调式的匹对应关系如下,
对于C大调为:C-F-C;对G大调为:G-C-G;
对于a小调为:Am-Dm-Am;对于e小调为:Em-Am-Em。
I-V-I和弦进行式,与调式的对应关系如下,
对于C大调为:C-G7-C;对于G大调和弦进行式为:G-D7-G
对于a小调为:Am-E7-Am;对于e小调和弦进行式为:Em-B7-Em;
对于F大调为:F-C7-F;对于d小调和弦进行式为:Dm-A7-Dm。
对于输入音符,根据其映射得到的和弦,可以按照预置规则一与音乐素材库中的和弦进行式匹配。如果音符映射得到的和弦构成的和弦进行式能够与音乐素材库中的和弦进行式对应,则直接进行匹配。如果音符映射得到的和弦不能构成标准的和弦进行式,与素材库中的和弦进行式无法对应,例如输入音符较少的情况下,按照预置规则一的设置进行匹配。可以选取音乐素材库中含有映射和弦的和弦进行式来匹配。进一步还可以设定不同的匹配级别,选取最高匹配度的和弦进行式来匹配,例如,根据包含除映射和弦外的其他和弦的个数、映射和弦出现的次数、顺序等参数进行匹配级别的划分。此外,在输入音符较多的情况下,可以将多个音符映射的和弦进行组合,然后与音乐素材库中的多个和弦进行式进行匹配。因此,根据音乐的调式和和弦映射关系就可以通过预置规则一从音乐素材库中选取匹配的和弦进行式,构成所要生成MIDI音乐的音乐结构。
步骤104,通过所述音乐结构和预置规则二从音乐素材库选取匹配的旋律,得到旋律轨,生成MIDI音乐。
音乐素材库中存储有大量的旋律,所述旋律可以是一首完整音乐的旋律,也可以是一段旋律。旋律的每一乐句与音乐素材库中的和弦进行式有对应关系,不同旋律的乐句可能会对应同一种和弦进行式。根据步骤103确定的音乐结构可以从素材库中匹配有相应和弦进行式的旋律。由步骤103得到的音乐结构的各个和弦进行式可以与一首完整音乐旋律的和弦进行式相对应,则按照预置规则二直接进行匹配,将该旋律生成MIDI音乐的旋律轨。此外,构成音乐结构的各个和弦进行式还可以和音乐素材库中不同的旋律段相匹配,则按照预置规则二选取各个匹配的旋律组合成旋律轨。例如构成音乐结构的前四个和弦进行式与某段旋律A相匹配,中间四个和弦进行式与某段旋律B相匹配,最后三个和弦进行式与旋律C和旋律D均相互匹配,则按照预置规则二,选取关联度最高的旋律组合生成旋律轨,例如将音乐风格、和谐程度等作为关联参数,选取旋律A、旋律B和旋律D组合生成旋律轨。所述生成的旋律轨即可以直接作为一个MIDI音乐。
优选的,根据所述音乐结构和预置规则从音乐素材库选取匹配的伴奏,得到伴奏轨并加入到MIDI音乐的生成中。
除了旋律,音乐素材库中还包括各种的伴奏,各个伴奏与和弦进行式相互对应,因此可以生成伴奏轨与旋律轨一起组合到MIDI音乐中。伴奏轨的生成与旋律轨的生成方法一样,也是根据音乐结构选取音乐素材库中有匹配和弦进行式的伴奏,将匹配得到的一个完整的伴奏或者各个伴奏的组合生成伴奏轨。
本发明实施例通过对用户输入音符的分析生成具有旋律轨和伴奏轨的MIDI音乐,生成音乐的方法简单,不需要用户额外的加工处理,对于没有乐理基础的用户来说,可以根据用户随意输入的音符自动生成MIDI音乐,并且该音乐与输入音符有一定的关系,含有输入音符的属性以及和弦映射关系,该方法不需要用户编曲处理,使音乐的创作简单化、自动化、娱乐化。
参照图2,示出了本发明一种根据音符生成MIDI音乐的方法优选实施例的流程图,包括:
步骤201,通过升八度和降八度的方式使各个输入音符之间的音程最小;
由于输入的音符可能是用户随机选择的,因此各个音符之间的音程可能存在音程较大而无法匹配对应的调式,例如两个相邻音符一个在高音区,一个在低音区,因此需要以升八度和降八度的方式减小输入音符之间的音程。
例如在本实施例中,用户输入音符为e、G、B,则首先要减小输入音符之间的音程,以升八度和降八度的方式使各个音符之间的音程最靠近,即高音e通过降八度成为中音E,则输入音符变为E,G,B。
步骤202,分析各个音符之间的音程,根据音程关系确定相应的调式;
上述各个音符间的音程如下:E-G为小三度,G-B为大三度,E-B为纯五度。然后,将音程关系和各种音阶模式进行对应,匹配得到合适的调式。以上述为例,根据音阶关系可得到配置的调式可以为G小调:则6配E,1配G,3配B;也可为C大调:则3配E,5配G,7配B。本实施例可以按照预先的设置,选择输入音符的音阶由高到低的顺序进行匹配,则确定调式为C大调,输入音符为3、5、7。
步骤203,对各个音符进行音符与和弦映射的分析;
本实施例中对于调式为C大调的音符E、G、B有如下和弦映射关系:
音符E与C调的I和弦、III和弦、VI和弦相映射;
音符G与C调的I和弦、III和弦、V和弦相映射;
音符B与C调的III和弦、V和弦相映射。
按照预先设置的规则从映射关系中确定音符对应的和弦,本实施例对前两个音符共有的和弦,以及后两个音符共有的和弦为参照,确定出音符对应的和弦,则音符E映射为I和弦;音符G映射为I和弦;音符B映射为V和弦。
步骤204,根据所述调式、和弦映射关系和音乐素材库,通过预置规则一确定音乐结构,其中音乐结构由从音乐素材库中选取的匹配的和弦进行式构成;
根据确定的C大调以及和弦映射关系,从素材库中匹配相应的和弦进行式,根据预置的规则一,选取包含有I和弦、V和弦的进行式,假设根据匹配级别得到两个和弦进行式,则将这两个和弦进行式组成所要生成MIDI音乐的音乐结构:
第一乐句的和弦进行式为:|I-|I-|IV|IV|;
第二乐句的和弦进行式为:|VI|VI|VI|VI|。
步骤205,通过所述音乐结构和预置规则二从音乐素材库选取匹配的旋律,使输入音符代替该旋律中的至少一个音符,生成MIDI音乐的旋律轨;
在音乐素材库中,可能会有不同的旋律段分别与构成音乐结构的上述两个和弦进行式相对应,或者有某首完整音乐旋律与上述确定的音乐结构的和弦进行式相对应,则按照预置规则二,选取后者进行匹配,本实施例中,假设可以匹配到音乐《两只老虎》的旋律,以下用简谱表示旋律,
第一乐句的简谱:|1-2-3-1-|1-2-3-1-|3-4-5---|3-4-5---|
对应和弦进行式:|I-|I-|IV|IV|
第二乐句的简谱:|56543-1-|56543-1-|2-5-1---|2-5-1---|
对应和弦进行式:|VI|VI|VI|VI|
进一步,为了突出输入音符的特征音符,将该段旋律中的几个音符替代为输入音符:
第一乐句的和弦进行式:|I-|I-|IV|IV|
第一乐句的简谱:|3-2-3-1-|1-3-3-1-|3-4-5---|3-4-5---|
(将第一小节的第一个1代替为3;将第二小节的2代替为3。)
第二乐句的和弦进行式:|VI|VI|VI|VI|
第二乐句的简谱:|76743-3-|57573-1-|5-7-3---|5-7-3---|
(将第一小节的5代替为7,1代替为3;将第二小节的6、4代替为7;将第三小节的2、5、1分别代替为5、7、3)
通过上述音符的替代后,该段旋律突出了输入音符3、5、7,最后将该旋律生成MIDI音乐的旋律轨。
步骤206,根据所述音乐结构和预置规则三从音乐素材库选取匹配的伴奏,生成MIDI音乐的伴奏轨;
音乐结构是生成旋律及伴奏的依据,本步骤根据音乐结构搜寻音乐素材库,选择具有匹配和弦进行式的伴奏,生成伴奏轨,方法类似于旋律轨的生成,此处从略。
步骤207,按照用户的设置或匹配的调式确定音乐风格,根据音乐风格从音乐素材库中选择相应风格的鼓点;
音乐风格按照不同的标准有不同的分类,比如可有如下分类:古典(Classical)、流行(Pop)、电子(Electronic)、拉丁(Latin)、摇滚(Rock)、爵士(Jazz)等。音乐风格可以按照用户的设置选择;此外,还可以根据匹配的调式作为音乐风格的参考,例如大调的表现明亮,坚定,小调表现柔和,暗淡,此处我们可以根据C大调确定风格为流行,则从音乐素材库中选择具有流行风格的鼓点。
步骤208,将所述旋律轨、伴奏轨和鼓点组合,进行效果处理后生成MIDI音乐。
由于生成的旋律轨及伴奏轨有可能来自于不同的素材,需要对各音轨进行平滑、简化、对齐等处理,对组成旋律轨和伴奏轨的各个组成部分进行过渡处理。本实施例中,所匹配的旋律来自于一首完整的音乐,而不是由各个旋律组合而成,因此不需要进行此处理。
为了强化输入音符的特征,对属于此类的音符进行力度、弯音轮和触后效果处理。弯音轮、触后效果都是MIDI音乐中美化MIDI音乐的一种方法。通常的颤音,滑音都是采用这此方法实现,通过该效果处理,在音乐中突出输入音符的表现力。同时还可进行转调和离调的处理。音乐是建立在调式调性基础上的,不同的调有不同的色彩,构成不同的和声。比如C大调的572和弦在C调是属功能,在G调大却是主功能,听起来感觉就会不同。有了转调和离调的技术,乐曲才是复杂多彩。
本发明实施例,在生成的MIDI除了加入了伴奏轨,还加入了与音乐风格相对应的鼓点,使音乐的表现内容更加丰富。此外,对旋律进行了输入音符的替代,以及对音乐的效果处理,使生成的音乐保留并突出输入音符的特征。
参照图3,示出了本发明一种根据音符生成MIDI音乐的装置实施例的结构图,包括:
音符分析单元301,用于对输入音符进行音乐属性、音符与和弦映射的分析;
结构确定单元302,用于根据音乐属性、和弦映射关系和音乐素材库,通过预置规则一确定音乐结构,其中音乐结构由从音乐素材库中选取的匹配的和弦进行式构成;
音乐生成单元303,用于通过所述音乐结构和预置规则二从音乐素材库选取匹配的旋律,得到旋律轨,生成MIDI音乐。
优选的,所述音符分析单元301包括属性分析子单元3011,用于分析各个输入音符之间的音程,根据音程关系匹配相应的调式。
为了强调输入音符的特性,优选的,所述音乐生成单元303包括:
音符强化子单元3031,用于将从音乐素材库选取的旋律中的至少一个音符替代为输入音符,得到MIDI音乐的旋律轨。
在具体实现中,为了丰富MIDI音乐的信息,优选的,所述音乐生成单元303还包括:
伴奏轨生成子单元3032,用于根据所述音乐结构从音乐素材库选取匹配的伴奏,得到伴奏轨并加入到MIDI音乐的生成中。
优选的,所述音乐生成单元303还包括:
鼓点生成子单元3033,用于按照用户的设置确定音乐风格,并根据音乐风格从音乐素材库中选择相应风格的鼓点,加入到MIDI音乐的生成中。
进一步,为了突出输入音符的特性以及使MIDI音乐的播放顺畅,所述装置还包括:
效果处理单元304,用于对MIDI音乐中出现的输入音符进行力度、弯音轮和触后效果处理;对各个旋律轨和/或伴奏轨进行平滑、简化和对齐处理。
本发明实施例可以有如下应用场景:
对于没有乐理基础的用户,用户想要自己制作出音乐,则可以通过本发明实施例随意的输入几个音符,通过对音符的分析从音乐素材库中匹配各种音乐元素,进行组合生成一首MIDI音乐。该生成音乐根据音符分析得到的音乐属性和和弦映射生成,具有输入音符的特性,进一步,还可以通过音符替代和效果处理,使MIDI音乐突出表现输入音符。例如将该装置安装在手机中,用户的数字键1至7对应为各个音符的输入键。则在手机的音乐生成模式下,通过手机按键,用户随意按下几个按键,即可生成一段具有该音符特性的MIDI音乐。其他的键“8”“9”“*”“#”等作为音乐风格的设置键和音乐生成后的效果处理(如加重力度、节奏变化等)设置键。
此外,本发明还可以作为一种娱乐工具,输入简单几个音符即可得到一段MIDI音乐,并且生成的音乐是输入音符的反馈,也就是说可以将输入的几个音符作为一个音节、或乐句(例如用户哼出了较短的几个音符),则可以以该音节为中心,根据匹配的旋律进行扩展得到一首完整的音乐。
对于有音乐基础的用户,该装置可以作为一个音乐制作器,则用户有针对性的输入某些音符,得到具有该音符特点的音乐,该方法可以简化音乐的创作流程,创造出更多的音乐。还可以针对已有的音乐,将由输入特定音符生成的MIDI音乐作为已有音乐的伴奏。例如,用户想要得到《两只老虎》伴奏,则可以对于每一音节输入特定的音符实现伴奏:
第一乐句的和弦进行式:|I-|I-|IV|IV|
输入音符的简谱:|1-|1-|15|15|
第二乐句的和弦进行式:|VI|VI|VI|VI|
输入音符的简谱:|51|51|51|51|
通过该方法生成的MIDI音乐是根据输入特定音符和弦进行式得到的,可以作为已有音乐的伴奏,简化了音乐的编曲的流程,快捷方便。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种根据音符生成MIDI音乐的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。