CN101896963B - 用于在音频播放器中提供多区器具支持的方法和系统 - Google Patents

用于在音频播放器中提供多区器具支持的方法和系统 Download PDF

Info

Publication number
CN101896963B
CN101896963B CN2009801013059A CN200980101305A CN101896963B CN 101896963 B CN101896963 B CN 101896963B CN 2009801013059 A CN2009801013059 A CN 2009801013059A CN 200980101305 A CN200980101305 A CN 200980101305A CN 101896963 B CN101896963 B CN 101896963B
Authority
CN
China
Prior art keywords
utensil
player
midi
district
note
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009801013059A
Other languages
English (en)
Other versions
CN101896963A (zh
Inventor
苏雷什·德瓦拉帕利
普拉加克特·库尔卡尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101896963A publication Critical patent/CN101896963A/zh
Application granted granted Critical
Publication of CN101896963B publication Critical patent/CN101896963B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • G10H1/0075Transmission between separate instruments or between individual components of a musical system using a MIDI interface with translation or conversion means for unvailable commands, e.g. special tone colors
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/016File editing, i.e. modifying musical data files or streams as such
    • G10H2240/021File editing, i.e. modifying musical data files or streams as such for MIDI-like files or data streams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/121Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
    • G10H2240/145Sound library, i.e. involving the specific use of a musical database as a sound bank or wavetable; indexing, interfacing, protocols or processing therefor

Abstract

本发明描述一种用于在音频播放器中提供多区器具支持的方法。接收一组用户定义器具和一组MIDI数据。标识所述组用户定义器具中的至少一个多区器具。使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具。将新的器具编号指派到每一单区器具。基于所述映射和指派来修改所述MIDI数据。

Description

用于在音频播放器中提供多区器具支持的方法和系统
相关申请案
本申请案与发明者普莱捷克特·库尔卡尼(Prajakt Kulkarni)和苏莱士·迪瓦莱帕里(Suresh Devalapalli)在2008年1月24日申请的题为“用以改进音频播放器之间的输出声音的相似度的技术(Techniques to Improve the Similarity ofthe Output Sound BetweenAudio Players)”的第61/023,174号美国临时专利申请案有关且主张其优先权。
技术领域
本发明涉及数字音频。特定来说,本发明涉及在MIDI音频播放器中提供多区器具支持。
背景技术
乐器数字接口(MIDI)格式用于音频声音(例如,音乐、演讲、音调、警报等)的产生、传送和/或回放中。在广泛多种装置中支持MIDI。举例来说,无线通信装置(例如,无线电电话)可支持用于可下载声音(例如,铃声或其它音频输出)的MIDI文件。数字音乐播放器(例如,由苹果计算机公司出售的“iPod”装置和由微软公司出售的“Zune”装置)还可支持MIDI文件格式。支持MIDI格式的其它装置可包括各种音乐合成器、无线移动装置、直接双向通信装置(有时称为“对讲机”)、网络电话、个人计算机、桌上型和膝上型计算机、工作站、卫星无线电装置、对讲电话装置、无线电广播装置、手持式游戏装置、安装于装置中的电路板、信息亭、视频游戏控制台、各种儿童计算机化玩具,用于汽车、水运工具和飞机中的机载计算机和广泛多种其它装置。
MIDI文件可包括关于待在MIDI播放器上播放的音乐音符的信息。然而,MIDI播放器还可使用播放器专有参数来播放MIDI文件。因此,同一MIDI文件当在两个不同MIDI播放器中播放时听起来可能并不等同。关于此的可能原因可为缺乏多区器具支持或可变根音支持。因此,存在对用于在音频播放器中提供多区器具支持的技术的需要。
发明内容
揭示一种用于在音频播放器中提供多区器具支持的方法。接收一组用户定义器具和一组乐器数字接口(MIDI)数据。标识所述组用户定义器具中的至少一个多区器具。使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具。将新的器具编号指派到每一单区器具。基于所述映射和指派来修改所述MIDI数据。
还揭示一种用于在音频播放器中提供多区器具支持的设备。所述设备包括处理器和与所述处理器电子通信的存储器。可执行指令存储于存储器中。所述指令可执行以接收一组用户定义器具和一组乐器数字接口(MIDI)数据。所述指令还可可执行以标识所述组用户定义器具中的至少一个多区器具。所述指令可执行以使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具。所述指令可进一步可执行以将新的器具编号指派到每一单区器具。所述指令进一步可执行以基于所述映射和指派来修改所述MIDI数据。
还揭示一种用于在音频播放器中提供多区器具支持的计算机程序产品。所述计算机程序产品包含在上面具有指令的计算机可读媒体。所述指令可包括用于接收一组用户定义器具和一组MIDI数据的代码。所述指令还可包括用于标识所述组用户定义器具中的至少一个多区器具的代码。所述指令还可包括用于使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具的代码。所述指令还可包括用于将新的器具编号指派到每一单区器具的代码。所述指令还可包括用于基于所述映射和指派来修改所述MIDI数据的代码。
还揭示一种用于在音频播放器中提供多区器具支持的设备。所述设备可包括用于接收一组用户定义器具和一组MIDI数据的装置。所述设备还可包括用于标识所述组用户定义器具中的至少一个多区器具的装置。所述设备还可包括用于使用与所述多区器具中的每一区相同的参数将所述区映射到一单区器具的装置。所述设备还可包括用于将新的器具编号指派到每一单区器具的装置。所述设备还可包括用于基于所述映射和指派来修改所述MIDI数据的装置。
还揭示一种用于在音频播放器中提供多区器具支持的集成电路。所述集成电路可经配置以接收一组用户定义器具和一组乐器数字接口(MIDI)数据。所述集成电路还可经配置以标识所述组用户定义器具中的至少一个多区器具。所述集成电路还可经配置以使用与所述多区器具中的每一区相同的参数将所述区映射到一单区器具。所述集成电路还可经配置以将新的器具编号指派到每一单区器具。所述集成电路还可经配置以基于所述映射和指派来修改所述MIDI数据。
附图说明
图1为说明可使用本系统和方法进行修改的系统的框图;
图2为说明可根据本系统和方法进行修改且仍维持类似输出的系统的框图;
图3为说明用于在音频播放器中提供多区器具支持和可变根音支持的系统的框图;
图3A为说明可由处理器实施的图3的系统中的转换模块的框图;
图3B为说明可由处理器实施的图3的系统中的转换模块、未知播放器和已知播放器的框图;
图4为说明用于在音频播放器中提供多区器具支持和可变根音支持的系统的另一配置的框图;
图5为说明用于在音频播放器中提供多区器具支持的系统的框图;
图6为说明用于在音频播放器中提供多区器具支持的系统的另一配置的框图;
图7为说明用于在音频播放器中提供多区器具支持的方法的流程图;
图7A说明对应于图7的方法的装置加功能方框;
图8为说明用于在音频播放器中提供可变根音支持的系统的框图;
图9为说明用于在音频播放器中提供可变根音支持的系统的另一配置的框图;
图10为说明用于在音频播放器中提供可变根音支持的方法的流程图;
图10A说明对应于图10的方法的装置加功能方框;
图11为说明用于将多区器具支持和可变根音支持提供到音频播放器的系统的框图;
图12为说明用于将多区器具支持和可变根音支持提供到音频播放器的方法的流程图;
图12A说明对应于图12的方法的装置加功能方框;以及
图13为说明可在计算装置/电子装置中利用的各种组件的框图。
具体实施方式
揭示一种用于在音频播放器中提供多区器具支持的方法。接收一组用户定义器具和一组乐器数字接口(MIDI)数据。标识所述组用户定义器具中的至少一个多区器具。使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具。将新的器具编号指派到每一单区器具。基于所述映射和指派来修改所述MIDI数据。
还揭示一种用于在音频播放器中提供多区器具支持的设备。所述设备包括处理器和与所述处理器电子通信的存储器。可执行指令存储于存储器中。所述指令可执行以接收一组用户定义器具和一组乐器数字接口(MIDI)数据。所述指令还可可执行以标识所述组用户定义器具中的至少一个多区器具。所述指令可执行以使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具。所述指令可进一步可执行以将新的器具编号指派到每一单区器具。所述指令进一步可执行以基于所述映射和指派来修改所述MIDI数据。
还揭示一种用于在音频播放器中提供多区器具支持的计算机程序产品。所述计算机程序产品包含在上面具有指令的计算机可读媒体。所述指令可包括用于接收一组用户定义器具和一组MIDI数据的代码。所述指令还可包括用于标识所述组用户定义器具中的至少一个多区器具的代码。所述指令还可包括用于使用与所述多区器具中的每一区相同的参数将所述区映射到单区器具的代码。所述指令还可包括用于将新的器具编号指派到每一单区器具的代码。所述指令还可包括用于基于所述映射和指派来修改所述MIDI数据的代码。
还揭示一种用于在音频播放器中提供多区器具支持的设备。所述设备可包括用于接收一组用户定义器具和一组MIDI数据的装置。所述设备还可包括用于标识所述组用户定义器具中的至少一个多区器具的装置。所述设备还可包括用于使用与所述多区器具中的每一区相同的参数将所述区映射到一单区器具的装置。所述设备还可包括用于将新的器具编号指派到每一单区器具的装置。所述设备还可包括用于基于所述映射和指派来修改所述MIDI数据的装置。
还揭示一种用于在音频播放器中提供多区器具支持的集成电路。所述集成电路可经配置以接收一组用户定义器具和一组乐器数字接口(MIDI)数据。所述集成电路还可经配置以标识所述组用户定义器具中的至少一个多区器具。所述集成电路还可经配置以使用与所述多区器具中的每一区相同的参数将所述区映射到一单区器具。所述集成电路还可经配置以将新的器具编号指派到每一单区器具。所述集成电路还可经配置以基于所述映射和指派来修改所述MIDI数据。
乐器数字接口(MIDI)播放器可采用MIDI文件作为输入且将音乐合成以作为输出。在如此进行时,MIDI播放器可采用不同合成技术。这些合成技术中的两者包括调频(FM)合成和波表合成。MIDI文件可包括描述用于待播放的音符的键编号、在播放所述音符时使用的器具、音符力度(note velocity)等的消息。与一些非MIDI音乐解码器不同,MIDI合成器可能不解码描述既定声音的波形。而是,每一MIDI合成器可使用合成器专有工具来基于MIDI文件中的消息产生输出信号。因此,同一MIDI文件在经由两个不同MIDI播放器播放时听起来可能并不相同。如本文所使用,术语“键编号”与“音符编号”可互换地使用,且用于表示标识MIDI音符的音高的数据。
为减轻这些不一致问题中的一些问题,MIDI制造商协会(MMA)引入可下载声音(DLS)的概念。DLS规定MIDI器具应如何发声且包括合成所述器具所需的所有参数。
根据DLS标准,每一器具可分成若干区。一区可表示所述器具上的一组音符。一器具可具有涵盖0到127的整个MIDI音符范围的仅一个区,或其可具有各自涵盖整个范围的一子组的多个区。举例来说,钢琴器具在DLS文件中可定义为具有涵盖音符0到30的第一区、涵盖音符31到120的第二区和涵盖音符121到127的第三区。DLS文件可针对每一区定义一根音和一波形。根音可为与未经修改波形相关联的音符。换句话说,如果选择播放根音,则播放器可输出与所述区相关联的波形而无任何音高修改。然而,如果选择播放非根音,则可改变波形的音高以实现所要输出。甚至关于根音,还可存在对波形的调制或其它非音高修改。举例来说,波形可经再取样以说明不同取样频率。
图1为说明可使用本系统和方法修改的系统100的框图。如本文所使用,术语“音乐文件”指代包括符合MIDI格式的至少一个音轨和用户定义器具数据的任何音频数据或文件。可符合MIDI格式且可在音乐文件110中的文件格式包括由高通公司开发的压缩媒体扩展(CMX)、由雅马哈公司开发的合成音乐移动应用格式(SMAF)和可缩放的多音MIDI(SP-MIDI)。音乐文件110中的用户定义器具数据可为包括器具信息的DLS文件。举例来说,音乐文件110可为包括DLS和MIDI文件的可扩展音乐格式(XMF)文件。
由于MIDI为基于消息的协议,所以每一音频播放器104、108可使用唯一文件格式支持来播放音乐文件110。此文件格式支持可包括用于基于音乐文件110中的MIDI消息产生一输出的一个或一个以上文件,且可驻留于单独创作工具102、106中。换句话说,第一创作工具102可包括第一合成器105可用以播放音乐文件110的文件格式支持。同样,第二创作工具106可包括第二合成器109可用以播放音乐文件110的文件格式支持。另外,第一创作工具102可将音乐文件110转换成第一播放器专有格式103,且第二创作工具106可将音乐文件110转换成第二播放器专有格式107。由于第一创作工具102可与第二创作工具106不同,所以第一播放器输出112可与第二播放器输出114不同。特定来说,第一播放器输出112与第二播放器输出114之间的差异可归于以下原因:(1)MIDI协议仅规定待播放的音符、在播放音符时使用的器具、对所述音符的调制等,然而,MIDI未严格规定所述音符在播放时应如何发声;(2)不同播放器可使用不同合成技术;以及(3)甚至对于同一合成技术,不同音频播放器可不同地模型化同一器具。举例来说,MIDI合成钢琴在高端音频播放器中可听起来像真实的原声大钢琴(acousticgrand piano),但在低质量音频播放器中可听起来像小号。
另外,即使当同一音乐文件110在不同播放器104、108上播放时,仍可观测到若干差异。首先,在播放器104、108中混合的器具音量可为不同的。举例来说,如果音乐文件110包括由钢琴和长笛演奏的MIDI音符,则在第一播放器104中钢琴音符可以比长笛音符高的音量播放,而在第二播放器108中长笛音符可以比钢琴高的音量播放。另外,器具上的颤音和震音效应可视器具在不同播放器104、108中模型化的方式而不同。又另外,一些播放器104、108可忽略比所定义范围高或低的音符。
不管这些差异,下文描述的本系统和方法可实施于系统100中以在不同音频播放器104、108中产生类似输出。换句话说,当实施本系统和方法时,第一播放器输出112可类似于第二播放器输出114。
图2为说明可根据本系统和方法修改且仍维持类似输出的系统200的框图。进入系统200中的音乐文件可为包括DLS文件和MIDI文件的XMF文件210。XMF文件210可即使当在不同兼容DLS的播放器208上播放时仍产生类似输出214,因为DLS器具参数可映射到播放器专有的器具参数。
然而,如在XMF文件210中使用的DLS标准可仅在支持波表合成的大多数合成器中的有限容量中受到支持。当经由非兼容DLS的播放器播放时,输出可能由于以下原因而听起来不类似。第一,DLS允许用户定义关于一器具的任何音符作为用于所述区的根音。非DLS播放器可能不允许此,而是固定根音。由于根音可用于标识参考波形,所以在非DLS播放器中使用固定根音而非在输入DLS文件中规定的一者可致使输出听起来与既定不同。第二,非DLS播放器可能不支持单一器具内的多个区。当播放使用多区器具的音符时,非DLS播放器可简单地忽略所述音符或指派不正确的区,从而基于播放器设计而导致不一致。第三,在非DLS播放器中可存在有限、不一致范围的支持。
本文描述的系统和方法可在不同播放器中提供类似输出,即使当所述播放器中的一者并非兼容DLS的播放器208时也如此。此可使用更改XMF文件210的转换模块进行。举例来说,所述系统和方法可在高通的CMX(压缩媒体扩展)播放器和雅马哈的SMAF(合成音乐移动应用格式)播放器上产生类似输出。在此实例中给定XMF文件210,转换模块可将多区器具映射到单区器具和/或修改XMF文件210中的一个或一个以上音符以创建新的音乐文件,例如SMAF文件。在对XMF文件210的这些修改之后,新的音乐文件可在经由非DLS播放器(例如,SMAF播放器)播放时产生与播放XMF文件210的CMX播放器的输出类似的输出。
图3为说明用于在音频播放器中提供多区器具支持和可变根音支持的系统300的框图。系统300可包括转换模块316、未知音频播放器304和已知音频播放器308。如本文所使用,术语“未知播放器”指代一个或一个以上合成参数和/或逻辑不为转换模块316所知的音频播放器、合成器或两者。举例来说,未知播放器304可以转换模块316未知的方式解译多区器具和用户定义根音。结果,未知播放器输出312可为不可预测的且与已知播放器输出314不类似。相比而言,术语“已知播放器”可指代合成参数和逻辑为转换模块316已知的音频播放器、合成器或两者。举例来说,已知播放器308可支持多区器具和可变根音。因此,已知输出314可比未知输出312更可预测,因为未知播放器304可使用未知内部逻辑来处理多区器具和可变根音。换句话说,转换模块316可使未知输出312类似于已知输出314(当其可能尚未以其它方式类似时)。
转换模块316可接收音乐文件310或音乐文件310的一部分且调整音乐文件310,使得未知输出312类似于已知输出314。举例来说,转换模块316可将音乐文件310中的多区器具映射到可在未知播放器304中正确地播放的单区器具中。替代地或除此之外,转换模块316可基于音乐文件310中的可变根音与未知播放器304中的固定根音中的差异来调整音乐文件310中的音符键编号。这些修改可使未知输出312类似于已知输出314。
转换模块316可接收MIDI音符,调整MIDI音符键编号和/或器具编号,且基于逐个音符将所述音符发送到未知播放器304。或者,转换模块316可整体地接收音乐文件310,调整音乐文件310中的所有音符,且接着产生反映MIDI音符的改变的新的音乐文件(未图示)。产生新的音乐文件(未图示)可包括在音乐文件310中重写经调整的参数。举例来说,转换模块316可接收音乐文件310,调整音乐文件310中的键编号和器具编号,且创建可由未知播放器304使用的新的音乐文件以产生未知播放器输出312。新的音乐文件可包括用户定义器具,例如DSL文件。新的音乐文件的MIDI部分可为SMAF文件或不同类型的MIDI文件,例如标准MIDI文件(SMF)、CMX或SP-MIDI。举例来说,新的音乐文件可包括包括图形和脉冲码调制(PCM)支持的SMAF文件,其可能不包括在音乐文件310的MIDI部分中。
转换模块316可包括区翻译器318、区转换器320和音符翻译器322。这三个模块可组合以实施本系统和方法且可一起或独立地操作。换句话说,可能并不需要所有三者用于转换模块316操作。区转换器320可使用与单区器具从其映射的区相同的参数将音乐文件310中的多区器具映射到单区器具中。区翻译器318可使用这些单区器具来调整音乐文件310中的MIDI音符,使得不支持多区器具的未知播放器304可仍使用多区器具正确地播放音乐文件310。另外,音符翻译器322可使得具有固定根音的未知播放器304能够使用可变根音正确地播放音乐文件310。
如图3A中展示,可由处理器301实施转换模块316。如图3B中展示,转换模块316、未知播放器304和已知播放器308可由处理器301实施。不同处理器可用于实施不同组件(例如,一个处理器可实施转换模块316,另一处理器可用于实施未知播放器304,且又一处理器可用于实施已知播放器308)。
图4为说明用于在音频播放器中提供多区器具支持和可变根音支持的系统400的另一配置的框图。系统400可包括未知播放器404和已知播放器408。举例来说,未知播放器404可为仅支持单区器具和用于每一器具的固定根音的播放器。已知播放器408可支持多区器具和可变根音。因此,在无转换模块416的情况下,未知输出412可能不类似于已知输出414。
未知播放器404可包括文件解析器402。文件解析器402可对应于音乐文件410。举例来说,如果音乐文件410为XMF文件,则文件解析器402可为XMF解析器。文件解析器402可将音乐文件410转换成播放器专有数据。举例来说,如果未知播放器404为SMAF播放器,则文件解析器402可尤其将音乐文件410转换成SMAF格式。而且,文件解析器402可向转换模块416通知合成器405中的相关参数。举例来说,解析器402可告知转换模块416合成器405仅支持固定根音或合成器405不支持多区器具。
转换模块416可尤其使用数据中来自文件解析器402的信息来修改音乐文件410,以便从未知播放器404和已知播放器408创建类似输出。此可包括修改音乐文件410,使得未知播放器404使用多区器具正确地播放音符。为此,区转换器420可将音乐文件410中的所有多区器具映射到单区器具中。区翻译器418可接着调整音乐文件410中的MIDI数据,使得播放单区器具而非未经支持的多区器具。此可包括将一个或一个以上程序改变命令插入于音乐文件410中。借此,使用多区器具的音符可在可能原本不支持多区器具的未知播放器404上正确地播放。
另外,转换模块416可在可能原本不支持可变根音的未知播放器404中提供可变根音支持。此可包括修改音乐文件410,使得未知播放器404使用用户定义的根音正确地播放音符。为此,音符翻译器可确定由合成器405支持的固定根音与每一MIDI音符中使用的器具区中的根音之间的差异。音符翻译器422可接着通过相同差异调整音乐文件410中的每一MIDI音符,使得未知播放器404使用可变根音正确地播放音乐文件410。合成器405可采用MIDI音符作为输入且产生输出波形。
尽管转换模块416可将多区支持和/或可变根音支持两者提供到未知播放器404,但应注意,可实施转换模块416的仅一部分。换句话说,如果未知播放器404支持可变根音但不支持多区器具,则转换模块416可能不包括音符翻译器422。同样,如果未知播放器404支持多区器具但不支持可变根音,则转换模块416可能不包括区翻译器418和区转换器420。
图5为说明用于在音频播放器中提供多区器具支持的系统500的框图。如前所述,可能存在接收包括MIDI数据524和用户定义器具数据526的音乐文件510的未知播放器504和已知播放器508。未知播放器504可能不支持多区器具542。MIDI数据524可包括一个或一个以上MIDI音符528,每一者尤其包括数据中的器具编号530和键编号532。器具编号530可向合成器指示在播放MIDI音符528时应使用哪个器具定义534,且键编号532可指示MIDI音符528的音高。如本文所使用,术语“器具定义”指代由音频播放器使用以产生输出的任何电子文件或数据组。在本文中,术语“器具定义”与“器具”可互换使用。
音乐文件510还可包括用户定义器具数据526,用户定义器具数据526可为包括用于MIDI数据524中的每一器具的器具定义534的DLS文件。DLS格式允许每一器具定义534具有多个区536。每一区536还可包括帮助合成器505以可预测方式播放音乐文件510的其它参数537。这些参数537可包括根音、波形、音量水平、音量包络参数(起音率、衰减率、释音率)、音高包络参数(起音率、衰减率、释音率)、时变滤波器参数等。根音可为与未经修改波形相关联的音符。换句话说,如果选择播放根音,则播放器可输出与所述区相关联的波形而无任何音高修改。每一器具定义534还可包括器具编号530,使得合成器505可基于MIDI数据524中的器具编号530使用正确参数。
公司专有或播放器专有的一些文件格式可能不支持具有一个以上区536的器具定义534。用于单区播放器的创作工具可发出提到其无法处理这些器具定义534的错误。或者,创作工具可使用第一区536用于器具定义534内的整个键范围。在任一情况下,未知输出512可能听起来并非如预期。
为经由单区播放器支持DLS文件,音乐文件510中的任何多区器具534可能需要表示为单区器具或多个单区器具。此可能需要将多区器具的器具定义534映射到单区器具中,且还可能需要基于所述映射对MIDI数据524的改变。特定来说,可改变MIDI数据524中的器具编号530。在下文描述此技术。
首先,文件解析器502可接收音乐文件510,且将其划分成两个部分,MIDI数据524和用户定义器具数据526。用户定义器具解析器540可接着标识用户定义器具数据526中具有多个区的所有器具534,且存储多区器具的列表。MIDI播放器538可进一步解析MIDI数据524。同样,用户定义器具解析器540可解析用户定义器具数据526且创建具有波形定义的器具542。举例来说,如果音乐文件510为XMF文件,则文件解析器502可为XMF解析器且可将音乐文件510转换成播放器专有数据。如果未知播放器504为SMAF播放器,则文件解析器502可将MIDI数据524转换成SMAF格式。替代地或除此之外,音乐文件510可由转换模块516转换成播放器专有格式。而且,文件解析器502可向转换模块516通知合成器505中的相关参数,例如合成器505是否支持多区器具542。
其次,转换模块516中的区转换器520可将多区器具定义542映射到单区器具定义548中。此可包括创建具有与在原始器具定义534中单区器具定义从其映射的区相同的参数537的新单区器具定义548。换句话说,区转换器520可创建与在多区器具定义534中存在的全部区同样多的新单区器具定义548。举例来说,如果在用户定义器具数据526中存在五个器具定义534,每一者具有两个区536,则区转换器520可产生十个单区器具定义548。这些新单区器具定义548可存储于存储器或任何其它合适的存储媒体546中。多区器具定义534中的区536中的相同参数537可维持于单区器具定义548中。
第三,区转换器520可指派尚未在用户定义器具数据526中采用的器具编号545。此可包括再使用来自用户定义器具数据526的一个或一个以上编号。区转换器520可利用表544或某一其它数据结构来进行此映射。举例来说,表544可如所示将多区器具编号530映射到单区器具编号545:区1,器具1映射到新器具1;区2,器具1映射到新器具2;区1,器具2映射到器具3;区2,器具2映射到器具4;区1,器具3映射到器具5。注意,一个或一个以上多区器具编号530可再用作单区器具编号545,例如,多区器具1中的区1可映射到单区器具1中。由于MIDI仅支持器具编号0到127,所以此映射可使用所有所支持器具编号530。如果在库中不存在可用器具编号530,则可创建新的器具库且可遵循同一程序。在系统500中,映射和器具编号530指派可仅发生一次。
第四,MIDI数据524可由区翻译器518调整。此可包括搜索使用已经指派新的器具编号545的器具的MIDI音符528。如果音符528为音符开(ON)或音符关(OFF)消息,则可在将音符528发送到合成器505之前插入程序改变命令519。举例来说,如果区翻译器518发现用于先前已映射到两个单区器具0×10和0×20中的器具0×10中的第二区的音符开(ON)消息,则区翻译器518可在发送音符528之前将程序改变命令519发送到0×20。然而,针对连续音符开(ON)消息528将另一程序改变命令519发送到同一区536可能不必要。同样,针对连续音符开(ON)消息528将另一程序改变命令519发送到同一区536可能不必要。此外,如果由音符528使用的经映射的单区器具定义548处于不同器具库中,则可在任何音符开(ON)或音符关(OFF)消息528之前发送库改变命令519。对于如通道音量的任何通道专有消息,同一消息528可重复多次以反映原始器具534正在上面播放的所有通道上的消息528。
最后,单区器具定义548和MIDI数据524可组合成经调整的音乐文件550。经调整的音乐文件550可处于可由合成器505直接使用以产生未知输出512的合成器专有格式。同样,音乐文件510可在其由已知播放器508播放之前经转换以产生已知输出514。在一个配置中,转换模块516且非文件解析器502可将MIDI数据524转换成播放器专有MIDI数据且将用户定义器具数据526转换成播放器专有用户定义器具数据,且将其组合成经调整的音乐文件550。播放器专有MIDI数据可包括改变命令,且播放器专有用户定义器具数据可包括单区器具定义548。
应注意,系统500可基于逐个音符或基于逐个文件而操作。在基于逐个音符中,可映射且保存单区器具定义548,接着可在已搜索所有MIDI音符528之前将每一MIDI音符528与任何可应用改变命令519一起发送到合成器505。替代地或除此之外,可在将MIDI音符528发送到合成器505之前搜索所有MIDI音符528且将可应用的程序改变命令519插入到MIDI数据524中。
图6为说明用于在音频播放器中提供多区器具支持的系统600的另一配置的框图。如前,包括MIDI数据624和用户定义器具数据626两者的音乐文件610使用转换模块616而经调整。MIDI数据624可包括MIDI音符628,每一者尤其包括用于音符628的器具编号630和用于音符628的键编号632。用户定义器具数据626可包括可包括一个或一个以上区636的器具定义634和与器具定义634相关联的器具编号630。每一区636可包括例如根音和波形的其它参数637。
转换模块616中的区转换器620可将音乐文件610中的多区器具634映射到单区器具定义648中。区转换器620可使用表644或其它数据结构来将新的器具编号645指派到每一单区器具648。另外,每一单区器具中的区636可包括与音乐文件610中所包括的参数相同的参数637。
区翻译器618可包括改变命令619,例如程序改变命令和库改变命令,其可在使用新映射的器具648的音符628之前被插入。举例来说,如果区翻译器618发现用于先前已映射到两个单区器具0×10和0×20中的器具0×10中的第二区的音符开(ON)消息,则区翻译器618可在发送音符628之前将程序改变命令619发送到0×20。
转换模块616可将MIDI数据624转换成播放器专有MIDI数据625且将用户定义器具数据626转换成播放器专有用户定义器具数据627,且将其组合成经调整的音乐文件650。播放器专有MIDI数据625可包括在适当处插入的改变命令619,且播放器专有用户定义器具数据627可包括具有新的器具编号645的单区器具定义648。经调整的音乐文件650还可存储于存储器646或另一合适存储媒体中。
可接着将经调整的音乐文件650发送到可能原本不支持多区器具634的未知播放器604。然而,在有转换模块616的情况下,未知输出612可类似于来自已知播放器608的已知输出614。应注意,此处说明基于逐个文件,其中在未知播放器604播放经调整的文件650之前,整个经调整的音乐文件650经组合并保存。然而,系统600还可基于逐个音符而操作。换句话说,并非在将经调整的音乐文件650发送到未知播放器604之前将所有可应用的改变命令619插入于MIDI数据624中,转换模块616可随着其接收音符628且插入用于音符628的可应用改变命令619而将音符628发送到未知播放器604。
图7为说明用于在音频播放器中提供多区器具支持的方法700的流程图。举例来说,所述方法可经实施以允许未知播放器604使用多区器具634播放音乐文件610,其中未知播放器604可能原本不支持多区器具634。所述方法700可由转换模块616执行。转换模块616可标识752一组用户定义器具634中的至少一个多区器具634。模块616可接着使用与每一多区器具634中的每一区636相同的参数637将所述区636映射754到单区器具648。
模块616可接着将新的器具编号645指派756到每一单区器具648。新的器具编号645可再使用多区器具634的一个或一个以上器具编号630,例如,多区器具1中的区1可映射到单区器具1中。如果在库中不存在可用器具编号630,则可创建新的器具库且可遵循同一程序。
接下来,可基于映射754和指派756而修改758MIDI数据624。换句话说,MIDI数据624可经修改以允许播放器604或合成器605使正确的单区器具定义648与所接收音符628相关联。此修改758可包括在一个或一个以上音符628之前插入改变命令619。举例来说,如果转换模块616发现用于先前已映射到两个单区器具0×10和0×20中的器具0×10中的第二区636的音符开(ON)消息,则转换模块616可在发送音符628之前将程序改变命令619发送到0×20。最后,可将经映射的单区器具648和经修改的MIDI数据624组合760成播放器专有的经调整的音乐文件650。此可包括在将MIDI数据624和用户定义器具数据626组合成经调整的音乐文件650之前将MIDI数据624转换成播放器专有MIDI数据625且将用户定义器具数据626转换成播放器专有用户定义器具数据627。
可由对应于图7A中所说明的装置加功能方框700A的各种硬件和/或软件组件和/或模块来执行上文所描述的图7的方法700。换句话说,图7中所说明的方框752到760对应于图7A中所说明的装置加功能方框752A到760A。
图8为说明用于在音频播放器中提供可变根音支持的系统800的框图。此可包括在原本不支持可变根音862的未知播放器804内部调整MIDI数据824的转换模块816。一些文件格式(例如,DLS)可允许用户定义器具区836中的任何音符828以作为用于所述区836的根音862。根音862可为与未经修改波形864相关联的音符。换句话说,如果选择播放根音862,则未知播放器804可输出与所述区836相关联的波形864而无任何音高修改。然而,如果选择播放非根音,则可改变波形864的音高以实现所要输出。甚至对于根音862,还可存在对波形864的修改或其它非音高修改。举例来说,如下文描述,波形864可经再取样以虑及不同取样频率。
音乐文件810可包括MIDI数据824,MIDI数据824包括MIDI音符828,每一者具有器具编号830和键编号832。器具编号830可使合成器805与用于表示器具的一组参数相关联。键编号832可为指示音符828的音高的编号,例如,中间C可由为“60”的键编号832表示,且在本文中可由“N”表示。
音乐文件810还可包括用户定义器具数据826,用户定义器具数据826可包括器具定义834,每一者具有一个或一个以上区836。用户定义根音(RN)862可为与未经修改波形864相关联的音符。每一波形864可具有对波形864取样的取样频率(Fw)866。
如果MIDI播放器838的输出取样频率(Fs)868与待播放的音符828的波形864取样频率(Fw)866不同,则MIDI播放器838可再取样所述波形864。再取样率可为Fw/Fs。当在特定区836中播放非根音时,MIDI播放器838可再取样所述波形864。因此,用于支持用户定义根音862的MIDI播放器838的再取样率可给定为:
2^((N-RN)/12)*Fw/Fs    (1)
一般来说,正播放的MIDI音符828可集中在根音862周围,使得MIDI播放器838可最小化由再取样引起的失真。再取样可在合成器805中发生。
然而,使用波表合成支持用户定义器具834的一些音频播放器804可能不支持用户定义根音862。而是,播放器804可使用固定根音(RP)872。固定根音(RP)872可能未在器具定义834中描述且可能未保存在任何地方,而是可在播放器804内部,例如,RP 872可为合成器805的所有物。对于播放MIDI音符828而非固定根音872的未知播放器804,可根据以下等式对波形864再取样:
2^((N-RP)/12)*Fw/Fs            (2)
为在未知播放器804中支持用户定义器具834,器具834可映射到播放器专有格式。由于未知播放器804可使用固定根音872而非用户定义根音862,所以键编号(N)832可经调整以使得有效再取样率保持相同。
文件解析器802可对应于音乐文件810。举例来说,如果音乐文件810为XMF文件,则文件解析器802可为XMF解析器。文件解析器802可将音乐文件810转换成播放器专有数据。特定来说,MIDI播放器838可将MIDI数据824转换成播放器专有MIDI数据825。同样,用户定义器具解析器840还可将用户定义器具数据826转换成播放器专有用户定义器具数据827,其可稍后与播放器专有MIDI数据825组合。
而且,文件解析器802可向转换模块816通知合成器805中的相关参数。举例来说,解析器802可包括关于用于每一MIDI器具834的固定根音872的信息。同样,MIDI播放器838可包括关于输出取样频率(Fs)868的信息。
用户定义器具解析器840可从器具定义834中提取用户定义根音862的阵列且将其存储在存储器或另一合适存储媒体846中。根音862的所述阵列可由转换模块816使用以调整MIDI数据824中的键编号(N)832。或者,根音862可作为任何类型的数据结构而存储。
音符翻译器822中的键编号产生器874可接着产生用于每一MIDI音符828的新的键编号(N′)870,使得甚至在再取样之后仍将播放正确的音高。以实例的方式,假设待在器具区上使用用户定义根音(RN)862播放音符(N)828。此外,假设播放器专有文件格式采用固定根音(RP)872。在无转换模块816的情况下,MIDI播放器838可试图采用再取样率2^(N-RN)/12*Fw/Fs。然而,由于未知播放器804仅支持固定根音872,所以MIDI播放器838可替代地采用再取样率2^(N-RP)/12*Fw/Fs。此可导致音高差异且因此未知输出812可能听起来与已知输出814不同。
为减轻此,在写入播放器专有文件格式的同时,音符翻译器822可偏移MIDI音符828中的键编号(N)832,使得所使用的再取样率与之前相同。音符翻译器822可使用新的键编号(N′)870取代音乐文件810中的键编号(N)832,其中N′=N+RP-RN。使用此新的键编号(N′)870,由音符翻译器822采用的再取样率可为:
2^((N′-RP)/12)*Fw/Fs    (3)
其可等效于:
2^((N+RP-RN-RP)/12)*Fw/Fs    (4)
其可等效于:
2^((N-RN)/12)*Fw/Fs      (5)
其为所需再取样率。因此,通过以在音符翻译器822中计算的新的键编号(N′)870替换MIDI音符828中的键编号(N)832,可如等式(5)中所示自动地调整再取样率。
可接着将播放器专有MIDI数据825和播放器专有用户定义器具数据827组合成经调整的音乐文件850。可接着将经调整的音乐文件850发送到可能原本不支持用户定义根音862的未知播放器804。然而,在有转换模块816的情况下,未知输出812可类似于来自已知播放器808的已知输出814。
应注意,系统800可基于逐个音符或基于逐个文件而操作。在基于逐个音符中,可在音符翻译器822接收每一音符828时确定新的键编号(N′)870,接着可在已调整所有MIDI音符828之前将每一MIDI音符828与新的键编号(N′)870一起发送到合成器805。替代地或除此之外,可在将任何MIDI音符828发送到合成器805之前使用新的键编号(N′)870来调整所有MIDI音符828。
图9为说明用于在音频播放器中提供可变根音支持的系统900的另一配置的框图。如前,可使用转换模块916来调整包括MIDI数据924和用户定义器具数据926两者的音乐文件910。MIDI数据924可包括MIDI音符928,每一者尤其包括用于音符928的器具编号930和用于音符928的键编号(N)932。用户定义器具数据926可包括器具定义934,器具定义934可包括一个或一个以上区936。每一区936可包括例如根音(RN)962和具有取样频率(Fw)966的波形964等其它参数。
转换模块916中的音符翻译器922可使用对N 932、RP 972求和且-(减去)RN 962的键编号产生器974而产生新的键编号(N′)970,其中RP 972为由每一音符928使用的器具934的固定根音972。用户定义根音(RN)962的阵列可存储于存储器或其它合适存储媒体946中。另外,转换模块916可与未知播放器904通信以确定固定根音(RP)972。
转换模块916可将MIDI数据924转换成播放器专有MIDI数据925且将用户定义器具数据926转换成播放器专有用户定义器具数据927,且将其组合成经调整的音乐文件950。播放器专有MIDI数据925可包括新的键编号(N′)970来取代键编号(N)932。经调整的音乐文件950还可存储于存储器或另一合适存储媒体946中。
可接着将经调整的音乐文件950发送到可能原本不支持用户定义根音962的未知播放器904。然而,在有转换模块916的情况下,未知输出912可类似于来自已知播放器908的已知输出914。应注意,此处说明基于逐个文件,其中在未知播放器904播放经调整的文件950之前,整个经调整的音乐文件950经组合并保存。然而,系统900还可基于逐个音符而操作。换句话说,并非在将经调整的音乐文件950发送到未知播放器904之前使用新的键编号(N′)970来取代MIDI数据924中的所有键编号(N)932,转换模块916可在其接收音符924且使用新的键编号(N′)970取代键编号(N)932时将音符924发送到未知播放器904。
图10为说明用于在音频播放器中提供可变根音支持的方法1000的流程图。举例来说,方法1000可经实施以允许未知播放器904使用用户定义根音962播放音乐文件910,其中未知播放器904可能原本不支持用户定义根音962。所述方法1000可由转换模块916执行。转换模块916可接收1076具有MIDI数据924和用户定义器具934的音乐文件910。可接着将器具定义934转换1078成播放器专有定义927。转换模块916可以一数据结构(例如,阵列)存储1080每一器具934的用户定义根音962。可使用每一音符的N 932、RP 972和RN 962确定1081新的键编号(N′)970,例如,N′=N+RP-RN。转换模块916可接着基于新的键编号(N′)970来调整1082MIDI数据924中的一个或一个以上音符928。换句话说,键编号(N)932可被新的键编号(N′)970取代。可接着将MIDI数据924转换1084成播放器专有MIDI数据925。最后,可将播放器专有MIDI数据925和播放器专有器具定义927组合1086成经调整的音乐文件950。
可通过对应于图10A中所说明的装置加功能方框1000A的各种硬件和/或软件组件和/或模块来执行上文所描述的图10的方法1000。换句话说,图10中所说明的方框1076到1086对应于图10A中所说明的装置加功能方框1076A到1086A。
图11为说明用于将多区器具支持和可变根音支持提供到音频播放器的系统1100的框图。如前,可使用转换模块1116来调整包括MIDI数据1124和用户定义器具数据1126两者的音乐文件1110。MIDI数据1124可包括MIDI音符1128,每一者包括用于音符1128的器具编号1130和用于音符1128的键编号(N)1132。用户定义器具数据1126可包括可包括一个或一个以上区1136的器具定义1134和与器具定义1134相关联的器具编号1130。每一区1136可包括例如根音(RN)1162和具有取样频率(Fw)1166的波形1164等其它参数。
首先,转换模块1116可将音乐文件1110中的多区器具1134映射到单区器具定义1148中。区转换器1120可使用表1144或其它数据结构来将新的器具编号1145指派到每一单区器具1148。另外,每一单区器具1148中的区1136可包括与音乐文件1110中所包括的根音和波形相同的根音1162和波形1164。
区翻译器1118可包括改变命令1119,例如程序改变命令和库改变命令,其可在使用新映射的器具1148的任何音符1128之前被插入。具有经插入的改变命令1119的MIDI数据1124可与单区器具1148组合成经调整的音乐文件1150且存储于存储器或另一合适存储媒体1146中。
接下来,音符翻译器1122可使用对N1132、RP 1172求和且-(减去)RN 1162的键编号产生器1174产生新的键编号(N′)1170,其中RP 1172为由每一音符1128使用的器具的固定根音1172。换句话说,N′=N+RP-RN。表示所有区的用户定义根音(RN)1162的阵列可存储于存储器或其它合适存储媒体1146中。另外,转换模块1116可与未知播放器1104通信以确定固定根音(RP)1172。
转换模块1116可将MIDI数据1124转换成播放器专有MIDI数据1125且将用户定义器具数据1126转换成播放器专有用户定义器具数据1127,且将其组合成经调整的音乐文件1150。播放器专有MIDI数据1125可包括新的键编号(N′)1170来取代键编号(N)1132以及改变命令1119。播放器专有用户定义器具数据1127可包括具有新的器具编号1145的单区器具定义1148。经调整的音乐文件1150还可存储于存储器或另一合适存储媒体1146中。
可接着将经调整的音乐文件1150发送到可能原本不支持多区器具1134或用户定义根音1162的未知播放器1104。然而,在有转换模块1116的情况下,未知输出1112可类似于来自已知播放器1108的已知输出1114。应注意,此处说明基于逐个文件,其中在未知播放器1104播放经调整的文件1150之前,整个经调整的音乐文件1150经组合并保存于存储器1146中。然而,系统1100还可基于逐个音符而操作。换句话说,并非在将经调整的音乐文件1150发送到未知播放器1104之前调整MIDI数据1124和用户定义器具数据1126,转换模块1116可在其接收音符1128且对其进行调整时将音符1128发送到未知播放器1104。
图12为说明用于将多区器具支持和可变根音支持提供到音频播放器的方法1200的流程图。举例来说,方法1200可经实施以允许未知播放器1104使用多区器具1134和用户定义根音1162播放音乐文件1110,其中未知播放器1104可能原本不支持多区器具1134或用户定义根音1162。所述方法1200可由转换模块1116执行。方法1200的第一部分可针对于提供多区支持。因此,转换模块1116可标识1290包括MIDI数据1124和用户定义器具数据1126的音乐文件1110中的至少一个多区器具1134。模块1116可接着使用与多区器具1134中的每一区1136相同的参数将所述区1136映射1291到单区器具1148。这些参数可包括根音1162和具有取样频率1166的波形1164。
所述模块可接着将新的器具编号1145指派1292到每一单区器具1148。新的器具编号1145可能或可能不再使用多区器具1134的器具编号1130,例如,多区器具1中的区1可映射到单区器具1中。如果在库中不存在可用器具编号1130,则可创建新的器具库且可遵循同一程序。
接下来,可基于映射1291和指派1292而修改1293MIDI数据1124。换句话说,可修改1293MIDI数据1124以允许播放器1104或合成器使正确的单区器具定义1148与所接收音符1128相关联。此修改1293可包括在一个或一个以上音符1128之前插入改变命令1119。举例来说,如果转换模块1116发现用于先前已映射到两个单区器具0×10和0×20中的器具0×10中的第二区1136的音符开(ON)消息,则转换模块1116可在发送音符1128之前将程序改变命令1119发送到0×20。
在方法1200的剩余步骤中,可接着修改音乐文件1110以支持用户定义根音1162。首先,可接着将器具定义1134转换1294成播放器专有定义1127。转换模块1116可以一数据结构(例如,阵列)存储1295每一器具1134的用户定义根音1162。转换模块1116可以一数据结构(例如,阵列)存储1295每一器具1134的用户定义根音1162。可使用每一音符1128的N 1132、RP 1172和RN 1162确定1296新的键编号(N′)1170,例如,N′=N+RP-RN。转换模块1116可接着基于新的键编号(N′)1170调整1297MIDI数据1124中的一个或一个以上音符1128。换句话说,键编号(N)1132可被新的键编号(N′)1170取代。可接着将MIDI数据1124转换1298成播放器专有MIDI数据1125。最后,可将播放器专有MIDI数据1125和播放器专有器具定义1127组合1299成经调整的音乐文件1150。
可通过对应于图12A中所说明的装置加功能方框1200A的各种硬件和/或软件组件和/或模块来执行上文所描述的图12的方法1200。换句话说,图12中所说明的方框1290到1299对应于图12A中所说明的装置加功能方框1290A到1299A。
图13为说明可在计算装置/电子装置1302中利用的各种组件的框图。计算装置/电子装置1302可实施能够处理音乐文件310的任何装置,例如,力度翻译器、未知播放器304或已知播放器308。因此,尽管仅展示一个计算装置/电子装置1302,但本文的配置可实施于使用许多计算机系统的分布式系统中。计算装置/电子装置1302可包括广泛范围的数字计算机,包括微控制器、手持式计算机、个人计算机、服务器、大型计算机、超级计算机、微型计算机、工作站和其任何变化或相关装置。
计算装置/电子装置1302经展示为具有处理器1301和存储器1303。处理器1301可控制计算装置/电子装置1302的操作,且可实施为微处理器、微控制器、数字信号处理器(DSP)或此项技术中已知的其它装置。处理器1301通常基于存储于存储器1303内的程序指令1304来执行逻辑和算术运算。存储器1303中的指令1304可可执行以实施本文所描述的方法。
计算装置/电子装置1302还可包括用于与其它电子装置通信的一个或一个以上通信接口1307和/或网络接口1313。通信接口1307和网络接口1313可基于有线通信技术、无线通信技术或两者。
计算装置/电子装置1302还可包括一个或一个以上输入装置1309和一个或一个以上输出装置1311。输入装置1309和输出装置1311可促进用户输入。其它组件1315还可作为计算装置/电子装置1302的一部分而提供。
数据1306和指令1304可存储于存储器1303中。处理器1301可加载且执行来自存储器1303的指令1304以实施各种功能。执行所述指令1304可涉及使用存储于存储器1303中的数据1306。所述指令1304可执行以实施本文展示的过程或配置中的一者或一者以上,且数据1306可包括本文描述的各段数据中的一者或一者以上。
存储器1303可为能够存储电子信息的任何电子组件。存储器1303可实施为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储媒体、光学存储媒体、RAM中的快闪存储器装置、与处理器包括在一起的板上存储器、EPROM存储器、EEPROM存储器、ASIC(专用集成电路)、寄存器等等,包括其组合。
另外,存储器1303可存储包括用于普通MIDI器具的基础波形的波表1308。存储器1303还可存储数据表1310,其包括比较数据和转换成音频装置专有格式所需的映射表。举例来说,在波表1308可包括128个器具和47个鼓的情况下,数据表1310可包括128加47组比较数据和所需映射表以补偿音量改变等。
可在最初生产计算装置/电子装置1302时产生存储于数据表1310中的数据1306且加载于数据表1310中。或者,可借助于下载到现存计算装置/电子装置1302的软件更新而加载数据表1310。
替代地或除此之外,可能存在一个以上处理器1301,其可与加载和执行指令1304并行地操作。这些指令1304可包括解析音乐文件310和调度音乐文件310内的MIDI事件或消息。如由音乐文件310中的时序参数规定,经调度的MIDI事件可由处理器1301以同步方式服务。处理器1301可根据时间同步调度来处理MIDI事件以便产生MIDI合成参数。处理器1301还可基于合成参数产生音频样本。
计算装置/电子装置1302还可包括数/模转换器(DAC)1312。处理器1301可基于一组MIDI合成参数而产生音频样本。所述音频样本可包含脉冲码调制(PCM)样本,其可为以规则间隔取样的模拟信号的数字表示。处理器1301可将音频样本输出到DAC1312。DAC 1312可接着将数字音频信号转换成模拟信号且将模拟信号输出到驱动电路1314,其可放大所述信号以驱动一个或一个以上扬声器1316以产生可听声音。或者,计算装置/电子装置1302可能不具有扬声器1316、驱动电路1314或DAC 1312。
当计算装置/电子装置1302接收音乐文件310时,处理器1301可解析所述音乐文件310且检测是否存在任何可下载声音(DLS)。计算装置/电子装置1302可在分析音乐文件310内的任何可下载声音之前等待接收与音乐文件310相关联的所有帧。如果在音乐文件310内检测到没有可下载声音,则处理器1301可处理音乐文件310内的MIDI数据且可转换一些或所有MIDI命令,然而,处理器1301可为受限的。举例来说,处理器1301可能未正确地转换多区器具或用户定义根音。
然而,当检测到可下载声音时,处理器1301可通过将可下载声音(DLS)数据的参数与关于参数的装置限制和内部播放器细节进行比较而分析DLS数据。基于此分析,处理器1301可接着将待播放的器具中的一者或一者以上映射到装置专有参数中。处理器1301还可修改对应音乐文件310。具体来说,处理器1301可选择对应于来自波表1308的选定器具的波形样本。计算装置/电子装置1302可接着通过产生音频样本且将音频样本发送到DAC 1312而继续进行。DAC 1312的输出可去往驱动电路1314且最终到达扬声器1316以播放可听声音。以此方式,计算装置/电子装置1302可选择将最佳地近似可下载声音的声音的器具,使得MIDI事件/音符听起来尽可能接近创作者想要的声音。
在以上描述中,参考数字已有时结合各种术语而使用。在一术语结合一参考数字而使用的情况下,此意指在所述图中的一者或一者以上中展示的特定组件。在使用一术语而无参考数字的情况下,此大体上意指所述术语而不限于任何特定图式。
根据本发明,移动装置中的电路可适于接收与多个类型的经压缩音频位流有关的信号转换命令和随附数据。相同电路、不同电路,或相同或不同电路的第二区段可适于执行作为用于多个类型的经压缩音频位流的信号转换的一部分的变换。所述第二区段可有利地耦合到第一区段,或其可实施于与第一区段相同的电路中。另外,相同电路、不同电路,或相同或不同电路的第三区段可适于执行作为用于多个类型的经压缩音频位流的信号转换的一部分的互补处理。所述第三区段可有利地耦合到所述第一和第二区段,或其可实施于与所述第一和第二区段相同的电路中。另外,相同电路、不同电路,或相同或不同电路的第四区段可适于控制提供上文描述的功能性的电路或电路区段的配置。
术语“确定”涵盖广泛多种动作,且因此,“确定”可包括估算、计算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中进行查找)、查明等。而且,“确定”可包括接收(例如,接收信息)、存取(例如,存取存储器中的数据)等。而且,“确定”可包括解析、选择、挑选、建立等。
短语“基于”并不意味着“仅基于”,除非另外明确规定。换句话说,短语“基于”描述“仅基于”和“至少基于”两者。
术语“处理器”应被广泛地解释为涵盖通用处理器、中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、控制器、微控制器、状态机等等。在一些情形下,“处理器”可指专用集成电路(ASIC)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)等。术语“处理器”可指代处理装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、联合DSP核心的一个或一个以上微处理器,或任何其它此类配置。
术语“存储器”应被广泛地解释为涵盖能够存储电子信息的任何电子组件。术语“存储器”可指代各种类型的处理器可读媒体,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除PROM(EEPROM)、快闪存储器、磁性或光学数据存储装置、寄存器等。如果处理器可从存储器读取信息和/或将信息写入到存储器,则称所述存储器与所述处理器电子通信。与处理器成一体的存储器与所述处理器电子通信。
术语“指令”和“代码”应被广泛地解释为包括任何类型的计算机可读语句。举例来说,术语“指令”和“代码”可指代一个或一个以上程序、例程、子例程、函数、程序等。“指令”和“代码”可包含单一计算机可读语句或许多计算机可读语句。
可以硬件、软件、固件或其任何组合来实施本文所描述的功能。如果以软件来实施,则所述功能可作为一个或一个以上指令而存储于计算机可读媒体上。术语“计算机可读媒体”指代可由计算机存取的任何可用媒体。以实例而非限制的方式,计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式载运或存储所要程序代码且可由计算机存取的任何其它媒体。如本文所使用,磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字通用光盘(DVD)、软盘和
Figure GPA00001155249600211
光盘,其中磁盘通常以磁性方式再生数据,而光盘用激光以光学方式再生数据。
还可经由传输媒体传输软件或指令。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL),或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,则同轴电缆、光纤电缆、双绞线、DSL,或例如红外线、无线电和微波等无线技术包括于传输媒体的定义中。
本文中所揭示的方法包含用于实现所描述方法的一个或一个以上步骤或动作。方法步骤和/或动作可在不脱离权利要求书的范围的情况下彼此互换。换句话说,除非正描述的方法的恰当操作需要步骤或动作的特定次序,否则可在不脱离权利要求书的范围的情况下修改特定步骤和/或动作的次序和/或使用。
此外,应了解,用于执行本文描述的方法和技术(例如,由图7、图10和图12说明的那些方法和技术)的模块和/或其它适当装置可通过装置下载和/或以其它方式获得。举例来说,装置可耦合到服务器以促进用于执行本文中所描述的方法的装置的转移。或者,可经由存储装置(例如,随机存取存储器(RAM)、只读存储器(ROM)、例如压缩光盘(CD)或软性磁盘等物理存储媒体等)来提供本文中所描述的各种方法,使得装置可在将存储装置耦合或提供到所述装置后便获得各种方法。此外,可利用用于将本文中所描述的方法和技术提供到装置的任何其它合适技术。
应理解,权利要求书不限于上文所说明的精确配置和组件。可在不脱离权利要求书的范围的情况下在本文所描述的系统、方法和设备的布置、操作和细节方面进行各种修改、改变和变化。

