一种网络虚拟口琴的制作方法

文档序号:11773917阅读:359来源:国知局

本发明属于互联网技术领域,具体涉及一种网络虚拟口琴。

技术背景

目前,已有的虚拟乐器主要是由以下两种方式实现:

第一,采用3d投影以及感官交互的方式,通过对动作的监测以及数据处理从而实现虚拟乐器的工作。其主要包括人体辅助装置、3d摄影装置、3d投影装置和信号处理单元,其中人体辅助装置采集人体的声音信息、接触觉信息、压力觉信息,并将上述信息转换为信号发送到信号处理单元,信号处理单元处理该信号,并且发出信号控制人体辅助装置反馈听觉感知信息、接触绝感知信息、压力觉感知信息;同时控制3d投影装置反馈听觉感知信息。

第二,使用传感器等硬件设备搭建虚拟乐器,并结合音箱、声音数据库、上位机等构成一个基于传感器的虚拟乐器系统。该系统通过传感器采集振动,压力等参数并将其交给上位机进行信号处理与声音数据库进行匹配从而形成音频文件,再将音频信号通过音箱进行播放。

以上两种方式的特点以及存在的问题如下:

第一种,该方式通过3d投影、3d摄影、动作轨迹监测实现虚拟乐器,可以很真实的模拟出现有的乐器,使用者能体验到在真实乐器上弹奏的交互效果。但是该方式需要硬件支持,不便于携带并且3d摄影、3d投影技术的代价高昂,不利于大规模推广。

第二种,要使用到传感器、音箱、以及上位机等硬件设备,成本高昂,并且由传感器构成的硬件系统体积庞大,不便于携带,由于每一种乐器都要由不同的传感器获取数据,需要上位机通过不同的程序进行数据的处理,所以可扩展性差,不具备通用性。



技术实现要素:

本发明的目的就是为了解决上述现有技术中的不足,提供一种网络虚拟口琴,该虚拟口琴是通过网络在计算机上使用,所以对于硬件的要求极低,只需要用户可以接入网络,并且具有音箱设备用以播放音频即可,相对于现有的通过传感器、以及3d投影等技术实现的虚拟乐器,降低了硬件的成本并且用户无需进行后期的维护,极大的方便了用户的使用。

本发明的目的是通过以下技术方案实现的:一种网络虚拟口琴,包括虚拟口琴界面、虚拟口琴映射清单、动态交互模块、音频调用以及播放模块。

所述虚拟口琴界面,该模块主要是网络虚拟口琴的交互与展示界面,利用图像处理软件制作口琴的琴架和琴孔的图片,并通过网页布局的方式对口琴琴架和琴孔的图片进行组合、布局,从而构成完整的口琴界面。

所述虚拟口琴映射清单,用于确定电脑键盘的按键和虚拟口琴琴孔之间的对应关系,以及电脑键盘的按键和音频文件的对应关系。

所述动态交互模块,是整个乐器和用户之间进行交互的部分,通过虚拟口琴映射清单,将电脑键盘被按下这一事件映射到虚拟口琴的某一个或几个琴孔被吹奏,再通过对被吹奏的琴孔的图片进行切换,模拟真实的口琴被吹奏并发声的过程。

所述音频调用以及播放模块,提前录制真实口琴吹奏时的声音作为音源,将电脑键盘被按下这一事件映射到虚拟口琴的某一个或几个琴孔被吹奏,再根据虚拟口琴的琴孔和其发出的声音的对应关系,调用扬声器播放对应音频。

在上述技术方案中,虚拟口琴界面的具体构建步骤如下:

步骤一,口琴琴架以及琴孔填充素材的制作

使用photoshop软件对真实的口琴图片进行处理,将口琴的每一个琴孔部分去除,得到一个口琴的框架,然后制作与琴孔等大小的图片,每个琴孔制作两种图片,一种是琴孔被吹奏时的效果,为蓝色,另一种是琴孔未被吹奏时的效果,为绿色;

步骤二,对虚拟口琴的琴架和琴孔进行布局

