一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于运动动作的乐曲生成方法及运动手环与流程

2022-04-09 11:40:09 来源:中国专利 TAG:


1.本技术涉及音乐技术领域,具体涉及一种基于运动动作的乐曲生成方法及运动手环。


背景技术:

2.运动和音乐是人们休闲活动中常常联系在一起的两个元素,边运动边听音乐已经成为很多运动爱好者的常规动作。如果能在运动过程中生成跟运动动作相关的音乐旋律,则会给人们带来更多的乐趣。目前人工智能生成音乐的算法在数字音乐领域有不少人在研究,常用的算法一般是预先选择的音乐风格,在庞大的音乐旋律数据库中通过随机数生成的方式选择合适的片段组合而成。这样生成的旋律难以和人直接产生联系,且较难跳出数据库的框架。


技术实现要素:

3.鉴于上述问题,本技术提供了一种基于运动动作的乐曲生成方法及运动手环,解决现有基于音乐旋律的生成难以和人直接产生联系且较难跳出数据库框架的问题。
4.为实现上述目的,发明人提供了一种基于运动动作的乐曲生成方法,包括以下步骤:
5.运动数据采集:通过六轴惯性传感器采集用户的运动数据,所述运动数据包括三轴加速度数据及三轴角速度数据;
6.乐曲速度生成:根据采集的三轴加速度数据生成乐曲的节拍速度;
7.律动生成:随机生成预设个数的整数作为预设个数的小节的律动;
8.旋律生成:根据生成的律动读取采集的三轴角速度数据,将获取的三轴角速度数据换算成对应的音阶,并生成相应的旋律线;
9.乐曲生成:根据生成的旋律线及节拍速度通过标准midi格式生成midi乐曲。
10.进一步优化,所述乐曲速度生成步骤具体包括以下步骤:
11.以预设频率读取预设时间内的三轴加速度数据;
12.计算读取的三轴加速度数据的绝对值a(t);
13.将计算得到的绝对值a(t)通过傅里叶离散变化得到三轴加速度数据的频域数据a’(f)=dft[a(t)];
[0014]
通过对频域数据a’(f)进行高斯函数拟合获得其峰值所在频率f0;
[0015]
根据得到的频率f0计算乐曲节拍速度为60*f0 bpm。
[0016]
进一步优化,所述步骤律动生成步骤具体包括以下步骤:
[0017]
生成预设个数的正整数,所述正整数在预设范围内,所述预设个数为预设小节数,所述预设范围为二的m次方,m为预设节拍中拍数*时值;
[0018]
将生成的正整数转化为二进制数,所述二进制的位数为m位;
[0019]
将生成的预设个数的二进制构成乐曲的律动数组。
[0020]
进一步优化,所述旋律生成步骤具体包括以下步骤
[0021]
建立三轴角速度数据与自然音阶的对应表;
[0022]
根据预设节拍的时间周期读取二进制上各个位数的值判断是否需要产生新的音符;
[0023]
若位数上的值为1,则产生新的音符;
[0024]
若位数上的值为0,则延续上一音符;
[0025]
当产生新的音符时,读取三轴角速度数据,
[0026]
读取三轴角速度数据对应的音符,加入到对应的旋律线中,生成包含时间点和音符的旋律线。
[0027]
进一步优化,所述乐曲生成具体包括以下步骤:
[0028]
生成midi乐曲的midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;
[0029]
将生成的旋律线按照midi标准规范生成midi音符开关的消息加入midi文件形成midi乐曲。
[0030]
还提供了另一个技术方案:一种具有乐曲生成功能的运动手环,包括手环本体、单片机及六轴惯性传感器;
[0031]
所述六轴惯性传感器及单片机设置在手环本体内;
[0032]
所述手环本体用于穿戴在用户的手部;
[0033]
所述六轴惯性传感器用于采集用户的运动数据,所述运动数据包括三轴加速度数据及三轴角速度数据;
[0034]
所述单片机用于根据采集的三轴加速度数据生成乐曲的节拍速度,随机生成预设个数的整数作为预设个数的小节的律动,根据生成的律动读取采集的三轴角速度数据,将获取的三轴角速度数据换算成对应的音阶,并生成相应的旋律线,根据生成的旋律线及节拍速度通过标准midi格式生成midi乐曲。
[0035]
进一步优化,所述单片机还用于:
[0036]
计算读取的三轴加速度数据的绝对值a(t);
[0037]
将计算得到的绝对值a(t)通过傅里叶离散变化得到三轴加速度数据的频域数据a’(f)=dft[a(t)];
[0038]
通过对频域数据a’(f)进行高斯函数拟合获得其峰值所在频率f0;
[0039]
根据得到的频率f0计算乐曲节拍速度为60*f0 bpm。
[0040]
进一步优化,所述单片机还用于:
[0041]
生成预设个数的正整数,所述正整数在预设范围内,所述预设个数为预设小节数,所述预设范围为二的m次方,m为预设节拍中拍数*时值;
[0042]
将生成的正整数转化为二进制数,所述二进制的位数为m位;
[0043]
将生成的预设个数的二进制构成乐曲的律动数组。
[0044]
进一步优化,所述单片机还用于:
[0045]
建立三轴角速度数据与自然音阶的对应表;
[0046]
根据预设节拍的时间周期读取二进制上各个位数的值判断是否需要产生新的音符;
[0047]
若位数上的值为1,则产生新的音符;
[0048]
若位数上的值为0,则延续上一音符;
[0049]
当产生新的音符时,读取三轴角速度数据,
[0050]
读取三轴角速度数据对应的音符,加入到对应的旋律线中,生成包含时间点和音符的旋律线。
[0051]
进一步优化,所述单片机还用于:
[0052]
生成midi乐曲的midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;
[0053]
将生成的旋律线按照midi标准规范生成midi音符开关的消息加入midi文件形成midi乐曲。
[0054]
区别于现有技术,上述技术方案,当人员在运动时,通过六轴惯性传感器进行采集用户的运动数据,其中,运动数据包括三轴加速度数据及三轴角速度数据,通过采集的三轴加速度数据生成乐曲的节拍速度,然后随机生成预设个数的整座作为预设个数的小节的律动,然后再根据生成的律动读取采集的三轴角速度数据,然后将获取的三轴加速度数据换算成对应的音阶,生成相应的旋律线,然后根据生成的旋律线和乐曲的节拍速度通过标准midi格式生成midi乐曲,将用户的运动数据和乐曲的生成结合在一起,而且无需存储大量的音乐旋律数数据,实现人人都可以成为自然的作曲家。
[0055]
上述发明内容相关记载仅是本技术技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本技术的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本技术的上述目的及其它目的、特征和优点能够更易于理解,以下结合本技术的具体实施方式及附图进行说明。
附图说明
[0056]
附图仅用于示出本技术具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本技术的限制。
[0057]
在说明书附图中:
[0058]
图1为具体实施方式所述具有乐曲生成功能的运动手环的一种结构示意图;
[0059]
图2为具体实施方式所述基于运动动作的乐曲生成方法的一种流程示意图。
[0060]
图3为具体实施方式所述基于运动动作的乐曲生成方法的另一种流程示意图;
[0061]
图4为具体实施方式所述乐曲速度生成步骤的一种流程示意图;
[0062]
图5为具体实施方式所述律动生成步骤的一种流程示意图;
[0063]
图6为具体实施方式所述旋律生成步骤的一种流程示意图。
[0064]
上述各附图中涉及的附图标记说明如下:
[0065]
100、运动手环,
[0066]
110、六轴惯性传感器,
[0067]
120、单片机。
具体实施方式
[0068]
为详细说明本技术可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本技术的技术方案,因此只作为示例,而不能以此来限制本技术的保护范
围。
[0069]
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本技术中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
[0070]
除非另有定义,本文所使用的技术术语的含义与本技术所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本技术。
[0071]
在本技术的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如a和/或b,表示:存在a,存在b,以及同时存在a和b这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
[0072]
在本技术中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
[0073]
在没有更多限制的情况下,在本技术中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
[0074]
与《审查指南》中的理解相同,在本技术中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本技术实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
[0075]
在本技术实施例的描述中,所使用的与空间相关的表述,诸如“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“垂直”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等,所指示的方位或位置关系是基于具体实施例或附图所示的方位或位置关系,仅是为了便于描述本技术的具体实施例或便于读者理解,而不是指示或暗示所指的装置或部件必须具有特定的位置、特定的方位、或以特定的方位构造或操作,因此不能理解为对本技术实施例的限制。
[0076]
除非另有明确的规定或限定,在本技术实施例的描述中,所使用的“安装”“相连”“连接”“固定”“设置”等用语应做广义理解。例如,所述“连接”可以是固定连接,也可以是可拆卸连接,或成一体设置;其可以是机械连接,也可以是电连接,也可以是通信连接;其可以是直接相连,也可以通过中间媒介间接相连;其可以是两个元件内部的连通或两个元件的相互作用关系。对于本技术所属技术领域的技术人员而言,可以根据具体情况理解上述用语在本技术实施例中的具体含义。
[0077]
请参阅图1,本实施例提供了一种具有乐曲生成功能的运动手环100,包括手环本体、单片机120及六轴惯性传感器110;
[0078]
所述六轴惯性传感器110及单片机120设置在手环本体内;
[0079]
所述手环本体用于穿戴在用户的手部;
[0080]
所述六轴惯性传感器110用于采集用户的运动数据,所述运动数据包括三轴加速度数据及三轴角速度数据;
[0081]
所述单片机120用于根据采集的三轴加速度数据生成乐曲的节拍速度,随机生成预设个数的整数作为预设个数的小节的律动,根据生成的律动读取采集的三轴角速度数据,将获取的三轴角速度数据换算成对应的音阶,并生成相应的旋律线,根据生成的旋律线及节拍速度通过标准midi格式生成midi乐曲。
[0082]
惯性传感器是一种传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(dof)运动,是解决导航、定向和运动载体控制的重要部件。惯性传感器包括加速度计(或加速度传感计)和角速度传感器(陀螺),六轴惯性传感器110即包括三轴陀螺仪和三轴加速度传感器。
[0083]
单片机120(single-chip microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300m的高速单片机。
[0084]
节拍,是衡量节奏的单位,节拍是乐曲中表示固定单位时值和强弱规律的组织形式,又称拍子。每小节中强拍和弱拍的循环称二拍子;强拍、弱拍、弱拍的循环称三拍子。表示每小节中基本单位拍的时值和数量的记号,称拍号。拍号的上方数字表示每小节的拍数,下方数字表示每拍的时值。如2/4、4/4、3/4拍等。2/4拍中,2为每小节为拍数,4为每拍的时值。
[0085]
音阶是调式的一种形态,全称叫做调式音阶,将调式中的音,从以主音开始到以主音结束,由低到高(叫做上行),或者由高到低(叫做下行)以阶梯状排列起来,就叫做音阶。
[0086]
当人员在运动时,通过六轴惯性传感器110进行采集用户的运动数据,其中,运动数据包括三轴加速度数据及三轴角速度数据,通过采集的三轴加速度数据生成乐曲的节拍速度,然后随机生成预设个数的整座作为预设个数的小节的律动,然后再根据生成的律动读取采集的三轴角速度数据,然后将获取的三轴加速度数据换算成对应的音阶,生成相应的旋律线,然后根据生成的旋律线和乐曲的节拍速度通过标准midi格式生成midi乐曲,将用户的运动数据和乐曲的生成结合在一起,而且无需存储大量的音乐旋律数数据,实现人人都可以成为自然的作曲家。
[0087]
在某些实施例中,所述单片机120还用于:
[0088]
计算读取的三轴加速度数据的绝对值a(t);
[0089]
将计算得到的绝对值a(t)通过傅里叶离散变化得到三轴加速度数据的频域数据a’(f)=dft[a(t)];
[0090]
通过对频域数据a’(f)进行高斯函数拟合获得其峰值所在频率f0;
[0091]
根据得到的频率f0计算乐曲节拍速度为60*f0 bpm。
[0092]
单片机120通过以预设频率连续读取预设时间内的三轴加速度传感器采集的三轴加速度数据,如以10-100hz的采样速率连续读取数十秒采集的三轴加速度数据,然后通过
三轴平方和求得三轴加速度的绝对值a(t);然后利用离散傅里叶变化计算得到三轴加速度数据在频域的数据a’(f)=dft[a(t)],接着通过对a’(f)进行高斯函数拟合获得其峰值所在频率f0,然后得到乐曲的节拍速度为60*f0 bpm。bpm是beat per minute的简称,中文名为拍子数,释义为每分钟节拍数的单位。
[0093]
在某些实施例中,所述单片机120还用于:
[0094]
生成预设个数的正整数,所述正整数在预设范围内,所述预设个数为预设小节数,所述预设范围为二的m次方,m为预设节拍中拍数*时值;
[0095]
将生成的正整数转化为二进制数,所述二进制的位数为m位;
[0096]
将生成的预设个数的二进制构成乐曲的律动数组。
[0097]
当单片机120进行律动生成时,单片机120根据预设节拍和预设小节个数进行生成相应的正整数,如当需要生成n个小节的4/4拍的旋律时,4/4拍即四分之四拍,是以四分音符为一拍,每小节四拍,强弱规律是:强
‑‑‑

‑‑‑
次强
‑‑‑
弱;则随机生成n个65535(2^16-1)以内的正整数d1-dn,然后转换为16位二进制数;每个二进制数的一位表示16个16分音符是否有音阶变化。比如,二进制数1000101011110001代表该小节由一个四分音符(1000)、两个8分音符(1010)、三个16分音符(111)、一个四分音符(1000)和一个16分音符(1)依次构成,即二进制1000101011110001的第一位是1表示当前有音阶变化,而后三位000表示为发生变化,即1000表示一个四分音符,同理10表示一个八分音符,则1010表示两个八分音符,111表示连续三次音阶变化,即表示三个十六分音符,接着1000表示一个四分音符,1表示一个十六分音符。整个乐曲的律动有n个小节构成的段落循环m次(m取决于运动时长或者预设的音乐时长)构成,通常n介于2-8之间,则4/4拍乐曲构建成一个数组r[16*n*m]来对应乐曲的律动。而当生成2/4拍作曲则随机生成的正整数在255(2^8-1)之内,如果采用3/4拍作曲则随机生成正整数在4095(2^12-1)内。
[0098]
在某些实施例中,所述单片机120还用于:
[0099]
建立三轴角速度数据与自然音阶的对应表;
[0100]
根据预设节拍的时间周期读取二进制上各个位数的值判断是否需要产生新的音符;
[0101]
若位数上的值为1,则产生新的音符;
[0102]
若位数上的值为0,则延续上一音符;
[0103]
当产生新的音符时,读取三轴角速度数据,
[0104]
读取三轴角速度数据对应的音符,加入到对应的旋律线中,生成包含时间点和音符的旋律线。
[0105]
建立角速度的自然音节对应表,单片机120根据预设节拍的时间周期读取律动数组中二进制上各个位数的值进行判断是否需要产生新的音符,如以60*f0 bpm作为乐曲的节拍速度,则通过单片机120设定定时中断,每隔1/4f0的时间触发,单片机120定时第i次触发时,则从律动数组中查看r(i)的值,如果为1,则确定该次触发会产生一个新的音符。否则延续上一个音符。如果需要产生新的音符,则单片机120从三轴角速度读取三轴角速度数据,并通过三轴平方和缺德角速度数据的绝对值g[i],从三轴角速度与自然音阶对应表中求得角速度数据的绝对值g[i]对应的音符,加入到旋律线中,由此产生一个包含时间点和音符的旋律线。
[0106]
在某些实施例中,所述单片机120还用于:
[0107]
生成midi乐曲的midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;
[0108]
将生成的旋律线按照midi标准规范生成midi音符开关的消息加入midi文件形成midi乐曲。
[0109]
首先生成midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;其次将旋律线按照midi标准规范生成midi音符开关的消息加入到midi文件。完成整个midi乐曲。该midi乐曲可通过运动手环100自带的midi音源播放或者通过蓝牙传输到手机或pc机利用音乐软件播放或编辑。
[0110]
在某些实施例中,运动手环100上设有midi音源,当单片机120生成midi乐曲后,可以通过midi音源进行播放生成的midi乐曲。在其他实施例中,运动手环100上设有蓝牙模块,可以与移动终端进行蓝牙连接,如手机,当单片机120生成midi乐曲后,通过蓝牙模块发送至手机,通过手机进行播放生成的midi乐曲。
[0111]
请参阅图2-3,本实施例提供了一种基于运动动作的乐曲生成方法,应用于上述实施例中所述的运动手环100,乐曲生成方法具体包括以下步骤:
[0112]
步骤s210:运动数据采集:通过六轴惯性传感器采集用户的运动数据,所述运动数据包括三轴加速度数据及三轴角速度数据;
[0113]
步骤s220:乐曲速度生成:根据采集的三轴加速度数据生成乐曲的节拍速度;
[0114]
步骤s230:律动生成:随机生成预设个数的整数作为预设个数的小节的律动;
[0115]
步骤s240:旋律生成:根据生成的律动读取采集的三轴角速度数据,将获取的三轴角速度数据换算成对应的音阶,并生成相应的旋律线;
[0116]
步骤s250:乐曲生成:根据生成的旋律线及节拍速度通过标准midi格式生成midi乐曲。
[0117]
惯性传感器是一种传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(dof)运动,是解决导航、定向和运动载体控制的重要部件。惯性传感器包括加速度计(或加速度传感计)和角速度传感器(陀螺),六轴惯性传感器即包括三轴陀螺仪和三轴加速度传感器。
[0118]
节拍[meter]是衡量节奏的单位,在音乐中,有一定强弱分别的一系列拍子在每隔一定时间重复出现。如2/4、4/4、3/4拍等。节拍,乐曲中表示固定单位时值和强弱规律的组织形式。
[0119]
音阶是调式的一种形态,全称叫做调式音阶,将调式中的音,从以主音开始到以主音结束,由低到高(叫做上行),或者由高到低(叫做下行)以阶梯状排列起来,就叫做音阶。
[0120]
当人员在运动时,通过六轴惯性传感器进行采集用户的运动数据,其中,运动数据包括三轴加速度数据及三轴角速度数据,通过采集的三轴加速度数据生成乐曲的节拍速度,然后随机生成预设个数的整座作为预设个数的小节的律动,然后再根据生成的律动读取采集的三轴角速度数据,然后将获取的三轴加速度数据换算成对应的音阶,生成相应的旋律线,然后根据生成的旋律线和乐曲的节拍速度通过标准midi格式生成midi乐曲,将用户的运动数据和乐曲的生成结合在一起,而且无需存储大量的音乐旋律数数据,实现人人都可以成为自然的作曲家。
[0121]
请参阅图4,在本实施例中,所述乐曲速度生成步骤具体包括以下步骤:
[0122]
步骤s410:以预设频率读取预设时间内的三轴加速度数据;
[0123]
步骤s420:计算读取的三轴加速度数据的绝对值a(t);
[0124]
步骤s430:将计算得到的绝对值a(t)通过傅里叶离散变化得到三轴加速度数据的频域数据a’(f)=dft[a(t)];
[0125]
步骤s440:通过对频域数据a’(f)进行高斯函数拟合获得其峰值所在频率f0;
[0126]
步骤s450:根据得到的频率f0计算乐曲节拍速度为60*f0 bpm。
[0127]
通过以预设频率连续读取预设时间内的三轴加速度传感器采集的三轴加速度数据,如以10-100hz的采样速率连续读取数十秒采集的三轴加速度数据,然后通过三轴平方和求得三轴加速度的绝对值a(t);然后利用离散傅里叶变化计算得到三轴加速度数据在频域的数据a’(f)=dft[a(t)],接着通过对a’(f)进行高斯函数拟合获得其峰值所在频率f0,然后得到乐曲的节拍速度为60*f0 bpm。bpm是beat per minute的简称,中文名为拍子数,释义为每分钟节拍数的单位。
[0128]
请参阅图5,在某些实施例中,所述律动生成步骤具体包括以下步骤:
[0129]
步骤s510:生成预设个数的正整数,所述正整数在预设范围内,所述预设个数为预设小节数,所述预设范围为二的m次方-1,m为预设节拍中拍数*时值;
[0130]
步骤s520:将生成的正整数转化为二进制数,所述二进制的位数为m位;
[0131]
步骤s530:将生成的预设个数的二进制构成乐曲的律动数组。
[0132]
当进行律动生成时,根据预设节拍和预设小节个数进行生成相应的正整数,如当需要生成n个小节的4/4拍的旋律时,4/4拍即四分之四拍,是以四分音符为一拍,每小节四拍,强弱规律是:强
‑‑‑

‑‑‑
次强
‑‑‑
弱;则随机生成n个65535(2^16-1)以内的正整数d1-dn,然后转换为16位二进制数;每个二进制数的一位表示16个16分音符是否有音阶变化。比如,二进制数1000101011110001代表该小节由一个四分音符(1000)、两个8分音符(1010)、三个16分音符(111)、一个四分音符(1000)和一个16分音符(1)依次构成,即二进制1000101011110001的第一位是1表示当前有音阶变化,而后三位000表示为发生变化,即1000表示一个四分音符,同理10表示一个八分音符,则1010表示两个八分音符,111表示连续三次音阶变化,即表示三个十六分音符,接着1000表示一个四分音符,1表示一个十六分音符。整个乐曲的律动有n个小节构成的段落循环m次(m取决于运动时长或者预设的音乐时长)构成,通常n介于2-8之间,则4/4拍乐曲构建成一个数组r[16*n*m]来对应乐曲的律动。而当生成2/4拍作曲则随机生成的正整数在255(2^8-1)之内,如果采用3/4拍作曲则随机生成正整数在4095(2^12-1)内。
[0133]
请参阅图6,在某些实施例中,所述旋律生成步骤具体包括以下步骤
[0134]
步骤s610:建立三轴角速度数据与自然音阶的对应表;
[0135]
步骤s620:根据预设节拍的时间周期读取二进制上各个位数的值判断是否需要产生新的音符;
[0136]
若位数上的值为1,则步骤s630:产生新的音符;
[0137]
若位数上的值为0,则步骤s640:延续上一音符;
[0138]
当产生新的音符时,则执行步骤s650:读取三轴角速度数据,
[0139]
步骤s660:读取三轴角速度数据对应的音符,加入到对应的旋律线中,生成包含时间点和音符的旋律线。
[0140]
建立角速度的自然音节对应表,根据预设节拍的时间周期读取律动数组中二进制上各个位数的值进行判断是否需要产生新的音符,如以60*f0 bpm作为乐曲的节拍速度,则通过单片机设定定时中断,每隔1/4f0的时间触发,单片机定时第i次触发时,则从律动数组中查看r(i)的值,如果为1,则确定该次触发会产生一个新的音符。否则延续上一个音符。如果需要产生新的音符,则单片机从三轴角速度读取三轴角速度数据,并通过三轴平方和缺德角速度数据的绝对值g[i],从三轴角速度与自然音阶对应表中求得角速度数据的绝对值g[i]对应的音符,加入到旋律线中,由此产生一个包含时间点和音符的旋律线。
[0141]
在某些实施例中,所述乐曲生成具体包括以下步骤:
[0142]
生成midi乐曲的midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;
[0143]
将生成的旋律线按照midi标准规范生成midi音符开关的消息加入midi文件形成midi乐曲。
[0144]
首先生成midi文件头,将乐曲的节拍速度作为关键参数加入midi文件头;其次将旋律线按照midi标准规范生成midi音符开关的消息加入到midi文件。完成整个midi乐曲。该midi乐曲可通过运动手环自带的midi音源播放或者通过蓝牙传输到手机或pc机利用音乐软件播放或编辑。
[0145]
最后需要说明的是,尽管在本技术的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本技术的专利保护范围。凡是基于本技术的实质理念,利用本技术说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本技术的专利保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献