用于处理乐器数字接口(midi)文件的管线技术的制作方法

文档序号:2831741阅读:232来源:国知局
专利名称:用于处理乐器数字接口(midi)文件的管线技术的制作方法
技术领域
本发明涉及音频装置,且更确切地说涉及基于乐器数字接口(MIDI)文件产生音频输
出的音频装置。
背景技术
乐器数字接口 (MIDI)是用于产生、传送及/或回放例如音乐、话音、音调、警报 及其类似物的音频声音的格式。支持MIDI格式回放的装置可存储可用以产生各种"语 音"的音频信息的集合。每一语音可对应于一个或一个以上声音,例如由特定器具产生 的音符。举例来说,第一语音可对应于如由钢琴演奏的中音C,第二语音可对应于如由 长号演奏的中音C,第三语音可对应于如由长号演奏的D弁音,等等。为了复制由特定器 具演奏的音符,兼容MIDI的装置可包括指定各种音频特征(例如低频振荡器的行为、 例如颤音等效果及可影响对声音的感知的许多其它音频特征)的语音信息的集合。可界 定、在MIDI文件中输送及由支持MIDI格式的装置重现几乎任何声音。
支持MIDI格式的装置可在指示装置应开始产生音符的事件发生时产生音符(或其 它声音)。类似地,装置在指示装置应停止产生音符的事件发生时停止产生音符。可通 过指定指示特定语音何时应开始及停止的事件而根据MIDI格式对整个音乐作品进行编 码。以此方式,可以根据MIDI格式的紧凑文件格式来存储及传输音乐作品。
多种装置中支持MIDI。举例来说,例如无线电电话等无线通信装置可支持MIDI 文件以用于可下载的声音,例如铃声或其它音频输出。例如苹果计算机有限公司(AppleComputer, Inc)售卖的"iPod"装置及微软公司(Microsoft Corporation)售卖的"Zune"
装置等数字音乐播放器也可支持MIDI文件格式。其它支持MIDI格式的装置可包括各 种音乐合成器、无线移动装置、直接双向通信装置(有时称为对讲机)、网络电话、个 人计算机、桌上型及膝上型计算机、工作站、卫星无线电装置、内部通信装置、无线电 广播装置、手持型游戏装置、安装在装置中的电路板、信息查询站(information kiosk)、 各种儿童计算机化玩具、用于汽车、船只及飞机中的机载计算机及多种其它装置。

发明内容
大体而言,本发明描述用于处理遵照乐器数字接口 (MIDI)格式的音频文件的技术。 在本文中使用时,术语MIDI文件指代含有符合MIDI格式的至少一个音轨的任何文件。 根据本发明,描述用于使用软件、固件及硬件有效处理MIDI文件的技术。确切地说, 在于通用处理器上操作的软件、与数字信号处理器(DSP)相关联的固件及经特定设计 以用于MIDI文件处理的专用硬件之间委派与MIDI文件处理相关联的各种任务。或者, 可在DSP的两个不同线程与专用硬件之间委派与MIDI文件处理相关联的任务。
所描述的技术可经管线化以用于实现MIDI文件处理的改进的效率。通用处理器可 服务于第一帧(帧N)的MIDI文件。当第一帧(帧N)由DSP服务时,第二帧(帧 N+l)可同时由通用处理器服务。当第一帧(帧N)由硬件服务时,第二帧(帧N+1) 可同时由DSP服务,同时第三帧(帧N+2)由通用处理器服务。如果在DSP的两个不 同线程与专用硬件之间委派与MIDI文件处理相关联的任务,则也可使用类似管线化。
在任一情况下,均将MIDI文件处理分离为可同时处理的管线化级,从而改进效率 且可能减少给定级(例如与DSP相关联的级)所需的计算资源。每一帧从通用处理器到 DSP且接着到硬件、或从第一 DSP线程到第二 DSP线程且接着到硬件而通过各种管线 级。可(例如)经由中断驱动技术将硬件所产生的音频样本传递回到DSP以便可在向用 户输出音频声音之前执行任何后处理。
在一方面中,本发明提供一种方法,其包含使用第一过程剖析MIDI文件且对与 MIDI文件相关联的MIDI事件进行调度,使用第二过程处理MIDI事件以产生MIDI合 成参数,及使用硬件单元基于所述合成参数产生音频样本。
在另一方面中,本发明提供一种装置,其包含执行软件以剖析MIDI文件且对与所 述MIDI文件相关联的MIDI事件进行调度的处理器、处理所述MIDI事件且产生MIDI 合成参数的DSP及基于所述合成参数产生音频样本的硬件单元。
在另一方面中,本发明提供一种装置,其包含剖析MIDI文件且对与所述MIDI文件相关联的MIDI事件进行调度的软件装置、用于处理所述MIDI事件以产生MIDI合成 参数的固件装置及用于基于所述合成参数产生音频样本的硬件装置。
在另一方面中,本发明提供一种装置,其包含多线程DSP,其包括剖析MIDI文 件且对与所述MIDI文件相关联的MIDI事件进行调度的第一线程及处理所述MIDI事件 且产生MIDI合成参数的第二线程;及硬件单元,其基于所述合成参数产生音频样本。
在另一方面中,本发明提供一种包含指令的计算机可读媒体,所述指令在由一个或 一个以上处理器执行时,致使所述一个或一个以上处理器使用第一过程剖析MIDI文件 且对与MIDI文件相关联的MIDI事件进行调度,使用第二过程处理所述MIDI事件以产 生MIDI合成参数,且使用硬件单元基于所述合成参数产生音频样本。
在另一方面中,本发明提供一种电路,其经配置以使用第一过程剖析MIDI文件且 对与MIDI文件相关联的MIDI事件进行调度,使用第二过程处理所述MIDI事件以产生 MIDI合成参数,且使用硬件单元基于所述合成参数产生音频样本。
在随附图式及以下描述中阐述本发明的一个或一个以上方面的细节。其它特征、目 标及优势根据描述及图式且根据权利要求书将显而易见。