新建一个html文档,在该文档中新建一个id属性设置为mainframe的div标签作为容纳口琴各个部分的底层容器,同时在style标签中新建一个名为mainframe的css类,通过设置其左边距、上边距和浮动方式来确定名为mainframe的div标签的位置,再新建另一个id属性设置为frame2的div标签来容纳所有的琴孔,在此标签中再根据实际需要新建n个div标签依次将id属性设置为button1-buttonn,每一个div标签作为一个琴孔图片的容器,n表示所要使用的口琴的琴孔数量,在style标签中新建n个css的id选择器依次命名为button1-buttonn生成n个css样式,分别对应button1-buttonn这n个div标签,通过改变这n个css样式中的左边距、上边距以及浮动方式将代表琴孔未被使用的绿色图片填充到对应琴孔的空白位置;由于每一个琴孔有被吹奏和没有被吹奏两种状态,所以再新建used和unused这2个css类分别代表琴孔被吹奏和未被吹奏两种状态。

在上述技术方案中,动态交互模块的具体实现方式如下:

步骤一,新建一个javascript脚本文件并通过onkeydown函数监测电脑键盘事件并获取键值;

步骤二,根据电脑键盘键值和虚拟口琴琴孔的对应关系确定对应哪个琴孔被吹奏;

步骤三,通过javascript脚本文件对对应琴孔的div标签进行添加或移除used和unused的css类,实现口琴吹奏的效果;

步骤四,根据键盘按键键值和音频文件的对应关系确定播放哪个音频文件。

在上述技术方案中,音频调用以及播放模块的具体实现方式如下:新建一个控制口琴音频调用的javascript脚本文件,通过调用javascript内部的onkeydown函数监测用户是否按下了键盘上的按键,并且获得键值,再根据键值和音频文件的映射关系确定到具体的哪一个音频文件应该被播放,然后再通过javascript内部的play函数对该音频进行播放。

本发明网络虚拟口琴使用html、javascript、css技术,在网络上建立虚拟的口琴,任何一个用户在任何地点通过可以联网的计算机都可以使用该虚拟口琴,所有的操作均通过浏览器执行,不需要专门的客户端,并且通过web前端技术将用户的交互功能在本地实现,在最大程度上减少了对于服务器的压力,从而提高了运行的速度。由于该虚拟口琴是通过网络在计算机上使用,所以对于硬件的要求极低,只需要用户可以接入网络,并且具有音箱设备用以播放音频即可,相对于现有的通过传感器、以及3d投影等技术实现的虚拟乐器,降低了硬件的成本并且用户无需进行后期的维护,极大的方便了用户的使用。

附图说明

图1为本发明中动态交互模块的工作流程图。

具体实施方式

以下结合附图和具体实施方式对本发明原理和实施作进一步说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本实施例提供了一种网络虚拟口琴,包括虚拟口琴界面、虚拟口琴映射清单、动态交互模块、音频调用以及播放模块。

所述虚拟口琴界面,该模块主要是网络虚拟口琴的交互与展示界面,利用图像处理软件制作口琴的琴架和琴孔的图片,并通过网页布局的方式对口琴琴架和琴孔的图片进行组合、布局,从而构成完整的口琴界面。

所述虚拟口琴映射清单,用于确定电脑键盘的按键和虚拟口琴琴孔之间的对应关系,以及电脑键盘的按键和音频文件的对应关系。具体对应关系如下表所示。

所述动态交互模块,是整个乐器和用户之间进行交互的部分,通过虚拟口琴映射清单,将电脑键盘被按下这一事件映射到虚拟口琴的某一个或几个琴孔被吹奏,再通过对被吹奏的琴孔的图片进行切换,模拟真实的口琴被吹奏并发声的过程。

所述音频调用以及播放模块,提前录制真实口琴吹奏时的声音作为音源,将电脑键盘被按下这一事件映射到虚拟口琴的某一个或几个琴孔被吹奏,再根据虚拟口琴的琴孔和其发出的声音的对应关系,调用扬声器播放对应音频。

在上述实施例中,虚拟口琴界面的具体构建步骤如下:

