HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

曲谱显示方法、装置、服务器及存储介质与流程

2021-01-28 15:01:33|311|起点商标网
曲谱显示方法、装置、服务器及存储介质与流程

本发明涉及通信技术领域,特别涉及一种曲谱显示方法、装置、服务器及存储介质。



背景技术:

乐曲合奏,是指多个演奏者使用相同或不同的乐器、根据同一曲谱进行的演奏。在进行合奏时,通常需要将所有演奏者在约定时间集中在指定场地后进行,但是场地的成本通常较高,而且组织所有演奏者在约定时间到达指定地点的难度也较大,导致这种方式的合奏通常难以顺利进行。

目前,为了使在合奏时突破场地和时间的限制,可以使用类似多方通话的技术来实现,即让所有演奏者同时在网络上进行演奏,从而达到合奏的目的。

然而,发明人发现现有技术中至少存在以下问题:网络一般均存在时延,这些时延虽然在多方通话时可以被忍受,但在合奏中要求每个演奏者的步调一致,时延会导致每个演奏者的演奏步调有先有后,不能一致,严重影响合奏的效果,使合奏难以顺利进行。



技术实现要素:

本发明实施方式的目的在于提供一种曲谱显示方法、装置、服务器及存储介质,使得在线合奏时合奏的同步效果提高,使合奏可以顺利进行。

为解决上述技术问题,本发明的实施方式提供了一种曲谱显示方法,应用于曲谱服务器,包括:将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数;获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,其中,k为从1到n的自然数;根据第一时延调整第k个演奏终端中每一音符开始显示的时间。

本发明的实施方式还提供了一种曲谱显示装置,包括:分发模块,用于将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数;获取模块,用于获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,其中,k为从1到n的自然数;调整模块,用于根据第一时延调整第k个演奏终端中每一音符开始显示的时间。

本发明的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的曲谱显示方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的曲谱显示方法。

本发明实施方式相对于现有技术而言,通过将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏;获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,根据第一时延调整第k个演奏终端中每一音符开始显示的时间。通过曲谱服务器将曲谱分发给多个演奏终端,并在曲谱分发后获取每一演奏终端的时延,根据时延调整每一演奏终端中每一音符开始显示的时间,可以使每一演奏终端演奏的音符与其它的演奏终端演奏的音符同步,从而使每个演奏者的演奏步调保持一致,提高合奏的效果,使合奏可以顺利进行。

另外,根据第一时延调整第k个演奏终端中每一音符开始显示的时间,包括:获取第k个演奏终端与混音服务器之间的时延作为第二时延,其中,混音服务器用于获取n个演奏终端的音频输出进行混音;根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间。由于演奏终端与混音服务器之间的第二时延亦会影响最终合奏的效果,因此,在调整演奏终端中音符开始显示的时间时,结合第一时延和第二时延进行调整,可以演奏终端中每一音符开始显示的时间的调整更加准确,进一步提高合奏的同步效果。

另外,根据第一时延调整第k个演奏终端中每一音符开始显示的时间,包括:根据公式计算第k个演奏终端中每一音符开始显示的时间,其中,tf(i)为第i个音符开始显示的时间,t(i)为第i个音符在无时延下开始显示的期望时间,δtmax为n个演奏终端中最大的第一时延,δtk为第一时延;根据tf(i)在第k个演奏终端中显示第i个音符。通过公式计算并调整音符开始显示的时间,可以将时延较小的演奏终端中音符开始显示的时间往后推迟的较多,而将时延较大的演奏终端中音符开始显示的时间往后推迟的较少,从而使所有演奏终端音符的显示同步,提高每个演奏终端的演奏步调的同步性。

另外,获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,具体为:根据预设周期获取第k个演奏终端与曲谱服务器之间的时延作为第一时延。根据预设周期定期获取时延,可以获知网络速度的动态变化,为后续实时调整音符显示的推迟幅度提供依据,使音符显示的调整效果更佳。

另外,根据第一时延调整第k个演奏终端中每一音符开始显示的时间,具体为:根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间。通过预设周期和第一时延调整音符开始显示的时间,可以跟随网络速度的动态变化进行音符开始显示的时间的动态调整,从而使音符开始显示的时间更加符合实际的网络环境,提高合奏的同步效果。

