基于HTML5 的Web Audio 技术实现手机版简易钢琴
2021-01-05钱立
四川职业技术学院学报 2020年6期
钱 立
(四川职业技术学院 计算机科学系,四川 遂宁 629000)
0 引言
虚拟化电子乐器是很有趣的音乐软件,大家可在PC 或手机上使用,虚拟钢琴就是其中一种。以前设计的虚拟钢琴主要有这样几种:Flash 版,网页版,手机端Android 或iOS 原生代码开发版。因技术趋势,Flash 不再推荐使用。网页版钢琴设计思路主要是按琴键时加载相应的音频文件来发音。在这种方式下,若音频文件较大,加载和播放较耗时,有时能明显感觉到延时,不够灵敏;若音频文件过小,音效又较差。在手机安卓系统中可使用AudioTrack 来合成音调播放,但编程过程复杂。同时在安卓中设计钢琴键盘也比HTML5 网页界面复杂,控制起来也更麻烦。
Web Audio 是HTML5 中一个重要技术,使用该技术后可使得网页版应用或复杂的网页游戏具备华丽的音效,包括一些空间声响效果。本文使用该技术结合JS 设计出的虚拟简易钢琴有很好灵敏度和音效。
1 HTML5 的Web Audio 技 术 介 绍
Web Audio 采用了模块化设计,这种模块化设计提供了灵活创建动态效果的复合音频的方法。一个简单而典型的Web Audio 流程如下[1]:
(1)创建音频上下文;
(2) 在音频上下文里创建源( 输入):例如〈audio〉、振荡器、流;
(3) 创建效果节点:例如混响、双二阶滤波器、平移、压缩;
(4)为音频选择一个目的地:例如你的系统扬声器;
(5)连接源到效果器,对目的地进行效果输出。

图1 Web Audio 典型流程
本文设计的虚拟钢琴使用振荡器运算得到不同音调发声。使用到Web Audio 相关API 如下:
AudioContext(音频上下文)代表由音频模块构成的音频处理图。它控制其所包含节点的创建和音频处理、解码。……
登录APP查看全文