Claims (20)

1.一种用于在音频播放器中提供多区器具支持的方法,其包含:
接收具有一组用户定义器具和一组乐器数字接口(MIDI)数据的文件;
标识所述一组用户定义器具中的至少一个多区器具;
将所述多区器具中的每一区映射到具有与该区的参数相同的参数的单区器具;
将新的器具编号指派到每一单区器具;以及
基于所述映射和指派来修改所述MIDI数据。
2.根据权利要求1所述的方法,其中所述修改包含在使用多区器具的任何MIDI消息之前将一个或一个以上程序改变命令插入到所述MIDI数据中。
3.根据权利要求1所述的方法,其进一步包含将所述单区器具和所述经修改的MIDI数据组合成播放器专有格式。
4.根据权利要求3所述的方法,其中所述播放器专有格式包含合成音乐移动应用格式(SMAF)文件。
5.根据权利要求1所述的方法,其中所述一组用户定义器具为可下载声音(DLS)文件。
6.根据权利要求1所述的方法,其中所述接收进一步包含接收可扩展音乐格式(XMF)文件。
7.根据权利要求1所述的方法,其中所述新的器具编号与多区器具编号重叠。
8.根据权利要求1所述的方法,其中所述指派进一步包含在当前库中不存在可用器具编号的情况下创建新的器具库。
9.根据权利要求8所述的方法,其中所述修改包含在所述MIDI数据中的使用曾映射到所述新的器具库的多区器具的任何MIDI消息之前插入一个或一个以上库改变命令。
10.根据权利要求1所述的方法,其进一步包含搜索所述MIDI数据以寻找使用多区器具的MIDI消息。
11.一种用于在音频播放器中提供多区器具支持的设备,其包含:
用于接收具有一组用户定义器具和一组乐器数字接口(MIDI)数据的文件的装置;
用于标识所述一组用户定义器具中的至少一个多区器具的装置;
用于将所述多区器具中的每一区映射到具有与该区的参数相同的参数的单区器具的装置;
用于将新的器具编号指派到每一单区器具的装置;以及
用于基于所述映射和指派来修改所述MIDI数据的装置。
12.根据权利要求11所述的设备,其中所述用于修改的装置进一步包含用于在使用多区器具的任何MIDI消息之前将一个或一个以上程序改变命令插入到所述MIDI数据中的装置。
13.根据权利要求11所述的设备,其进一步包含用于将所述单区器具和所述经修改的MIDI数据组合成播放器专有格式的装置。
14.根据权利要求13所述的设备,其中所述播放器专有格式包含合成音乐移动应用格式(SMAF)文件。
15.根据权利要求11所述的设备,其中所述一组用户定义器具为可下载声音(DLS)文件。
16.根据权利要求11所述的设备,其中所述用于接收的装置进一步包含用于接收可扩展音乐格式(XMF)文件的装置。
17.根据权利要求11所述的设备,其中所述新的器具编号与多区器具编号重叠。
18.根据权利要求11所述的设备,其中所述用于指派的装置进一步包含用于在当前库中不存在可用器具编号的情况下创建新的器具库的装置。
19.根据权利要求18所述的设备,其中所述用于修改的装置包含用于在所述MIDI数据中的使用曾映射到所述新的器具库的多区器具的任何MIDI消息之前插入一个或一个以上库改变命令的装置。
20.根据权利要求11所述的设备,其进一步包含用于搜索所述MIDI数据以寻找使用多区器具的MIDI消息的装置。
CN2009801013059A 2008-01-24 2009-01-24 用于在音频播放器中提供多区器具支持的方法和系统 Expired - Fee Related CN101896963B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US2317408P 2008-01-24 2008-01-24
US61/023,174 2008-01-24
US12/358,037 US8697978B2 (en) 2008-01-24 2009-01-22 Systems and methods for providing multi-region instrument support in an audio player
US12/358,037 2009-01-22
PCT/US2009/031931 WO2009094606A1 (en) 2008-01-24 2009-01-24 Systems and methods for providing multi-region instrument support in an audio player