另外,根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间,包括:获取当前预设周期的第一时延与前一预设周期的第一时延的大小关系;根据上述大小关系调整第k个演奏终端中每一音符开始显示的时间。

另外,根据大小关系调整第k个演奏终端中每一音符开始显示的时间,包括:若前一预设周期的第一时延大于或等于当前预设周期的第一时延,则根据公式tf(i)=(tl(i)-tc(i))*(1-r)+tc(i)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间;若前一预设周期的第一时延小于当前预设周期的第一时延,则根据公式tf(i)=(tc(i)-tl(i))*r+tl(i)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间,其中,tf(i)为调整后的当前预设周期第i个音符开始显示的时间,tc(i)为调整前的当前预设周期第i个音符开始显示的时间,tl(i)为前一预设周期第i个音符开始显示的时间,r为每一音符开始显示的时间的调整比例,r=min(1,(tc(i)-trecv)/δt),trecv为当前预设周期开始的时间,δt为预设周期的时长。通过公式计算的结果来调整音符开始显示的时间,可以使越靠近前一预设周期的音符的开始显示的时间越趋近于前一预设周期的音符开始显示的时间,后面的音符的开始显示的时间接近调整前的当前预设周期开始显示的时间,从而使预设周期切换时,音符开始显示的时间的调整更加平滑。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是本发明第一实施方式提供的曲谱显示方法的应用场景示例图;

图2是图1对应的时序流程示例图;

图3是本发明第一实施方式提供的曲谱显示方法的流程示意图;

图4是本发明第二实施方式提供的曲谱显示方法的流程示意图;

图5是本发明第三实施方式提供的曲谱显示方法的流程示意图;

图6是本发明第四实施方式提供的曲谱显示装置的模块结构示意图;

图7是本发明第五实施方式提供的服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种曲谱显示方法,通过将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏;获取第k个演奏终端与曲谱服务器之间的时延作为第一时延;根据第一时延调整第k个演奏终端中每一音符开始显示的时间。通过曲谱服务器将曲谱分发给多个演奏终端,并在每一演奏终端按曲谱时序显示曲谱中的每一音符,使演奏终端的用户可以根据当前显示的音符进行演奏,从而控制每个演奏者的演奏节奏;并且在曲谱分发后获取每一演奏终端的时延,根据时延调整每一演奏终端中每一音符开始显示的时间,可以使每一演奏终端演奏的音符与其它的演奏终端演奏的音符同步,从而使每个演奏者的演奏步调保持一致,提高合奏的效果,使合奏可以顺利进行。

应当说明的是,本发明实施方式提供的曲谱显示方法应用于曲谱服务器(亦即曲库),即曲谱显示方法的执行主体为曲谱服务器。

请参考图1,其为本发明实施方式提供的曲谱显示方法的应用场景示例图。具体地,曲谱服务器将曲谱发送至n个演奏终端,演奏终端将演奏者演奏时的音频输出发送至混音服务器,混音服务器根据演奏终端的音频输出混音后通过分发系统分发至各个演奏终端或听众终端。曲谱服务器、演奏终端与混音服务器每两者之间通过网络连接,为了提高合奏的效果,连接使用的网络应使用低时延的网络,例如是5g网络、wifi或zigbee网络等,具体可以根据实际需要选用,这里不做具体限制。例如,在曲谱服务器将曲谱发送至演奏终端时,可以使用高服务质量(qos)优先级的网络通道,即图中的通道1使用高qos优先级的网络通道。应当理解的是,图中的通道2为演奏终端至混音服务器的网络通道,为上行通道,而图中的通道3为混音服务器至演奏终端的网络通道,为下行通道;图中两处的第1个演奏终端至第n个演奏终端,为同一组演奏终端。为了进一步提高合奏的同步效果,演奏终端组可以使用ntp(网络时间协议)系统,从而保证每个演奏终端都使用相同的本地时钟,可选地,演奏终端组可采用高精度的ntp系统。

请参考图2,其为图1对应的时序流程示例图。具体地,1.演奏者访问曲谱服务器选定曲谱并发起合奏请求;2.曲谱服务器在接收到合奏请求后,响应合奏请求,并将选定的曲谱分发至每个演奏终端;3.演奏终端的用户(演奏者)根据演奏终端的曲谱进行演奏;4.曲谱服务器检测曲谱服务器至演奏终端的时延;5.曲谱服务器将检测到的时延通知演奏终端;6.根据时延调整演奏终端音符开始显示的时间;7.混音服务器获取每个演奏终端的音频输出进行混音;8.混音服务器通过分发服务将混音分发给每个演奏终端或听众的客户端。

