什么是WebAudioAPI?显示内容和调用服务器API的UI组件。但是历史总是在教育我们,不学习就会倒退,倒退就会不知所措就无所畏惧。WebAudioAPI足以打我们的脸。在此之前,网页能够处理音频的只有标签,但它的能力非常有限,对于更高级的音频操作完全无能为力。为了增强浏览器的音频处理能力,W3C开始了WebAudioAPISpecification的工作。WebAuidoAPI的设计目标是结合游戏音频处理系统和桌面音频应用的需求进行设计开发。也就是说,使用WebAudioAPI,我们几乎可以完成一个专业音频处理软件(如Cubase/Logic)的搭建,而这一切都是建立在浏览器技术之上的。从API的设计上,可以做到:实现高精度的音频计算。主要应用于DAW(音序器)、软件乐器等场景。音频混音器。混音的必要能力。3D音频。游戏和音乐制作都需要。与/WebRTC集成。WebAudioAPI的设计理念简单来说,所谓的音频处理其实就是一个标准的IO函数。从某个地方获取一个音频流(Input),经过实时计算处理后发送到某个地方(Destination),这个处理就是Effect(传统上我更喜欢称之为Filter函数)。经过复杂的Input/Destination排列后,就可以得到一个路由表(RoutingGraph)。该路由表定义了音频如何在不同的过滤器功能之间穿梭。这整个过程的定义就是AudioContext。AudioContext类携带了音频流的streaming方法。最简单的音频上下文示例之一可以是:从音频标签定义音频流。将音频流链接到音量放大器。将音量放大器连接到标准音频输出(电脑扬声器)。这样我们就得到了实时音量增益的音频处理流。在此基础上,我们还可以在#2之后接一个混响效果器,加入一点回声效果,让声音稍微圆润一些。链接拓扑变为:标签--->音量增强器---->混响---->电脑扬声器。上面介绍的目的是表达我们将使用这个可插入的Filter功能来理解整个WebAudioAPI的设计将变得非常容易。在WebAudioAPI中,不同的Filter函数被设计成不同的AudioNode类,AuidoNode的所有子类都继承自AudioNode类。而AudioNode有两个核心函数connect()和disconnect()。也就是说,这两个函数将不同AudioNode子类的进程进行排列,得到一个ProcessingGraph。当我们试图理解整个WebAudioAPI的设计理念时,最重要的是理解音频处理系统的本质是一个编排的有向图过程,音频处理是从输入到输出的转换过程。WebAudioAPI思维导图作者对常用的WebAudioAPI进行了分类,方便初学WebAudioAPI的同学整理。WebAudioAPI查谱的应用——雪琴新姿态是一个新兴的电子乐谱平台,也在MIR领域尝试使用WebAudioAPI进行产品开发。MetronomeApplicationChayuepu-WhisperingMetronomewww.chayuepu.com该应用程序使用WebAudioAPI实时创建音频,也使用Analyzer节点进行频谱计算。使用WebAudioAPI的优势:在传统的web开发中,节拍器等应用的开发通常依赖于标签的播放和暂停。但这种控制在延时上表现较差,无法应用于节拍器专业领域。2.TunerAppCheckSheetMusic-SmallVoiceTunerwww.chayuepu.com这款调音器是比较经典的音频处理场景。从麦克风获取实时音频流。对音频流进行实时基音检测(PitchDetection),在处理过程中直接获取音频流的FFT频域信息,使用简单的计算规则进行计算。实时音频的频谱绘图(使用分析器界面)。
WebAudioAPI简介与应用相关文章