Publications (2)

Publication Number Publication Date
CN101896963A CN101896963A (zh) 2010-11-24
CN101896963B true CN101896963B (zh) 2012-12-19

Family

ID=40514079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801013059A Expired - Fee Related CN101896963B (zh) 2008-01-24 2009-01-24 用于在音频播放器中提供多区器具支持的方法和系统

Country Status (7)

Country Link
US (1) US8697978B2 (zh)
EP (1) EP2232478A1 (zh)
JP (1) JP5086445B2 (zh)
KR (1) KR101155160B1 (zh)
CN (1) CN101896963B (zh)
TW (1) TW200947417A (zh)
WO (1) WO2009094606A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8759657B2 (en) * 2008-01-24 2014-06-24 Qualcomm Incorporated Systems and methods for providing variable root note support in an audio player
US9177538B2 (en) * 2011-10-10 2015-11-03 Mixermuse, Llc Channel-mapped MIDI learn mode
US8604329B2 (en) * 2011-10-10 2013-12-10 Mixermuse Llc MIDI learn mode
US9997147B2 (en) * 2015-07-20 2018-06-12 Masaaki Kasahara Musical instrument digital interface with voice note identifications
CN106098058B (zh) * 2016-06-23 2018-09-07 腾讯科技(深圳)有限公司 音调线生成方法和装置
US9792889B1 (en) * 2016-11-03 2017-10-17 International Business Machines Corporation Music modeling
WO2019147492A2 (en) * 2018-01-23 2019-08-01 Synesthesia Corporation Audio sample playback unit
CN114915853A (zh) * 2021-02-08 2022-08-16 中国电信股份有限公司 交互信息处理方法、装置、终端以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847302A (en) * 1984-08-09 1998-12-08 Casio Computer Co., Ltd. Tone information processing device for an electronic musical instrument for generating sounds
JP2001100744A (ja) * 1999-09-27 2001-04-13 Yamaha Corp 記録媒体および楽音信号生成方法
JP2002297142A (ja) * 2001-03-29 2002-10-11 Yamaha Corp 音色選択装置及び方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206446A (en) * 1989-01-18 1993-04-27 Casio Computer Co., Ltd. Electronic musical instrument having a plurality of tone generation modes
US5119711A (en) 1990-11-01 1992-06-09 International Business Machines Corporation Midi file translation
JPH0752350B2 (ja) 1990-11-16 1995-06-05 ヤマハ株式会社 電子楽器
US5331111A (en) * 1992-10-27 1994-07-19 Korg, Inc. Sound model generator and synthesizer with graphical programming engine
US5637822A (en) 1994-03-17 1997-06-10 Kabushiki Kaisha Kawai Gakki Seisakusho MIDI signal transmitter/receiver operating in transmitter and receiver modes for radio signals between MIDI instrument devices
JP2894219B2 (ja) 1994-09-09 1999-05-24 ヤマハ株式会社 電子楽器
US5763800A (en) 1995-08-14 1998-06-09 Creative Labs, Inc. Method and apparatus for formatting digital audio data
US6156965A (en) 1995-08-28 2000-12-05 Shinsky; Jeff K. Fixed-location method of composing and performing and a musical instrument
US5596159A (en) 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
JP3758278B2 (ja) 1996-03-01 2006-03-22 ヤマハ株式会社 音量データ変換装置
JP3204147B2 (ja) * 1997-01-29 2001-09-04 ヤマハ株式会社 楽音発生装置
US5852251A (en) 1997-06-25 1998-12-22 Industrial Technology Research Institute Method and apparatus for real-time dynamic midi control
JP3508509B2 (ja) 1997-10-21 2004-03-22 松下電器産業株式会社 音源装置
US6372973B1 (en) 1999-05-18 2002-04-16 Schneidor Medical Technologies, Inc, Musical instruments that generate notes according to sounds and manually selected scales
US6462264B1 (en) 1999-07-26 2002-10-08 Carl Elam Method and apparatus for audio broadcast of enhanced musical instrument digital interface (MIDI) data formats for control of a sound generator to create music, lyrics, and speech
JP3576109B2 (ja) 2001-02-28 2004-10-13 株式会社第一興商 Midiデータ変換方法、midiデータ変換装置、midiデータ変換プログラム
JP3838353B2 (ja) 2002-03-12 2006-10-25 ヤマハ株式会社 楽音生成装置および楽音生成用コンピュータプログラム
JP2004157295A (ja) 2002-11-06 2004-06-03 Oki Electric Ind Co Ltd 音響再生装置および演奏データの補正方法
ATE310301T1 (de) 2003-04-08 2005-12-15 Sony Ericsson Mobile Comm Ab Optimierung der wiedergabe einer midi-datei
US7208670B2 (en) 2003-05-20 2007-04-24 Creative Technology Limited System to enable the use of white keys of musical keyboards for scales
US7045700B2 (en) 2003-06-30 2006-05-16 Nokia Corporation Method and apparatus for playing a digital music file based on resource availability
US7323629B2 (en) 2003-07-16 2008-01-29 Univ Iowa State Res Found Inc Real time music recognition and display system
JP4158743B2 (ja) 2004-05-24 2008-10-01 沖電気工業株式会社 演奏データ編集装置、演奏データ編集方法および演奏データ編集プログラム
US7205470B2 (en) 2003-10-03 2007-04-17 Oki Electric Industry Co., Ltd. Play data editing device and method of editing play data
US7112737B2 (en) * 2003-12-31 2006-09-26 Immersion Corporation System and method for providing a haptic effect to a musical instrument
KR100694395B1 (ko) * 2004-03-02 2007-03-12 엘지전자 주식회사 웨이브 테이블 기반의 미디 합성 방법
US7002069B2 (en) 2004-03-09 2006-02-21 Motorola, Inc. Balancing MIDI instrument volume levels
JP4400363B2 (ja) 2004-08-05 2010-01-20 ヤマハ株式会社 音源システム、楽曲ファイルを記録したコンピュータ読み取り可能な記録媒体及び楽曲ファイル作成ツール
US20060101978A1 (en) 2004-11-17 2006-05-18 Burgett, Inc. Apparatus and method for enhanced dynamics on MIDI-enabled reproducing player pianos
ATE407529T1 (de) 2004-11-24 2008-09-15 Research In Motion Ltd Verfahren und system zum filtrieren von wellenformdaten für drahtlosen geräten
US20060112815A1 (en) 2004-11-30 2006-06-01 Burgett, Inc. Apparatus method for controlling MIDI velocity in response to a volume control setting
KR100655548B1 (ko) 2004-12-15 2006-12-08 엘지전자 주식회사 미디 합성 방법
JP4665570B2 (ja) 2005-03-17 2011-04-06 ヤマハ株式会社 電子楽器及び波形割当てプログラム
US8199618B2 (en) 2006-02-22 2012-06-12 Mediatek Inc. Buffer control system for reducing buffer delay time between the playback of tracks and method thereof
JP4748011B2 (ja) * 2006-09-21 2011-08-17 ヤマハ株式会社 電子鍵盤楽器
US8030568B2 (en) 2008-01-24 2011-10-04 Qualcomm Incorporated Systems and methods for improving the similarity of the output volume between audio players
US8759657B2 (en) 2008-01-24 2014-06-24 Qualcomm Incorporated Systems and methods for providing variable root note support in an audio player

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847302A (en) * 1984-08-09 1998-12-08 Casio Computer Co., Ltd. Tone information processing device for an electronic musical instrument for generating sounds
JP2001100744A (ja) * 1999-09-27 2001-04-13 Yamaha Corp 記録媒体および楽音信号生成方法
JP2002297142A (ja) * 2001-03-29 2002-10-11 Yamaha Corp 音色選択装置及び方法