本发明实施方式提供的曲谱显示方法的具体流程如图3所示,具体包括以下步骤:

s101:将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数。

应当理解的是,每一演奏终端按曲谱的时序显示音符时,音符总的显示时间根据曲谱来决定,例如,若a音符在曲谱中为1拍,则a音符总的显示时间就为1拍。

可选地,在演奏终端显示音符时,可以将当前需要演奏的音符以预设格式进行显示,例如以高亮的形式进行显示,此时演奏终端的用户(演奏者)根据当前高亮显示的音符进行演奏。可选地,演奏终端在将当前需要演奏的音符以预设格式显示时,可将当前需要演奏的音符的前后若干个音符同时显示在演奏终端,显示的格式与预设格式不同,以提示或帮助演奏者进行演奏,例如以灰色进行显示。

可选地,在将曲谱分发至n个演奏终端时,曲谱服务器将曲谱分成多个数据包,在同一时间将同一数据包分发至n个演奏终端,从而便于控制所有演奏终端的演奏节奏。

s102:获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,其中,k为从1到n的自然数。

可选地,曲谱服务器可以发送ping包至第k个演奏终端,根据曲谱服务器收到ping包回应的时间与发送ping包的时间的差值,测出第k个演奏终端与曲谱服务器之间的时延作为第一时延。

可选地,曲谱服务器在获取第k个演奏终端与曲谱服务器之间的时延时,可在将曲谱分发至演奏终端之前或之后进行,具体获取时延的时机可以根据实际需要进行设置,这里不做具体限定。另外,曲谱服务器可以只获取一次第一时延,也可将多次获取第一时延,例如在将曲谱分发至演奏终端后,每隔一定时间获取一次第一时延,具体获取的次数也可以根据实际需要进行设置,这里不做具体限定。

s103:根据第一时延调整第k个演奏终端中每一音符开始显示的时间。

其中,音符开始显示的时间是指音符开始在演奏终端中显示的时间,若当前待演奏的音符设置有预设格式,则音符开始显示的时间为音符以预设格式开始在演奏终端中显示的时间。

可以理解的是,为了使合奏达到同步的效果,在根据第一时延调整第k个演奏终端中每一音符开始显示的时间时,可以结合其它演奏终端的第一时延,以使每个演奏终端的演奏步调与其它演奏终端的演奏步调保持一致。具体地,若在所有演奏终端中第k个演奏终端第一时延越大,则第k个演奏终端中每一音符开始显示的时间往后推迟的越少;若在所有演奏终端中第k个演奏终端第一时延越小,则第k个演奏终端中每一音符开始显示的时间往后推迟的越多。

可选地,曲谱服务器根据第一时延调整第k个演奏终端中每一音符开始显示的时间时,结合所有演奏终端中的至少部分第一时延进行调整。例如,选取80%演奏终端的第一时延的最大值作为参考,调整第k个演奏终端中每一音符开始显示的时间。可选地,可以选取所有(100%)演奏终端的第一时延的最大值作为参考。

在一个具体的例子中,s103具体可以包括:

根据以下公式(1)计算第k个演奏终端中每一音符开始显示的时间:

其中,tf(i)为在第k个演奏终端中第i个音符开始显示的时间,t(i)为第i个音符在无时延下开始显示的期望时间,δtmax为n个演奏终端中最大的第一时延,δtk为第k个演奏终端的第一时延;

根据tf(i)在第k个演奏终端中显示第i个音符。

在公式(1)中,t(i)为音符在曲谱中出现的时间点,可以根据曲谱内容确定,例如,音符a出现在曲谱中第10秒的位置,音符b出现在曲谱中第12秒的时间。

由于曲谱服务器在检测第一时延时是根据ping包发送时间至收到应答的时间来检测的,为双向时延,而曲谱服务器在分发曲谱至演奏终端时只涉及曲谱服务器至演奏终端的单向时延,因此,公式(1)中为表示为单向时延。