图I是说明可实施本发明的技术的示范性音频装置的框图。
图2是说明可经管线化以用于有效处理MIDI文件的第一处理器(或第一线程)、 第二处理器(或第二线程)及乐器数字接口 (MIDI)硬件的框图。 图3是MIDI硬件的一个实例的更详细的框图。 图4是说明与本发明的教示相一致的示范性技术的流程图。
具体实施例方式
本发明描述用于处理遵照乐器数字接口 (MIDI)格式的音频文件的技术。在本文中 使用时,术语MIDI文件指代含有符合MIDI格式的至少一个音轨的任何文件。可包括 MIDI音轨的各种文件格式的实例包括(例如)CMX、 SMAF、 XMF、 SP-MIDI。 CMX 代表由高通有限公司(Qualcommlnc.)开发的紧凑媒体扩展。SMAF代表由雅马哈公司 (Yamaha Corp.)开发的合成音乐移动应用格式。XMF代表可扩展音乐格式且SP-MIDI 代表可縮放复调MIDI。
如下文更详细描述的,本发明提供在于通用处理器上操作的软件、与数字信号处理 器(DSP)相关联的固件及经特定设计以用于MIDI文件处理的专用硬件之间委派与MIDI文件处理相关联的各种任务的技术。所描述的技术可经管线化以用于实现MIDI文件处 理的改进的效率。
通用处理器可执行软件以剖析MIDI文件且对与MIDI文件相关联的MIDI事件进行 调度。接着可由DSP以同步方式(如由MIDI文件中的时序参数所指定)服务于经调度 的事件。通用处理器以时间同步方式向DSP分派MIDI事件,且DSP根据时间同步调 度来处理所述MIDI事件以产生MIDI合成参数。DSP接着对硬件中合成参数的处理进 行调度,且硬件单元可基于合成参数产生音频样本。
通用处理器可服务于第一帧(帧N)的MIDI文件,且当第一帧(帧N)由DSP服 务时,第二帧(帧N+1)可同时由通用处理器服务。此外,当第一帧(帧N)由硬件服 务时,第二帧(帧N+1)同时由DSP服务,同时第三帧(帧N+2)由通用处理器服务。 以此方式,将MIDI文件处理分离为可同时处理的管线化级,其可改进效率且可能减少 给定级(例如与DSP相关联的级)所需的计算资源。每一帧从通用处理器到DSP且接 着到硬件而通过各种管线级。在一些情况下,可(例如)经由中断驱动技术将硬件产生 的音频样本传递回到DSP以便可执行任何后处理。接着可将音频样本转换为可用以驱动 扬声器且向用户输出音频声音的模拟信号。
或者,可在DSP的两个不同线程与专用硬件之间委派与MIDI文件处理相关联的任 务。亦即,可替代地由多线程DSP的第一线程来执行与通用处理器(如本文中所描述) 相关联的任务。在此情况下,DSP的第一线程执行调度,DSP的第二线程产生合成参数, 且硬件单元基于合成参数产生音频样本。也可以类似于使用通用处理器进行调度的实例 的方式将此替代实例管线化。
图1是说明示范性音频装置4的框图。音频装置4可包含任何能够处理MIDI文件 (例如,包括至少一个MIDI音轨的文件)的装置。音频装置4的实例包括无线通信装置, 例如无线电电话、网络电话、数字音乐播放器、音乐合成器、无线移动装置、直接双向 通信装置(有时称为对讲机)、个人计算机、桌上型或膝上型计算机、工作站、卫星无 线电装置、内部通信装置、无线电广播装置、手持型游戏装置、安装在装置中的电路板、 查询站装置、视频游戏控制台、各种儿童计算机化玩具、用于汽车、船只或飞机中的机 载计算机或多种其它装置。
提供图1中所说明的各种组件来解释本发明的方面。然而,在一些实施方案中,可 能存在其它组件,且可能不包括所说明的组件中的一些。举例来说,如果音频装置4为 无线电电话,则可包括天线、发射器、接收器及调制解调器(调制器-解调器)以促进对 音频文件的无线传送。如图l的实例中所说明,音频装置4包括音频存储单元6以存储MIDI文件。又, MIDI文件一般指代任何包括以MIDI格式编码的至少一个音轨的音频文件。音频存储单 元6可包含任何易失性或非易失性存储器或存储装置。出于本发明的目的,可将音频存 储单元6视为将MIDI文件转发到处理器8的存储单元,或者处理器8从音频存储单元 6检索MIDI文件,以使得所述文件被处理。当然,音频存储单元6也可为与数字音乐 播放器相关联的存储单元或与从另一装置的信息传递相关联的临时存储单元。音频存储 单元6可为经由数据总线或其它连接耦合到处理器8的单独的易失性存储器芯片或非易 失性存储装置。可包括存储器或存储装置控制器(未图示)以促进从音频存储单元6的 信息传递。
根据本发明,装置4实施在软件、硬件及固件之间分离MIDI处理任务的架构。确 切地说,装置4包括处理器8、DSP12及MIDI硬件单元14。这些组件中的每一者可(例 如)直接或经由总线耦合到存储器单元10。处理器8可包含执行软件以剖析MIDI文件 且对与MIDI文件相关联的MIDI事件进行调度的通用处理器。经调度的事件可以时间 同步方式向DSP12分派,且借此由DSP12以同步方式(如由MIDI文件中的时序参数 所指定)服务。DSP12根据通用处理器8所产生的时间同步调度来处理MIDI事件以便 产生MIDI合成参数。DSP12也可对由MIDI硬件单元14进行的对MIDI合成参数的后 续处理进行调度。MIDI硬件单元14基于合成参数产生音频样本。
处理器8可包含多种通用单芯片或多芯片微处理器中的任一者。处理器8可实施 CISC (复杂指令集计算机)设计或RISC (精简指令集计算机)设计。 一般而言,处理 器8包含执行软件的CPU (中央处理单元)。实例包括来自例如英特尔公司(Intel Corporation^苹果计算机有限公司(Apple Computer, Inc)、太阳微系统有限公司(Sun Microsystems Inc.)、高级微型装置(AMD)有限公司等公司的16位、32位或64位微 处理器。其它实例包括来自例如国际商业机器公司(International Business Machines (IBM) Corporation)、红帽有限公司(RedHatlnc.)等公司的基于Unix或基于Linux的 微处理器。通用处理器可包含可购自ARM有限公司(ARMInc.)的ARM9,且DSP可 包含由高通有限公司(Qualcomm Inc.)开发的QDSP4DSP。
处理器8可服务于第一帧(帧N)的MIDI文件,且当第一帧(帧N)由DSP12服 务时,第二帧(帧N+1)可同时由处理器8服务。当第一帧(帧N)由MIDI硬件单元 14服务时,第二帧(帧N+1)同时由DSP 12服务,同时第三帧(帧N+2)由处理器8 服务。以此方式,将MIDI文件处理分离为可同时处理的管线化级,此可改进效率且可 能减少给定级所需的计算资源。举例来说,DSP12可相对于在没有处理器8或MIDI硬件14的帮助下执行完整MIDI算法的常规DSP得到简化。
在一些情况下,(例如)经由中断驱动技术将MIDI硬件14所产生的音频样本传递 回DSP 12。在此情况下,DSP也可对音频样本执行后处理技术。DAC16将数字音频样 本转换为可由驱动电路18用以驱动扬声器19A及19B以用于向用户输出音频声音的模 拟信号。
对于每一音频帧,处理器8读取一个或一个以上MIDI文件且可从MIDI文件提取 MIDI指令。基于这些MIDI指令,处理器8对MIDI事件进行调度以用于由DSP 12处 理,且根据此调度向DSP12分派MIDI事件。确切地说,通过处理器8进行的此调度可 包括与MIDI事件相关联的时序的同步,所述同步可基于MIDI文件中所指定的时序参 数来识别。MIDI文件中的MIDI指令可指令特定MIDI语音开始或停止。其它MIDI指 令可关于触后效果、呼吸控制效果、程序改变、音高折曲(pitch bend)效果、例如左右 摇动(pan)等控制消息、延音踏板(sustain pedal)效果、主音量控制、例如时序参数 等系统消息、例如灯光效果提示(cue)等MIDI控制消息及/或其它声音效果。在对MIDI 事件进行调度之后,处理器8可将调度提供到存储器10或DSP 12以使得DSP 12可处 理所述事件。或者,处理器8可通过以时间同步方式向DSP12分派MIDI事件而执行调 度。
存储器10可构造成使得处理器8、 DSP 12及MIDI硬件14可存取执行委派给这些 不同组件的各种任务所需的任何信息。在一些情况下,可对MIDI信息在存储器10中的 存储布局进行布置以允许从不同组件8、 12及14进行有效存取。
当DSP12从处理器8 (或从存储器IO)接收到经调度的MIDI事件时,DSP12可处 理MIDI事件以便产生可被存储回存储器10中的MIDI合成参数。又,这些MIDI事件 由DSP服务的时序由处理器8加以调度,此通过消除DSP 12执行所述调度任务的需要 而产生效率。因此,DSP12可在处理器8正对下一音频帧的MIDI事件进行调度的同时 服务于第一音频帧的MIDI事件。音频帧可包含时间块(例如,10毫秒(ms)的间隔), 其可包括若干音频样本。举例来说,数字输出可对于每一帧产生480个样本,可将所述 样本转换为模拟音频信号。许多事件可对应于一个时间实例以使得许多音符或声音可根 据MIDI格式包括于一个时间实例中。当然,委派给任何音频帧的时间量以及每一帧的 样本的数目在不同实施方案中可变化。
一旦DSP 12已产生MIDI合成参数,MIDI硬件单元14便基于合成参数产生音频样 本。DSP12可对由MIDI硬件单元14进行的对MIDI合成参数的处理进行调度。由MIDI 硬件单元14产生的音频样本可包含脉冲编码调制(PCM)样本,所述样本是对以规律间隔取样的模拟信号的数字表示。下文参看图3论述由MIDI硬件单元14进行的示范性 音频产生的额外细节。
在--些情况下,可能需要对音频样本执行后处理。在此情况下,MIDI硬件单元14 可向DSP12发送中断命令以指令DSP12执行所述后处理。后处理可包括滤波、縮放、 音量调节或可最终增强声音输出的多种音频后处理。
在后处理之后,DSP 12可将经后处理的音频样本输出到数/模转换器(DAC) 16。 DAC 16将数字音频信号转换为模拟信号且将模拟信号输出到驱动电路18。驱动电路18 可放大信号以驱动一个或一个以上扬声器19A及19B来产生可听的声音。
图2是说明可经管线化以用于有效处理MIDI文件的第一处理器(或第一线程)8B、 第二处理器(或第二线程)12B及MIDI硬件单元14B的框图。处理器(或线程)8B、 12B及MIDI硬件单元14B可对应于图1的处理器8、 DSP12及单元14。或者,元件8B 及12B可对应于在多线程DSP中执行的两个不同处理线程(不同过程)。在此情况下, DSP的第一线程执行调度,DSP的第二线程产生合成参数,且硬件单元基于合成参数产 生音频样本。也可以类似于使用通用处理器进行调度的实例的方式对此替代实例进行管 线化。
如图2所示,第一处理器(或线程)8B执行文件剖析器模块22及事件调度器模块 24。文件剖析器模块22剖析MIDI文件以识别MIDI文件中需被调度的MIDI事件。换 句话说,文件剖析器检查MIDI文件以识别指示需要调度的MIDI事件的时序参数。事 件调度器模块24接着对所述事件调度以由第二处理器(或线程)12B进行服务。第一 处理器(或线程)8B以如事件调度器模块24界定的时间同步方式向第二处理器(或线 程)12B分派经调度的MIDI事件。
第二处理器(或线程)12B包括MIDI合成模块25、硬件控制模块26及后处理模 块28。 MIDI合成模块25包含使得第二处理器(或线程)12B基于MIDI事件产生合成 参数的可执行指令。然而,第一处理器(或线程)8B对MIDI事件进行调度以使得此调 度任务不会减缓由第二处理器(或线程)12B进行的合成参数产生。
硬件控制模块26是由第二处理器(或线程)12B执行以用于控制MIDI硬件单元 14的操作的软件控制。硬件控制模块26可向MIDI硬件单元14发布命令,且可对MIDI 硬件单元14进行的对合成参数的服务进行调度。后处理模块28是由第二处理器(或线 程)12B执行以对由MIDI硬件单元14B产生的音频样本执行任何后处理的软件模块。
一旦第二处理器(或线程)12B己产生合成参数,MIDI硬件单元14B便使用这些 合成参数来产生音频样本,所述音频样本可经后处理且接着用以驱动扬声器。下文参看图3论述特定MIDI硬件单元14C的一个实施方案的其它细节。然而,依照本发明的教 示也可界定其它MIDI硬件实施方案。举例来说,虽然图3中所示的MIDI硬件单元14C 使用基于波表的方法来进行语音合成,但也可使用包括频率调制合成方法在内的其它方 法。重要的是,图2中所示的组件(亦即,第一处理器(或线程)8B、第二处理器(或 线程)12B及MIDI硬件单元14B)以管线化方式起作用。具体来说,音频帧沿此处理 管线经过,以使得当第一帧(例如,帧N)正由硬件单元14B服务时,第二帧(例如, 帧N+1)正由第二处理器(或线程)12B服务且第三帧(例如,帧N+2)正由第一处理 器(或线程)8B服务。在三级实施方案中用通用处理器、DSP及MIDI硬件单元(或替 代地,第一DSP线程、第二 DSP线程及MIDI硬件单元)进行的对MIDI文件的所述管 线化处理可在处理包括MIDI文件的音频帧方面提供效率。图3是说明可对应于音频装置4的音频硬件单元14的示范性MIDI硬件单元14C 的框图。图3所示的实施方案只是示范性的,因为依据本发明的教示也可界定其它硬件 实施方案。如图3的实例中所说明,MIDI硬件单元14C包括用以发送及接收数据的总 线接口 30。举例来说,总线接口 30可包括AMBA高性能总线(AHB)主接口、 AHB 从属接口及存储器总线接口。 AMBA代表高级微处理器总线架构。或者,总线接口 30 可包括AXI总线接口或另 一类型的总线接口 。 AXI代表高级可扩展接口 。另外,MIDI硬件单元14C可包括协调模块32。协调模块32协调MIDI硬件单元 14C内的数据流。当MIDI硬件单元14C从DSP12 (图l)接收开始合成音频样本的指 令时,协调模块32从存储器IO读取音频帧的合成参数(其由DSP 12 (图1)产生)。 这些合成参数可用以重建音频帧。对于MIDI格式,合成参数描述给定帧内的一个或一 个以上MIDI语音的各种声音特征。举例来说,MIDI合成参数的集合可指定谐振级、混 响、音量及/或可影响一个或一个以上语音的其它特征。在协调模块32的指导下,可将合成参数从存储器10 (图1)加载到与相应处理元 件34A或34N相关联的语音参数集合(VPS) RAM 46A或46N中。在DSP 12 (图l) 的指导下,将程序指令从存储器10加载到与相应处理元件34A或34N相关联的程序 RAM单元44A或44N中。加载到程序RAM单元44A或44N中的指令指令相关联的处理元件34A或34N合 成VPS RAM单元46A或46N中的合成参数的列表中指示的语音中的一者。可能存在任 何数目的处理元件34A到34N (统称为"处理元件34"),且每一者可包含能够执行数 学运算的一个或一个以上ALU以及用以读取及写入数据的一个或一个以上单元。为了简单起见仅说明两个处理元件34A及34N,但MIDI硬件单元14C中可包括许多更多处 理元件。处理元件34可以彼此并行的方式合成语音。确切地说,所述多个不同处理元 件34并行工作以处理不同合成参数。以此方式,MIDI硬件单元14C内的多个处理元件 34可加速且可能改进音频样本的产生。当协调模块32指令处理元件34中的一者合成语音时,相应处理元件可执行与合成 参数相关联的一个或一个以上指令。同样,可将这些指令加载到程序RAM单元44A或 44N中。加载到程序RAM单元44A或44N中的指令使得处理元件34中的相应一者执 行语音合成。举例来说,处理元件34可向波形获取单元(WFU) 36发送对于合成参数 中所指定的波形的请求。处理元件34中的每一者可使用WFU36。如果两个或两个以上 处理元件34同时请求使用WFU36,则可使用仲裁方案以解决任何冲突。响应于来自处理元件34中的一者的请求,WFU36向请求处理元件返回一个或一个 以上波形样本。然而,因为波可在样本内相移(例如,高达一个波循环),所以WFU36 可返回两个样本以便使用内插来补偿相移。此外,因为立体声信号可针对两个立体声通 道包括两个单独的波,所以WFU 36可针对不同通道返回单独的样本,(例如)从而产 生立体声输出的高达四个单独样本。在WFU 36将音频样本返回到处理元件34中的一者之后,相应处理元件可基于合 成参数执行额外程序指令。确切地说,指令使得处理元件34中的一者从MIDI硬件单元 14C中的低频振荡器(LFO)38请求不对称三角波。通过使WFU 36返回的波形乘以LFO 38返回的三角波,相应处理元件可操纵波形的各种声音特征以实现所要的音频效果。举 例来说,使波形乘以三角波可产生听起来较像所要乐器的波形。基于合成参数执行的其它指令可使得处理元件34中的相应一者使波形循环特定次 数、调节波形的振幅、添加混响、添加颤音效果或造成其它效果。以此方式,处理元件 34可计算持续一个MIDI帧的语音的波形。最后,相应处理元件可遇到退出指令。当处 理元件34中的一者遇到退出指令时,所述处理元件向协调模块32发信号通知语音合成 的结束。接着可在使得求和缓冲器40存储所计算的语音波形的另一存储指令的指导下 将所述所计算的语音波形提供到求和缓冲器40。可在程序指令的执行期间在另一存储指 令的指导下将所计算的语音波形提供到求和缓冲器40。此使得求和缓冲器40存储所述 所计算的语音波形。当求和缓冲器40从处理元件34中的一者接收到所计算的波形时,求和缓冲器40 将所计算的波形添加到与MIDI帧的整体波形相关联的适当时间实例。因此,求和缓冲 器40组合多个处理元件34的输出。举例来说,求和缓冲器40最初可存储平顶波(亦即,所有数字样本均为零的波)。当求和缓冲器40从处理元件34中的一者接收到例如 所计算的波形等音频信息时,求和缓冲器40可将所计算的波形的每一数字样本添加到 存储于求和缓冲器40中的波形的相应样本。以此方式,求和缓冲器40累加并存储完整 音频帧的波形的整体数字表示。求和缓冲器40主要对来自处理元件34中的不同处理元件的不同音频信息进行求 和。不同音频信息指示与不同的所产生的语音相关联的不同时间实例。以此方式,求和 缓冲器40产生表示给定音频帧内的整体音频编辑的音频样本。处理元件34可彼此并行但独立地操作。亦即,处理元件34中的每一者可处理合成 参数,且接着一旦针对第一合成参数产生的音频信息被添加到求和缓冲器40便继续移 动到下一合成参数。因此,处理元件34中的每一者独立于其它处理元件34而执行其针 对一个合成参数的处理任务,且在针对合成参数的处理完成时,所述相应处理元件变得 立即可用于对另一合成参数的后续处理。最后,协调模块32可确定处理元件34已完成对当前音频帧所需要的所有语音的合 成且已将所述语音提供到求和缓冲器40。在此点上,求和缓冲器40含有指示当前音频 帧的完整波形的数字样本。在协调模块32进行此确定时,协调模块32向DSP 12 (图1) 发送中断。响应于所述中断,DSP 12可经由直接存储器交换(DME)向求和缓冲器40 中的控制单元(未图标)发送请求以接收求和缓冲器40的内容。或者,DSP12也可经 预编程以执行DME。 DSP 12接着可在将数字音频样本提供到DAC 16以供转换到模拟 域之前对数字音频样本执行任何后处理。根据本发明,由MIDI硬件单元14C关于帧N+2 执行的处理与由DSP 12 (图1)关于帧N+1进行的合成参数产生及由处理器8 (图1) 关于帧N进行的调度操作同时发生。图3中也展示高速缓冲存储器48、 WFU/LFO存储器39及链接列表存储器42。高 速缓冲存储器48可由WFU36用来以快速且有效的方式获取基本波形。WFU/LFO存储 器39可由协调模块32用以存储语音参数集合的语音参数。以此方式,可将WFU/LFO 存储器39视为专用于波形获取单元36及LFO 38的操作的存储器。链接列表存储器42 可包含用以存储由DSP 12产生的语音指示符的列表的存储器。语音指示符可包含指向 存储于存储器10中的一个或一个以上合成参数的指针。列表中的每一语音指示符可指 定存储相应MIDI语音的语音参数集合的存储器位置。图3所示的各种存储器及存储器 的布置只是示范性的。本文中描述的技术可用多种其它存储器布置实施。根据本发明,只要多个处理元件34关于存储器10 (图1)中存储的不同合成参数 同时操作,MIDI硬件单元14C中便可包括任何数目的处理元件34。举例来说,第一音频处理元件34A处理第一音频合成参数以产生第一音频信息,同时另一音频处理元件 34N处理第二音频合成参数以产生第二音频信息。求和缓冲器40接着可在产生一个或 一个以上音频样本时组合第一音频信息与第二音频信息。类似地,第三音频处理元件(未 图示)及第四处理元件(未图示)可处理第三及第四合成参数,以产生在产生音频样本 时也可在求和缓冲器40中累加的第三及第四音频信息。处理元件34可处理音频帧的所有合成参数。在处理每一相应合成参数之后,处理 元件34中的相应一者将其经处理的音频信息添加到求和缓冲器40中的累加,且接着继 续移动到下一合成参数。以此方式,处理元件34共同工作以处理针对音频帧的一个或 一个以上音频文件产生的所有合成参数。接着,在处理音频帧且将求和缓冲器中的样本 发送到DSP 12以用于后处理之后,处理元件34可开始处理下一音频帧的音频文件的合 成参数。同样,第一音频处理元件34A处理第一音频合成参数以产生第一音频信息,同时第 二音频处理元件34N处理第二音频合成参数以产生第二音频信息。在此点上,第一处理 元件34A可处理第三音频合成参数以产生第三音频信息,同时第二音频处理元件34N 处理第四音频合成参数以产生第四音频信息。求和缓冲器40可在产生一个或一个以上 音频样本时组合第一、第二、第三及第四音频信息。图4是说明依据本发明的教示的示范性技术的流程图。将参看图1的装置4来描述 图4,但其它装置可实施图4的技术。可替代地由多线程DSP的两个不同线程来执行图 4中标记的级1及级2。如图4所示,以第一音频帧N开始(51),在处理器8上执行的软件剖析MIDI文 件(52),且对MIDI事件进行调度(53)。经调度的事件可与调度一起被存储,或根据 调度而向DSP12分派。在任何情况下,DSP12均处理帧N的MIDI事件以产生合成参 数(56)。在此点上,在DSP 12正处理帧N的MIDI事件(56)的同时,如果音频序列中存 在更多帧(54的"是"分支),则在处理器8上执行的软件开始服务于下一帧(55),亦 即,帧N+1。因此,在DSP 12正处理帧N的MIDI事件(56)的同时,在处理器8上 执行的软件剖析帧N+1的MIDI文件(52),且对帧N+l的MIDI事件进行调度(53)。 换句话说,关于帧N及帧N+1同时执行级1及级2。接着,MIDI硬件单元14产生帧N的音频样本(57)。在此点上,DSP正处理帧N+1 的MIDI事件(56),且在处理器8上执行的软件正剖析帧N+2的MIDI文件(52),且 正对帧N+2的MIDI事件进行调度(53)。换句话说,关于帧N、帧N+l及帧N+2同时执行级1、 2及3。此分级方法继续用于每一后续音频帧以使得音频帧以管线化方式通过 级1、 2及3。当帧N+l由硬件单元14服务时,帧N+2由DSP 12服务且帧N+3由通用 处理器8服务。当帧N+2由硬件单元14服务时,帧N+3由DSP12服务且帧N+4由通 用处理器8服务,等等。一旦针对任何给定帧产生了音频样本(57),便可对所述帧执行后处理(58)。 DSP 12 可响应于来自硬件单元14的中断命令而执行任何后处理。以此方式,DSP12不仅处置 对MIDI事件的处理,而且还处置需要对所产生的音频帧执行的任何后处理。在针对任何帧的后处理(58)之后,DAC 16将帧的音频样本转换为模拟音频信号 (59),所述模拟音频信号可被提供到驱动电路18。驱动电路18使用模拟音频信号来产 生使得扬声器19A及19B输出声音(60)的驱动信号。已描述各种实例。本文中描述的技术的一个或一个以上方面可在硬件、软件、固件 或其组合中实施。描述为模块或组件的任何特征可一起实施在集成逻辑装置中,或单独 地实施为离散但可交互操作的逻辑装置。如果在软件中实施,则所述技术的一个或一个 以上方面可至少部分地由包含指令的计算机可读媒体实现,所述指令在被执行时执行上 文所述的方法中的一者或一者以上。计算机可读数据存储媒体可形成可包括封装材料的 计算机程序产品的部分。计算机可读媒体可包含例如同步动态随机存取存储器 (SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储 器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数 据存储媒体及其类似物。另外或替代地,所述技术可至少部分地由计算机可读通信媒体 来实现,所述计算机可读通信媒体以指令或数据结构的形式来载运或传送代码,且可由 计算机来存取、读取及/或执行。可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路 (ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个 以上处理器来执行所述指令。因此,在本文中使用时,术语"处理器"可指代上述结构 中的任一者或适于实施本文中描述的技术的任何其它结构。另外,在一些方面中,本文 中描述的功能性可提供于经配置或适于执行本发明的技术的专用软件模块或硬件模块 内。如果在硬件中实施,则本发明的一个或一个以上方面可针对经配置或经适于执行本 文中描述的技术中的一者或一者以上的例如集成电路、芯片组、ASIC、 FPGA、逻辑或 其各种组合等电路。电路可包括集成电路或芯片组中的处理器及一个或一个以上硬件单 元(如本文中所描述)。也应注意,所属领域的技术人员将认识到电路可实施上文描述的功能中的一些或全 部。可能存在实施所有功能的一个电路,或者也可能存在实施功能的电路的多个区段。 在当前移动平台技术的情况下,集成电路可包含至少一个DSP及至少一个高级精简指令 集计算机(RISC)机器(ARM)处理器以控制及/或通信到DSP。另外,电路可设计或 实施于若干区段中,且在一些情况下,可再使用区段以执行本发明中所描述的不同功能。已描述各种方面及实例。然而,可在不脱离随附权利要求书的范围的情况下对本发 明的结构或技术进行修改。举例来说,其它类型的装置也可实施本文中描述的MIDI处 理技术。又,虽然图3所示的示范性硬件单元14C使用基于波表的方法来进行语音合成, 但也可使用包括频率调制合成方法在内的其它方法。这些及其它实施例属于随附权利要 求书的范围内。
权利要求
1.一种方法,其包含使用第一过程剖析乐器数字接口(MIDI)文件且对与所述MIDI文件相关联的MIDI事件进行调度;使用第二过程处理所述MIDI事件以产生MIDI合成参数;以及使用硬件单元基于所述合成参数产生音频样本。
2. 根据权利要求l所述的方法,其中由处理器执行所述第一过程且由数字信号处理器 (DSP)执行所述第二过程。
3. 根据权利要求1所述的方法,其中由数字信号处理器(DSP)的第一线程执行所述 第一过程且由所述DSP的第二线程执行所述第二过程。
4. 根据权利要求l所述的方法,其中以管线化方式执行所述方法。
5. 根据权利要求4所述的方法,其中同时地所述第一过程针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述第二过程针对第N+l帧产生MIDI合成参数;且 所述硬件单元针对第N帧产生音频样本。
6. 根据权利要求1所述的方法,其中所述音频样本包含脉冲编码调制(PCM)样本。
7. 根据权利要求1所述的方法,其中所述音频样本包含数字样本,所述方法进一步包 含将所述音频样本转换为模拟输出;以及 向用户输出所述模拟输出。
8. 根据权利要求1所述的方法,其中所述MIDI文件包含含有符合MIDI格式的至少 一个音轨的文件。
9. 根据权利要求1所述的方法,其中对所述MIDI事件进行调度包括基于所述MIDI文件中指定的时序参数使所述MIDI事件的时序同步。
10. 根据权利要求1所述的方法,其中所述第一过程以时间同步方式向所述第二过程分 派所述MIDI事件。
11. 根据权利要求1所述的方法,其中所述第二过程对由所述硬件单元进行的对所述合 成参数的处理进行调度。
12. 根据权利要求1所述的方法,其进一步包含对所述音频样本进行后处理。
13. 根据权利要求12所述的方法,其中所述硬件单元发布中断以起始所述后处理。
14. 根据权利要求1所述的方法,其中所述硬件单元包括并行工作以处理不同合成参数 的多个处理元件。
15. 根据权利要求14所述的方法,其中所述硬件单元进一步包括组合所述多个处理元 件的输出的求和缓冲器。
16. —种装置,其包含处理器,其执行软件以剖析乐器数字接口 (MIDI)文件且对与所述MIDI文件相 关联的MIDI事件进行调度数字信号处理器(DSP),其处理所述MIDI事件且产生MIDI合成参数;以及 硬件单元,其基于所述合成参数产生音频样本。
17. 根据权利要求16所述的装置,其中所述处理器、所述DSP及所述硬件单元以管线 化方式操作。
18. 根据权利要求17所述的装置,其中同时地所述处理器针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述DSP针对第N+l帧产生MIDI合成参数;且 所述硬件单元针对第N帧产生音频样本。
19. 根据权利要求16所述的装置,其中所述音频样本包含脉冲编码调制(PCM)样本。
20. 根据权利要求16所述的装置,其中所述音频样本包含数字音频样本,所述装置进 一步包含数/模转换器,其将所述音频样本转换为模拟输出; 驱动电路,其放大所述模拟输出;以及一个或一个以上扬声器,其向用户输出所述经放大的模拟输出。
21. 根据权利要求16所述的装置,其中所述MIDI文件包含含有符合MIDI格式的至少 一个音轨的文件。
22. 根据权利要求16所述的装置,其中所述处理器执行所述软件以基于所述MIDI文 件中指定的时序参数使所述MIDI事件的时序同步。
23. 根据权利要求16所述的装置,其中所述处理器以时间同步方式向所述DSP分派所 述MIDI事件。
24. 根据权利要求16所述的装置,其中所述DSP对由所述硬件单元进行的对所述合成 参数的处理进行调度。
25. 根据权利要求16所述的装置,其中所述DSP对所述音频样本进行后处理。
26. 根据权利要求25所述的装置,其中所述硬件单元向所述DSP发布中断以起始所述 后处理。
27. 根据权利要求16所述的装置,其中所述硬件单元包括并行工作以处理不同合成参 数的多个处理元件。
28. 根据权利要求27所述的装置,其中所述硬件单元进一步包括组合所述多个处理元 件的输出的求和缓冲器。
29. —种装置,其包含-用于剖析乐器数字接口 (MIDI)文件且对与所述MIDI文件相关联的MIDI事件 进行调度的软件装置;用于处理所述MIDI事件以产生MIDI合成参数的固件装置;以及 用于基于所述合成参数产生音频样本的硬件装置。
30. 根据权利要求29所述的装置,其中软件装置、所述固件装置及所述硬件装置以管 线化方式操作。
31. 根据权利要求30所述的装置,其中同时地所述软件装置针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述固件装置针对第N+1帧产生MIDI合成参数;且所述硬件装置针对第N帧产生音频样本。
32. 根据权利要求29所述的装置,其中所述音频样本包含脉冲编码调制(PCM)样本。
33. 根据权利要求29所述的装置,其中所述音频样本包含数字音频样本,所述装置进 一步包含用于将所述音频样本转换为模拟输出的装置;以及 用于向用户输出所述模拟输出的装置。
34. 根据权利要求29所述的装置,其中所述MIDI文件包含含有符合MIDI格式的至少 一个音轨的文件。
35. 根据权利要求29所述的装置,所述软件装置基于所述MIDI文件中指定的时序参 数使所述MIDI事件的时序同步。
36. 根据权利要求29所述的装置,其中所述软件装置以时间同步方式向所述面件装置 分派所述MIDI事件。
37. 根据权利要求29所述的装置,其中所述固件装置对由所述硬件装置进行的对所述 合成参数的处理进行调度。
38. 根据权利要求29所述的装置,其中所述固件装置使用所述DSP对所述音频样本进 行后处理。
39. 根据权利要求38所述的装置,其中所述硬件装置向所述固件装置发布中断以起始 所述后处理。
40. 根据权利要求29所述的装置,其中所述硬件装置包括并行工作以处理不同合成参 数的多个处理元件。
41. 根据权利要求40所述的装置,其中所述硬件装置进一步包括用以组合所述多个处 理元件的输出的求和缓冲器。
42. —种装置,其包含多线程数字信号处理器(DSP),其包括剖析乐器数字接口 (MIDI)文件且对与 所述MIDI文件相关联的MIDI事件进行调度的第一线程及处理所述MIDI事件且 产生MIDI合成参数的第二线程;以及硬件单元,其基于所述合成参数产生音频样本。
43. 根据权利要求42所述的装置,其中所述第一线程、所述第二线程及所述硬件单元 以管线化方式操作。
44. 根据权利要求43所述的装置,其中同时地所述第一线程针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述第二线程针对第N+l帧产生MIDI合成参数;且所述硬件单元针对第N帧产生音频样本。
45. —种包含指令的计算机可读媒体,所述指令在由一个或一个以上处理器执行时致使 所述一个或一个以上处理器以使用第一过程剖析乐器数字接口 (MIDI)文件且对与所述MIDI文件相关联的 MIDI事件进行调度;使用第二过程处理所述MIDI事件以产生MIDI合成参数;且使用硬件单元基于所述合成参数产生音频样本。
46. 根据权利要求45所述的计算机可读媒体,其中同时地所述第一过程针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述第二过程针对第N+l帧产生MIDI合成参数;且 所述硬件单元针对第N帧产生音频样本。
47. —种电路,其经配置以使用第一过程剖析乐器数字接口 (MIDI)文件且对与所述MIDI文件相关联的 MIDI事件进行调度;使用第二过程处理所述MIDI事件以产生MIDI合成参数;且 使用硬件单元基于所述合成参数产生音频样本。
48. 根据权利要求47所述的电路,其中同时地所述第一过程针对第N+2帧剖析MIDI文件且对MIDI事件进行调度; 所述第二过程针对第N+l帧产生MIDI合成参数;且 所述硬件单元针对第N帧产生音频样本。
全文摘要
本发明描述用于处理遵照乐器数字接口(MIDI)格式的音频文件的技术。确切地说,在于通用处理器上操作的软件、与数字信号处理器(DSP)相关联的固件及经特定设计以用于MIDI文件处理的专用硬件之间委派与MIDI文件处理相关联的各种任务。或者,可使用多线程DSP代替通用处理器及所述DSP。在一方面中,本发明提供一种方法,其包含使用第一过程剖析MIDI文件且对与所述MIDI文件相关联的MIDI事件进行调度,使用第二过程处理所述MIDI事件以产生MIDI合成参数,及使用硬件单元基于所述合成参数产生音频样本。
文档编号G10H7/00GK101636780SQ200880008719
公开日2010年1月27日 申请日期2008年3月17日 优先权日2007年3月22日
发明者埃迪·L.t.·乔伊, 尼迪什·拉马钱德拉·卡马特, 斯蒂芬·莫洛伊, 普拉加克特·V·库尔卡尼, 苏雷什·德瓦拉帕里, 萨米尔·库马尔·古普塔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1