Also Published As

Publication number Publication date
KR101155160B1 (ko) 2012-06-13
TW200947417A (en) 2009-11-16
KR20100106600A (ko) 2010-10-01
WO2009094606A1 (en) 2009-07-30
EP2232478A1 (en) 2010-09-29
JP2011511309A (ja) 2011-04-07
JP5086445B2 (ja) 2012-11-28
CN101896963A (zh) 2010-11-24
US20090205481A1 (en) 2009-08-20
US8697978B2 (en) 2014-04-15

Similar Documents

Publication Publication Date Title
CN101896963B (zh) 用于在音频播放器中提供多区器具支持的方法和系统
JP3061906B2 (ja) Midiデータファイルの処理システム及び方法
CN1104709C (zh) 主演唱声之外还带调谐的副演唱声的卡拉ok装置
US5541354A (en) Micromanipulation of waveforms in a sampling music synthesizer
US8633369B2 (en) Method and system for remote concert using the communication network
WO2021216115A1 (en) System, method, and non-transitory computer-readable storage medium for collaborating on a musical composition over a communication network
JPH06222776A (ja) オーディオ信号の発生方法
CN101903940B (zh) 用于改进音频播放器之间的输出音量的相似度的系统和方法
CN101925948A (zh) 用于在音频播放器中提供可变根音支持的方法和系统
Huber The Midi manual: A practical guide to Midi within Modern Music production
CN101000761A (zh) 音调合成设备和方法
RU2393548C1 (ru) Устройство для изменения входящего голосового сигнала в выходящий голосовой сигнал в соответствии с целевым голосовым сигналом
US10026386B2 (en) Apparatus, method and computer program for memorizing timbres
JP3518716B2 (ja) 楽音合成装置
Lehrman et al. What is MIDI?
US20050137881A1 (en) Method for generating and embedding vocal performance data into a music file format
CN114078465A (zh) 多媒体评分系统及方法
Wentzel Exploring multi-touch instruments with MPE and MIDI 2.0
US20050137880A1 (en) ESPR driven text-to-song engine
Pazel Rendering Score to MIDI
Self MIDI: Handbook for Sound Engineers by David Huber
Huber Midi
Blount et al. " MIDI Systems and Control", by Francis Rumsey (Book Review)
Petelin et al. Cakewalk Sonar Plug-Ins & PC Music Recording, Arrangement, and Mixing
Garavaglia Raising awareness about complete automation of live-electronics: A historical perspective

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121219

Termination date: 20160124

EXPY Termination of patent right or utility model