从公式(1)中可以看出,若第k个演奏终端的第一时延越大,则在第k个演奏终端中每一音符开始显示的时间往后推迟的越少;若第k个演奏终端的第一时延越小,则在第k个演奏终端中每一音符开始显示的时间往后推迟的越多,从而使每一演奏终端显示的音符与其它演奏终端显示的音符可以同步,使所有演奏终端的演奏步调保持一致。

与现有技术相比,本发明实施方式提供的曲谱显示方法,通过将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏;获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,根据第一时延调整第k个演奏终端中每一音符开始显示的时间。通过曲谱服务器将曲谱分发给多个演奏终端,并在曲谱分发后获取每一演奏终端的时延,根据时延调整每一演奏终端中每一音符开始显示的时间,可以使每一演奏终端演奏的音符与其它的演奏终端演奏的音符同步,从而使每个演奏者的演奏步调保持一致,提高合奏的效果,使合奏可以顺利进行。

本发明的第二实施方式涉及一种曲谱显示方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:根据第一时延调整第k个演奏终端中每一音符开始显示的时间,包括:获取第k个演奏终端与混音服务器之间的时延作为第二时延,根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间。由于演奏终端与混音服务器之间的时延亦会影响合奏的效果,因此,在调整音符开始显示的时间时,结合第一时延和第二时延进行调整,可以使演奏的效果更加同步。

本发明实施方式提供的曲谱显示方法的具体流程如图4所示,具体包括以下步骤:

s201:将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数。

s202:获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,其中,k为从1到n的自然数。

s203:获取第k个演奏终端与混音服务器之间的时延作为第二时延,其中,混音服务器用于获取n个演奏终端的音频输出进行混音。

s204:根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间。

其中,s201-s202与第一实施方式中的s101-s102相同,具体可以参见第一实施方式中的描述,为了避免重复,这里不再赘述。

对于s203-s204,具体地,曲谱服务器获取第k个演奏终端与混音服务器之间的第二时延时,可发送请求至混音服务器,混音服务器通过发送ping等方式获取到第二时延后,将获取的第二时延发送给曲谱服务器。

若曲谱服务器与混音服务器的物理位置相差不远,例如在同一个机房中,则可认为第二时延与第一时延相等,即第二时延=第一时延=δtk,从而可以认为第二时延对第k个演奏终端中每一音符开始显示的时间的影响亦为如此,在需要综合第一时延和第二时延对第k个演奏终端中每一音符开始显示的时间进行调整的情况下,可以在公式(1)的基础上加入第二时延对音符开始显示时间的影响,即:

从而得到以下公式(2):

tf(i)=t(i)+(δtmax-δtk)(2);

由于公式(2)中的(δtmax-δtk)综合了第一时延和第二时延,因此根据公式(2)对第k个演奏终端中每一音符开始显示的时间进行调整,就可以达到根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间的目的。

与现有技术相比,本发明实施方式提供的曲谱显示方法,通过获取第k个演奏终端与混音服务器之间的时延作为第二时延,根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间。由于演奏终端与混音服务器之间的时延亦会影响最终合奏的效果,因此,在调整演奏终端中音符开始显示的时间时,结合第一时延和第二时延进行调整,可以演奏终端中每一音符开始显示的时间的调整更加准确,进一步提高合奏的同步效果。

本发明的第三实施方式涉及一种曲谱显示方法。第三实施方式与第一实施方式大致相同,主要区别之处在于:获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,具体为:根据预设周期获取第k个演奏终端与曲谱服务器之间的时延作为第一时延;而根据第一时延调整第k个演奏终端中每一音符开始显示的时间,具体为:根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间。根据预设周期定期获取时延,可以获知网络速度的动态变化,为后续实时调整音符显示的推迟幅度提供依据,使音符显示的调整效果更佳;而通过预设周期和第一时延调整音符开始显示的时间,可以跟随网络速度的动态变化进行音符开始显示的时间的动态调整,从而使音符开始显示的时间更加符合实际的网络环境,提高合奏的同步效果。

本发明实施方式提供的曲谱显示方法的具体流程如图5所示,具体包括以下步骤:

s301:将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数。

s301与第一实施方式中的s101相同,具体可以参见第一实施方式中的描述,为了避免重复,这里不再赘述。

s302:根据预设周期获取第k个演奏终端与曲谱服务器之间的时延作为第一时延。