步骤一,口琴琴架以及琴孔填充素材的制作

使用photoshop软件对真实的口琴图片进行处理,将口琴的每一个琴孔部分去除,得到一个口琴的框架,然后制作与琴孔等大小的图片,每个琴孔制作两种图片,一种是琴孔被吹奏时的效果,为蓝色,另一种是琴孔未被吹奏时的效果,为绿色;

步骤二,对虚拟口琴的琴架和琴孔进行布局

新建一个html文档,在该文档中新建一个id属性设置为mainframe的div标签作为容纳口琴各个部分的底层容器,同时在style标签中新建一个名为mainframe的css类,通过设置其左边距、上边距和浮动方式来确定名为mainframe的div标签的位置,再新建另一个id属性设置为frame2的div标签来容纳所有的琴孔,在此标签中再根据实际需要新建n个div标签依次将id属性设置为button1-buttonn,每一个div标签作为一个琴孔图片的容器,n表示所要使用的口琴的琴孔数量,在style标签中新建n个css的id选择器依次命名为button1-buttonn生成n个css样式,分别对应button1-buttonn这n个div标签,通过改变这n个css样式中的左边距、上边距以及浮动方式将代表琴孔未被使用的绿色图片填充到对应琴孔的空白位置;由于每一个琴孔有被吹奏和没有被吹奏两种状态,所以再新建used和unused这2个css类分别代表琴孔被吹奏和未被吹奏两种状态。

在上述实施例中,如图1所示,动态交互模块的具体实现方式如下:

步骤一,新建一个javascript脚本文件并通过onkeydown函数监测电脑键盘事件并获取键值;

步骤二,根据电脑键盘键值和虚拟口琴琴孔的对应关系确定对应哪个琴孔被吹奏;

步骤三,通过javascript脚本文件对对应琴孔的div标签进行添加或移除used和unused的css类,实现口琴吹奏的效果;

步骤四,根据键盘按键键值和音频文件的对应关系确定播放哪个音频文件。

在上述实施例中,音频调用以及播放模块的具体实现方式如下:新建一个控制口琴音频调用的javascript脚本文件,通过调用javascript内部的onkeydown函数监测用户是否按下了电脑键盘上的按键,并且获得键值,再根据键值和音频文件的映射关系确定到具体的哪一个音频文件应该被播放,然后再通过javascript内部的play函数对该音频进行播放。

使用虚拟口琴的硬件要求:笔记本电脑推荐使用全尺寸键盘和外接鼠标,台式电脑应该外接麦克风、音箱、以及键盘和鼠标。电脑应安装有支持html5和javascript的浏览器,且可以接入网络。

搭建虚拟口琴的硬件要求:如果要自行搭建虚拟钢琴网站并在网络上为其他用户提供虚拟口琴的服务,则需要一台可以连接网络的服务器、以及相应的服务器管理软件、一个可以正常使用的域名。

本实施例网络虚拟口琴的工作流程如下:

电脑通过浏览器输入域名,浏览器向服务器的相应端口(该端口由服务器的管理者设置)发送获取虚拟口琴页面的请求,服务器对该请求作出响应同时在服务器的磁盘中找到虚拟口琴的页面并返回给发送请求的浏览器,浏览器获取页面之后对其中的html和javascript、css进行解析,并且在浏览器窗口进行显示。

在显示完成之后,虚拟口琴开始正常工作,电脑的键盘按键被按下,操作系统对该事件进行响应,返回键盘按键的键值,浏览器获取到这些信息之后,由从服务器获取的javascript脚本文件进行处理对应到虚拟口琴的图片样式的变化,并生成虚拟口琴音频的http请求,再由浏览器将这些请求发送到服务器,服务器对这些请求进行响应之后再根据请求中提供的路径在磁盘中找到相应的音频文件,在通过网络发送到发送这些请求的浏览器,最后由javascript脚本调用音频播放的函数,由电脑的扬声器对该音频进行播放。

本说明书中未作详细描述的内容,属于本专业技术人员公知的现有技术。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1