其中,预设周期的时长可以根据实际进行设置,例如可以为10秒、15秒或20秒等,这里不做具体限制。可以理解的是,当预设周期越长时,演奏终端的用户越感受不到节奏的变化,调整越趋于平滑;但若预设周期过长,则可能导致演奏终端中音符的显示不能及时反映时延的变化,造成合奏的同步效果较差,因此,预设周期应当合理设置时长。

可选地,曲谱服务器在根据预设周期获取第k个演奏终端的第一时延时,可以在预设周期内多次检测时延,将多次检测的时延的平均值或极值作为第一时延;也可以只在预设周期内检测一次时延,将该次时延作为第一时延,具体可以根据实际需要进行设置,这里不做具体限定。

s303:根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间。

由于曲谱服务器根据预设周期和第一时延调整音符开始显示的时间时,需要先获取到第一时延才能进行当前调整,因此当前预设周期的第一时延的获取应在实施调整之前。可选地,当前预设周期的第一时延,可以是在当前预设周期开始时检测到的时延,也可以是在前一预设周期的末尾检测的时延,还可以是在前一预设周期多次检测的时延的平均值,具体可以根据实际需要进行设置,这里不做具体限制。

可以理解的是,根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间,是指每一预设周期内均根据当前预设周期获取的第一时延进行调整,从而使音符开始显示的时间符合当前的网络环境。

然而,当前后相邻的预设周期检测出来的第一时延相差较大时,若直接根据公式(1)调整音符开始显示的时间,则会使后一预设周期的调整显得突兀,不利于演奏者的演奏。例如,若前后相邻的预设周期的第一时延的差值为1秒时,则后一预设周期音符开始显示的时间可能需要调整1秒,演奏者可以明显感受到节奏的变化,调整不够平滑。

为了使音符开始显示的时间的调整较为平滑,在一个具体的例子中,根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间,包括:获取当前预设周期的第一时延与前一预设周期的第一时延的大小关系,根据上述大小关系调整第k个演奏终端中每一音符开始显示的时间。

根据公式(1),时延越大,音符开始显示的时间往后推迟的越少;时延越小,音符开始显示的时间往后推迟的越多,因此,若当前预设周期的时延大于前一预设周期的时延,则当前预设周期调整时应将音符开始显示的时间在前一预设周期调整的基础上提前;若当前预设周期的时延小于前一预设周期的时延,则当前预设周期调整时应将音符开始显示的时间在前一预设周期调整的基础上推后;若两者相等,则维持前一预设周期的调整不变。

在一个具体的例子中,根据上述大小关系调整第k个演奏终端中每一音符开始显示的时间,具体可以包括:

若前一预设周期的第一时延大于或等于当前预设周期的第一时延,则根据以下公式(3)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间:

tf(i)=(tl(i)-tc(i))*(1-r)+tc(i)(3);

若前一预设周期的第一时延小于当前预设周期的第一时延,则根据以下公(4)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间:

tf(i)=(tc(i)-tl(i))*r+tl(i)(4);

其中,tf(i)为调整后的当前预设周期第i个音符开始显示的时间,tc(i)为调整前的当前预设周期第i个音符开始显示的时间,tl(i)为前一预设周期第i个音符开始显示的时间,r为每一音符开始显示的时间的调整比例,r=min(1,(tc(i)-trecv)/δt),trecv为当前预设周期开始的时间,δt为预设周期的时长。

应当理解的是,tc(i)和tl(i)可以是根据其所在预设周期内第一时延利用公式(1)计算得到的tf(i)。

具体地,在式子r=min(1,(tc(i)-trecv)/δt)中,(tc(i)-trecv)表示的含义是当前预设周期的音符开始显示的时间与当前预设周期开始的时间的差值,越靠前的音符,(tc(i)-trecv)越小,越往后的音符,(tc(i)-trecv)越大。

当(tc(i)-trecv)小于δt时,(tc(i)-trecv)/δt小于1,此时r=(tc(i)-trecv)/δt,特别地,当tc(i)=trecv时,此时r=0;当(tc(i)-trecv)大于δt时,(tc(i)-trecv)/δt大于1,此时r=1,特别地,当(tc(i)-trecv)=δt时,(tc(i)-trecv)/δt等于1,此时r=1。

在根据公式(3)对音符开始显示的时间进行调整时,分为以下几种情况:

1.在当前预设周期刚开始时的音符,tc(i)=trecv,r=0,则tf(i)=tl(i),表示音符开始显示的时间不作调整;

2.在当前预设周期开始后至预设周期结束前之间的音符,例如r=0.5,则tf(i)=0.5tl(i)+0.5tc(i),表示音符开始显示时间是前一预设周期的第一时延与当前预设周期的第一时延的综合作用;

3.在当前预设周期刚结束时或结束后的音符,r=1,tf(i)=tc(i),表示后面的音符为调整前的当前预设周期音符开始显示的时间。

通过公式(3)的分析可以看出,越靠近前一预设周期的音符的开始显示的时间越趋近于前一预设周期的音符开始显示的时间,后面的音符的开始显示的时间接近调整前的当前预设周期开始显示的时间,从而使预设周期切换时,音符开始显示的时间的调整更加平滑。

同理可证公式(4)亦可以达到相同的调整效果。

应当说明的是,当前一预设周期的第一时延等于当前预设周期的第一时延时,亦可根据公式(4)进行调整。

与现有技术相比,本发明实施方式提供的曲谱显示方法,根据预设周期定期获取时延,可以获知网络速度的动态变化,为后续实时调整音符显示的推迟幅度提供依据,使音符显示的调整效果更佳;而通过预设周期和第一时延调整音符开始显示的时间,可以跟随网络速度的动态变化进行音符开始显示的时间的动态调整,从而使音符开始显示的时间更加符合实际的网络环境,提高合奏的同步效果。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种曲谱显示装置400,如图6所示,包含:分发模块401、获取模块402和调整模块403。各模块功能详细说明如下:

分发模块401,用于将曲谱分发至n个演奏终端,并在每一演奏终端按曲谱的时序显示曲谱中的每一音符,以供演奏终端的用户根据当前显示的音符进行演奏,其中,n为大于1的自然数;

获取模块402,用于获取第k个演奏终端与曲谱服务器之间的时延作为第一时延,其中,k为从1到n的自然数;

调整模块403,用于根据第一时延调整第k个演奏终端中每一音符开始显示的时间。

进一步地,调整模块403还用于:

获取第k个演奏终端与混音服务器之间的时延作为第二时延,其中,混音服务器用于获取n个演奏终端的音频输出进行混音;

根据第一时延和第二时延调整第k个演奏终端中每一音符开始显示的时间。

进一步地,调整模块403还用于:

根据公式计算第k个演奏终端中每一音符开始显示的时间,其中,tf(i)为第i个音符开始显示的时间,t(i)为第i个音符在无时延下开始显示的期望时间,δtmax为n个演奏终端中最大的第一时延,δtk为第一时延;

根据tf(i)在第k个演奏终端中显示第i个音符。

进一步地,获取模块402还用于:

根据预设周期获取第k个演奏终端与曲谱服务器之间的时延作为第一时延。

进一步地,调整模块403还用于:

根据预设周期和第一时延调整第k个演奏终端中每一音符开始显示的时间。

进一步地,调整模块403还用于:

获取当前预设周期的第一时延与前一预设周期的第一时延的大小关系;

根据上述大小关系调整第k个演奏终端中每一音符开始显示的时间。

进一步地,调整模块403还用于:

若前一预设周期的第一时延大于或等于当前预设周期的第一时延,则根据公式tf(i)=(tl(i)-tc(i))*(1-r)+tc(i)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间;

若前一预设周期的第一时延小于当前预设周期的第一时延,则根据公式tf(i)=(tc(i)-tl(i))*r+tl(i)调整当前预设周期内第k个演奏终端中每一音符开始显示的时间,

其中,tf(i)为调整后的当前预设周期第i个音符开始显示的时间,tc(i)为调整前的当前预设周期第i个音符开始显示的时间,tl(i)为前一预设周期第i个音符开始显示的时间,r为每一音符开始显示的时间的调整比例,r=min(1,(tc(i)-trecv)/δt),trecv为当前预设周期开始的时间,δt为预设周期的时长。

不难发现,本实施方式为与第一实施方式、第二实施方式及第三实施方式相对应的装置实施例,本实施方式可与第一实施方式、第二实施方式及第三实施方式互相配合实施。第一实施方式、第二实施方式及第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式、第二实施方式及第三实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第五实施方式涉及一种服务器,如图7所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述的曲谱显示方法。

其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。

处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。

本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

相关标签: 曲谱
tips