CN103959372A - 用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法 - Google Patents

用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法 Download PDF

Info

Publication number
CN103959372A
CN103959372A CN201280048029.6A CN201280048029A CN103959372A CN 103959372 A CN103959372 A CN 103959372A CN 201280048029 A CN201280048029 A CN 201280048029A CN 103959372 A CN103959372 A CN 103959372A
Authority
CN
China
Prior art keywords
audio
note
track
client
music
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.)
Granted
Application number
CN201280048029.6A
Other languages
English (en)
Other versions
CN103959372B (zh
Inventor
R.拉苏尔
D.沃纳
M.塞尔勒蒂克
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.)
Music planning Co
MUSIC MASTERMIND LLC
Original Assignee
Music planning Co
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 Music planning Co filed Critical Music planning Co
Publication of CN103959372A publication Critical patent/CN103959372A/zh
Application granted granted Critical
Publication of CN103959372B publication Critical patent/CN103959372B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B15/00Teaching music
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B15/00Teaching music
    • G09B15/02Boards or like means for providing an indication of notes
    • G09B15/04Boards or like means for providing an indication of notes with sound emitters
    • 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/0008Associated control or indicating means
    • G10H1/0025Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
    • 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/125Medley, i.e. linking parts of different musical pieces in one single piece, e.g. sound collage, DJ mix
    • 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
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/091Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith
    • G10H2220/101Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters
    • G10H2220/106Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters using icons, e.g. selecting, moving or linking icons, on-screen symbols, screen regions or segments representing musical elements or parameters
    • G10H2220/111Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters using icons, e.g. selecting, moving or linking icons, on-screen symbols, screen regions or segments representing musical elements or parameters for graphical orchestra or soundstage control, e.g. on-screen selection or positioning of instruments in a virtual orchestra, using movable or selectable musical instrument icons
    • 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
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/091Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith
    • G10H2220/101Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters
    • G10H2220/126Graphical user interface [GUI] specifically adapted for electrophonic musical instruments, e.g. interactive musical displays, musical instrument icons or menus; Details of user interactions therewith for graphical creation, edition or control of musical data or parameters for graphical editing of individual notes, parts or phrases represented as variable length segments on a 2D or 3D representation, e.g. graphical edition of musical collage, remix files or pianoroll representations of MIDI-like files
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/015PDA [personal digital assistant] or palmtop computing devices used for musical purposes, e.g. portable music players, tablet computers, e-readers or smart phones in which mobile telephony functions need not be used
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/021Mobile ringtone, i.e. generation, transmission, conversion or downloading of ringing tones or other sounds for mobile telephony; Special musical data formats or protocols herefor
    • 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/075Musical metadata derived from musical analysis or for use in electrophonic musical instruments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

公开了一种用于提供与所请求的音乐音符相对应的音频数据的方法,所述方法包括:(a)提供具有多个高速缓存条目的呈现高速缓存,所述高速缓存条目中的每一个与不同音符相对应;(b)从客户端接收针对第一音符的请求;(c)识别与所述第一音符相对应的第一高速缓存条目;(d)确定与所述第一高速缓存条目相对应的第一音频分段不可用;(e)识别与所述呈现高速缓存中的接近命中高速缓存条目相对应的第二音频分段;以及(f)将所述第二音频分段处理为与所述第一音频分段基本上类似的第三音频分段。

Description

用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法
本申请要求来自下述申请的优先权:于2009年6月1日提交的美国临时专利申请No. 61/182,982;于2009年10月2日提交的美国临时专利申请No. 61/248,238;于2009年12月3日提交的美国临时专利申请No. 12/791,792;均于2010年6月1日提交的美国专利申请No. 12/791,792、12/791,798、12/791,803和12/791,807。
技术领域
本发明总体涉及音乐的创作,并且更特别地,涉及用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法。
背景技术
音乐是人类自我表现的以良好声誉众所周知的形式。然而,可以以不同方式得到人对这种艺术努力的亲身欣赏。通常,这个人可以通过收听其他人的创作而不是由他自己或她自己生成音乐,来更容易地享受音乐。对许多人来说,聆听和认识有吸引力的乐曲的能力是天生的,而手动地创作音符的合适采集的能力仍然遥不可及。人的创作新音乐的能力可能受学习乐器好到足以准确地随意再现曲调所必需的时间、钱和/或技能约束。对大多数人来说,他们自己的想象力可以是新音乐的来源,但他们哼唱或吟唱该相同曲调的能力限制了他们的曲调可被正式保留和再创作以供其他人享受的程度。
记录伴奏乐者的演奏也可能是费力的过程。对相同材料的多个曲段(take)进行记录且对其煞费苦心地仔细查看,直到能够在消除掉所有瑕疵的情况下集合成单个曲段为止。良好的曲段通常需要有天赋的艺术家在另一位艺术家的指导下相应地调整他或她的演奏。在业余记录的情况下,最好的曲段是机缘巧合的结果并因此不能被重复。往往,业余演奏者制作好部分和差部分二者都有的曲段。如果可以在不必须过细地分析每个曲段的每个部分的情况下构造出歌曲,则记录过程将简单得多且有更多乐趣。因此,正是关于这些和其他考虑,作出了本发明。
此外,人所期望创作的音乐可能是复杂的。例如,想象出的曲调可能具有多于一种乐器,该多于一种乐器可以按可能的布置与其他乐器同时被演奏。这种复杂性进一步增加了单独的人生成期望的声音组合所需的时间、技能和/或钱。大多数乐器的物理配置还需要人的完全物理注意力来手动地生成音符,从而进一步需要附加人员演奏期望曲调的附加部分。此外,然后,额外的审核和管理可能是确保期望曲调的各种所涉及的乐器和元件的合适交互所必需的。
甚至对已经享受创作其自己的音乐的人来说,那些收听者可能缺乏实现合适作曲和音乐创作的类型的专门知识。由此,所创作的音乐可能包含不处于相同音乐音调或弦内的音符。在大多数音乐风格中,走调或脱弦音符(常被称作“不和谐”音符)的存在使音乐不悦耳和刺耳。相应地,由于他们缺乏经验和训练,音乐收听者通常创作出的音乐听起来不合意且不专业。
对某些人来说,艺术灵感不受典型地与新音乐的生成和记录相关联的相同时间和位置限制所约束。例如,当新曲调的想法突然成形时,人可能不处于有可演奏的乐器在手的制作工作室中。在灵感的瞬间消逝之后,这个人可能不能够重拾原始曲调的完整程度,从而导致艺术努力的损失。此外,这个人可能随着在仅能再创作他或她的初始音乐启示的低劣和不完整版本时应用的时间和努力而变得沮丧。
专业的音乐作曲和编辑软件工具当前一般可用。然而,这些工具展现出对初学者用户来说望而却步的进入门槛。这种复杂用户界面可能很快削弱敢于在其艺术幻想的道路上冒险的任何新手的热情。受限于专业音响服务器套件也束缚了想要在移动中精制曲调的移动创作者的风格。
所需要的是一种音乐创作系统和方法,其能够容易地与用户的大多数基本能力相互作用,却能够实现与用户的想象力和期望一样复杂的音乐创作。还关联地需要促进没有不和谐的音符的音乐创作。此外,在本领域中需要能够通过基于自动化选择准则聚合多个曲段的部分来生成音乐合辑音轨的音乐著作(authoring)系统。还期望的是,当灵感出现时,以不受用户的位置限制的方式实现这种系统,从而实现对新乐曲的首次表达的捕获。
在本领域中关联地需要一种系统和方法,其能够通过自动地评估先前记录的音轨的质量并选择经由电子著作系统而记录的先前记录的音轨中的最佳音轨来从多个曲段创作合辑音轨。
还期望实现一种用于基于云的音乐创作的系统和方法,从而,处理密集型功能由远离客户端设备的服务器实现。然而,由于数字音乐创作依赖于巨大量的数据,因此这种配置一般受若干因素限制。对提供者来说,处理、存储和服务于这样大量的数据可能数量巨大的,除非中央处理器极为强大并因此从成本和等待时间的观点来看较昂贵。在给定了用于存储和发送数据的当前成本的情况下,数据从呈现服务器到客户端的传输可能迅速变得成本过高且还可能增加不期望的等待时间。从客户端的角度来看,带宽限制还可能导致显著的等待时间问题,这减损了用户体验。因此,在本领域中还需要能够解决和克服这些缺陷的系统。
附图说明
参照下面的附图来描述非限制性且非穷举性的实施例。在附图中,贯穿所有各幅图,相似的附图标记指代相似的部分,除非以其他方式指定。
为了更好地理解本公开,将对要与附图相关联地阅读的下面的具体实施方式进行参照,在附图中:
图1A、1B和1C图示了可实施本发明的方面的系统的若干实施例;
图2是图1的系统的音频转换器140的可能部件的一个实施例的框图;
图3图示了音乐合辑的进展的一个示例性实施例;
图4是图2的系统的音轨分区器204的可能部件的一个实施例的框图;
图5是图示了具有基频和多个谐波的音频输入的频率分布的示例性频谱图;
图6是示例性的音高相对于时间的曲线图,其图示了在第一和第二音高之间改变且随后在第二音高周围安置的人声的音高;
图7是作为音高事件相对于时间而绘制的形态的示例性实施例,每个音高事件具有离散持续时间;
图8是图示了本发明的一个实施例中的数据文件的内容的框图;
图9是图示了用于在连续循环的记录伴奏内生成音乐音轨的方法的一个实施例的流程图;
图10、10A和10B一起形成用于在连续循环的记录伴奏内生成音乐音轨的一个可能用户界面的图示;
图11是用于校准记录伴奏的一个可能用户界面的图示;
图12A、12B和12C一起图示了与在三个分离的时间段处在连续循环的记录伴奏内音乐音轨的生成相关联的第二可能用户界面;
图13A、13B和13C一起图示了用于使用图12的用户界面修改向系统中的音乐音轨输入的用户界面的一个可能使用;
图14A、14B和14C一起图示了用于在三个分离的时间段处创建节奏音轨的一个可能用户界面;
图15是图1的系统的MTAC模块144的可能部件的一个实施例的框图;
图16是图示了用于确定由音频输入的一个或多个音符反映的音乐音调的一个可能过程的流程图;
图16A图示了可以用于更好地确定音调符号的音程分布矩阵;
图16B和16C分别图示了与音程分布矩阵相关联地使用以提供优选音调符号确定的小调和小调音程分布矩阵;
图17、17A和17B一起形成图示了用于基于弦序列约束对音乐音轨的部分进行打分的一个可能过程的流程图;
图18图示了用于确定形态的质心的过程的一个实施例;
图19图示了谐波振荡器随时间的阶跃响应,具有阻尼响应、过阻尼响应和欠阻尼响应;
图20图示了示出用于对音乐输入的部分进行打分的一个实施例的逻辑流程图;
图21图示了用于从多个记录音轨组成“最佳”音轨的过程的一个实施例的逻辑流程图;
图22图示了得分的示例性音频波形和图形表示的一个实施例,其示出了实际音高与理想音高的差异;
图23图示了由先前记录的音轨的分区构成的新音轨的一个实施例;
图24图示了示出用于将伴奏音乐输入与主奏音乐输入进行和声的过程的一个实施例的数据流程图;
图25图示了由图24的变换音符模块演奏的过程的数据流程图;
图26图示了超级键盘的一个示例性实施例;
图27A-B图示了弦轮的两个示例性实施例;
图28图示了可实施本发明的网络配置的一个示例性实施例;
图29图示了支持本文讨论的过程的设备的框图;
图30图示了音乐网络设备的一个实施例;
图31图示了游戏环境中的第一界面的一个可能实施例;
图32图示了用于在图31的游戏环境中创建一个或多个主奏嗓音或乐器音轨的界面的一个可能实施例;
图33图示了用于在图31的游戏环境中创建一个或多个打击乐器音轨的界面的一个可能实施例;
图34A-C图示了用于在图31的游戏环境中创建一个或多个伴奏音轨的界面的可能实施例;
图35图示了描绘作为主奏音乐的伴奏而播放的和弦进行的图形界面的一个可能实施例;
图36图示了用于在图31的游戏环境中在音乐合辑的不同段当中进行选择的一个可能实施例;
图37A和37B图示了与可与图31-36的游戏环境结合利用的音乐资产相关联的文件结构的可能实施例;
图38图示了根据本发明的呈现高速缓存的一个实施例;
图39图示了示出根据本发明的用于针对所请求的音符获得音频的一个实施例的逻辑流程图的一个实施例;
图40图示了根据本发明的用于实现图39的高速缓存控制过程的流程图的一个实施例;
图41图示了根据本发明的用于实现呈现高速缓存的架构的一个实施例;
图42图示了根据本发明的用于实现呈现高速缓存的架构的第二实施例;
图43图示了图示根据本发明的客户端、服务器和边缘高速缓存之间的通信的信号图的一个实施例;
图44图示了图示根据本发明的实施例的客户端、服务器和边缘高速缓存之间的通信的信号图的第二实施例;
图45图示了根据本发明的用于优化音频请求处理队列的第一过程的实施例;
图46图示了根据本发明的用于优化音频请求处理队列的第二过程的实施例;
图47图示了根据本发明的用于优化音频请求处理队列的第三过程的实施例;
图48图示了根据本发明的一个实施例的实况播放循环的一个示例性实施例;
图49图示了根据本发明的可被应用于音乐合辑的一系列效果的一个实施例;
图50图示了根据本发明的可被应用于乐器音轨的一系列乐者角色效果的一个实施例;
图51图示了根据本发明的可被应用于乐器音轨的一系列制作者角色效果的一个实施例;
图52图示了根据本发明的可被应用于合辑音轨的一系列制作者角色效果的一个实施例。
具体实施方式
现在,将在下文中参照附图来更全面地描述本发明,附图形成本发明的一部分,并通过图示的方式示出了可实施本发明的具体示例性实施例。然而,本发明可以以许多不同形式体现且不应当被理解为限于本文阐述的实施例;相反,这些实施例被提供以使得本公开将透彻且全面,且会将本发明的范围完全传达给本领域技术人员。除其他事情之外,本发明可以被体现为方法或设备。相应地,本发明可以采用完全硬件的实施例、完全软件的实施例或将软件和硬件方面进行组合的实施例的形式。因此,下面的具体实施方式不应在限制意义上采用。
定义。
贯穿说明书和权利要求书,下面的术语采用本文中显式关联的含义,除非上下文以其他方式清楚指示。如本文使用的短语“在一个实施例中”不必然指代相同的实施例,尽管其可以指代相同的实施例。此外,如本文使用的短语“在另一实施例中”不必然指代不同的实施例,尽管其可以指代不同的实施例。因此,如下所述,在不脱离本发明的范围或精神的情况下,可以容易地组合本发明的各个实施例。
此外,如本文所使用,术语“或”是包括性的“或”算子,并等效于术语“和/或”,除非上下文以其他方式清楚指示。术语“基于”不是排他性的,并允许基于未描述的附加因素,除非上下文以其他方式清楚指示。此外,贯穿说明书,“一”、“一个”和“该”的含义包括复数引用。“在……中”的含义包括“在……中”且包括复数引用。“在……中”的含义包括“在……中”和“在……上”。
如本文所使用,术语“音乐输入”指代包含通过包括但不限于空气、麦克风、线路入机制等的多种介质传输的音乐和/或控制信息的任何信号输入。音乐输入不限于可能由人耳听到的信号输入频率,并可以包括可由人耳听到的频率之外或具有不容易由人耳听到的形式的其他频率。此外,术语“音乐的”的使用不意图传达对节拍、节奏等的内在需求。因此,例如,音乐输入可以包括各种输入,诸如轻敲(包括单敲)、敲击、人类输入(诸如语音(例如do、re、mi)、打击输入(例如,ka、cha、da-da)等)、以及通过乐器或其他幅度和/或频率生成机制经由传输进行的间接输入,包括但不限于麦克风输入、线路入输入、MIDI输入、具有可用于传达音乐输入的信号信息的文件或者使所传输的信号能够被转换为音乐的其他输入。
如本文所使用,术语“音乐音调”是一组和谐的音乐音符。音调通常是大调或小调。乐者频繁地谈到乐曲为C大“调”,例如,这暗示一段音乐和谐地以音符C为中心且利用第一音符或主音为C的大音阶。大音阶是由完全且大的半音(例如,C D E F G A B或do re mi fa so la ti)构成的八音符进阶。关于钢琴,例如,中央C(有时称为“C4”)具有频率261.626 Hz,而D4是293.665 Hz;E4是329.628 Hz;F4是349.228 Hz;G4是391.995 Hz;A4是440.000 Hz;以及B4是493.883 Hz。尽管其他乐器上的相同音符将在相同频率处演奏,但是还应当理解,一些乐器在一个音调或另一个音调中演奏。
如本文所使用,术语“不和谐音符”是不处于正确音乐音调或弦中的音符,其中,正确音乐音调和正确弦是当前正在由另一乐者或音乐源演奏的音乐音调或弦。
如本文所使用,术语“蓝色音符”是不处于正确音乐音调或弦中但被允许在不变换的情况下演奏的音符。
如本文所使用,术语“伴奏音乐输入的音符”是由伴奏乐者演奏的与在对应主奏旋律中演奏的音符相关联的音符。
本发明的总体描述。
下面简要描述各个实施例,以提供本发明的一些方面的基本理解。该简要描述不意图作为全面的概述。其不意图标识关键或决定性元素或者划定或以其他方式窄化范围。其目的仅在于以简化的方式提出一些构思,作为下面提出的更详细描述的序言。
简言之,各个实施例涉及通过循环通过先前记录的音频音轨的集合并接收针对每个添加的音频音轨的可听输入来生成多音轨记录。在一个实施例中,可以从来自终端用户的可听发声输入生成多音轨记录中的每个音频音轨。可以在重复回放当前记录之后提供每个新可听输入,或者循环每个新可听输入一次或多次。由在其期间未接收到新音轨输入的循环时段分离的该记录序列可以允许用户透彻地、连续地以及在没有立即需要的附加输入的时间相关压力的情况下收听当前记录。与在其中附加音轨被输入的循环无关,循环的回放还可以允许执行其他动作,诸如修改先前音轨或改变记录系统的参数。
此外,多音轨记录中的音频音轨中的至少一个可以包括基于在可听输入中提供的一个或多个不同声音生成的一个或多个乐器声音。可以对接收到的可听输入执行各种形式的处理以创建音频音轨,该处理包括可听输入的定时的对准和调整、频率识别和调整、将可听输入转换为与乐器相关联的音色、添加与乐器相关联的已知听觉线索等等。此外,可以实时执行这些过程中的每一个,从而允许所生成的音频音轨的几乎瞬时回放,并使得能够立即和后续接收另一可听输入以用于处理且作为音频音轨覆盖到多音轨记录中的一个或多个先前记录的音轨上。
在一个实施例中,多音轨记录的循环或重复部分可以包括单条音乐。该条的长度可以由与音轨相关联的拍子和拍号(time signature)确定。在另一实施例中,条的数目或者多音轨记录的回放的循环点可以是动态的。即,多音轨记录中的第一音频音轨的重复可以发生在与多音轨记录中的第二音频音轨的时间不同的时间处。该动态循环点的调整例如可以基于后续音轨的可听输入的长度而自动确定。
各个实施例还涉及自动制作源自一系列曲段的单个“最佳”曲段。在一个实施例中,在一个或多个伴奏期间将演奏的多个曲段记录到多音轨记录器上。每个曲段被自动分区为分段。基于可选择的准则来对多个曲段中的每一个的每个分区的质量进行打分,并且由每个曲段的最佳质量分段自动构造音轨。在一个实施例中,最佳分段由具有来自多个分段得分内的最高得分的分段定义。
各个实施例还进一步涉及保护乐者免于演奏不和谐音符。在一个实施例中,伴奏乐器的音符被接收,以及来自主奏乐器。然后,基于主奏的音调、弦和/或定时来修改来自伴奏乐器的音符。在一个实施例中,可以提供虚拟乐器,其中,乐器的输入音调动态地映射到安全音符上。因此,如果虚拟乐器的演奏者对旋律进行伴奏,则虚拟乐器可以识别安全音符,安全音符包括用于被伴奏的旋律的当前弦的音符或者处于旋律的音乐音调中的音符。
设备架构。
图1示出了可在多种设备50上部署的系统100的一个实施例,出于图示目的,设备50可以是任何多用途计算机(图1A)、手持计算设备(图1B)和/或专用游戏系统(图1C)。系统100可以被部署为在该设备上安装的应用。可替换地,可以在http浏览器环境内操作该系统,该http浏览器环境可以可选地利用web插入技术来扩展浏览器的功能以实现与系统100相关联的功能。设备50可以包括比图29中所示的部件多或少的部件。然而,本领域技术人员应当理解,特定部件不是对系统100进行操作所必需的,而诸如处理器、麦克风、视频显示器和音频扬声器之类的其他部件是重要的,如果不是实施本发明的方面所必需的话。
如图29中所示,设备50包括处理器2902,处理器2902可以是经由总线2906与大容量存储器2904通信的CPU。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,处理器2902还可以包括单独或彼此组合的一个或多个通用处理器、数字信号处理器、其他专用处理器和/或ASIC。设备50还包括电源2908、一个或多个网络接口2910、音频接口2912、显示驱动器2914、用户输入处理程序2916、照明器2918、输入/输出接口2920、可选触觉接口2922和可选全球定位系统(GPS)接收机2924。设备50还可以包括摄像机(未示出),其使视频能够被获取和/或与特定多音轨记录相关联。来自摄像机或其他源的视频还可以进一步被提供给在线社交网络和/或在线音乐社区。设备50还可以可选地与基站(未示出)通信或者直接与另一计算设备通信。其他计算设备(诸如基站)可以包括附加音频相关部件,诸如专业音频处理器、生成器、放大器、扬声器、XLR连接器和/或电源。
继续图29,电源2908可以包括可再充电或不可再充电电池,或者可以由外部电源(诸如,还可对电池进行补充和/或再充电的AC适配器或供电对接支架)提供。网络接口2910包括用于将设备50耦合至一个或多个网络的电路,并被构造以与一种或多种通信协议和技术一起使用,该通信协议和技术包括但不限于:全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、用户数据报协议(UDP)、传输控制协议/互联网协议(TCP/IP)、SMS、通用分组无线电服务(GPRS)、WAP、超宽带(UWB)、IEEE 802.16全球微波接入互操作性(WiMax)、SIP/RTP、或者多种其他无线通信协议中的任一种。相应地,网络接口2910可以包括作为收发器的收发设备或网络接口卡(NIC)。
音频接口2912(图29)被布置为产生和接收音频信号,诸如人类语音的声音。例如,如在图1A和1B中最大程度上清楚地示出的那样,音频接口2912可以耦合至扬声器51和/或麦克风52以实现向系统100中的音乐输出和输入。显示驱动器2914(图29)被布置为产生视频信号以驱动各种类型的显示器。例如,显示驱动器2914可以驱动图1A中所示的视频监视显示器75,视频监视显示器75可以是基于液晶、气体等离子体或发光二极管(LED)的显示器或者可与计算设备一起使用的任何其他类型的显示器。如图1B中所示,显示驱动器2914可以可替换地驱动手持触摸敏感屏幕80,手持触摸敏感屏幕80还将被布置为经由用户输入处理程序2916接收来自诸如触笔之类的对象的输入或来自人手的数字(见图31)。键区55可以包括被布置为接收来自用户的输入的任何输入设备(例如,键盘、游戏控制器、轨迹球和/或鼠标)。例如,键区55可以包括一个或多个按钮、数字拨号盘和/或键。键区55还可以包括与选择和发送图像相关联的命令按钮。
设备50还包括用于与外部设备(诸如耳机、扬声器51或者其他输入或输出设备)通信的输入/输出接口2920。输入/输出接口2920可以利用一种或多种通信技术,诸如USB、红外、蓝牙(Bluetooth™)等。可选触觉接口2922被布置为将触觉反馈提供给设备50的用户。例如,在设备50是移动或手持设备的实施例(诸如,图1B中所示的实施例)中,可选触觉接口2922可以被采用以便以特定方式(诸如例如,当计算设备的另一用户呼叫时)振动设备。
可选GPS收发器2924可以确定设备100在地球表面上的物理坐标,这典型地输出作为维度和经度值的位置。GPS收发器2924还可以采用其他地理定位机制(包括但不限于三角测量、辅助GPS(AGPS)、E-OTD、CI、SAI、ETA、BSS等)以便进一步确定设备50在地球表面上的物理位置。然而,在一个实施例中,移动设备可以通过其他部件来提供可被采用以确定设备的物理位置的其他信息,包括例如MAC地址、IP地址等。
如图29中所示,大容量存储器2904包括RAM 2924、ROM 2926和其他存储装置。大容量存储器2904图示了用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的计算机可读存储介质的示例。大容量存储器2904存储用于控制设备50的低级别操作的基本输入/输出系统(“BIOS”)2928。大容量存储器还存储用于控制设备50的操作的操作系统2930。将意识到,该部件可以包括通用操作系统(诸如MAC OS、WINDOWS、UNIX、LINUX的版本)或专用操作系统(诸如例如Xbox 360系统软件、Wii IOS、Windows MobileTM、iOS、Android、webOS、QNX或Symbian®操作系统)。操作系统可以包括使得能够经由Java应用程序控制硬件部件和/或操作系统操作的Java虚拟机模块或与该Java虚拟机模块对接。操作系统还可以包括使得能够安全地执行应用(例如,Flash和Unity)的安全虚拟容器,一般也被称作“沙盒”。
一个或多个数据存储模块132可以被存储在设备50的存储器2904中。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,数据存储模块132中存储的信息的部分还可以被存储在与设备50相关联的盘驱动器或其他存储介质上。这些数据存储模块132可以存储多音轨记录、MIDI文件、WAV文件、音频数据样本、以及具有上面讨论的任一种格式的多种其他数据和/或数据格式或输入旋律数据。数据存储模块132还可以存储描述系统100的各种能力的信息,在请求时或响应于特定事件等等,该信息可以例如作为通信期间的报头的一部分而被发送至其他设备。此外,数据存储模块132还可以被采用以存储包括地址簿、朋友列表、别名、用户简档信息等的社交网络信息。
设备50可以存储并选择性地执行多个不同应用,包括根据系统100使用的应用。例如,根据系统100使用的应用可以包括音频转换器模块140、记录伴奏实况循环(RSLL)模块142、多曲段自动合成器(MTAC)模块144、和声器模块146、音轨共享器模块148、声音搜索器模块150、类型匹配器模块152以及弦匹配器模块154。下面更详细地描述这些应用的功能。
设备50上的应用还可以包括消息器134和浏览器136。消息器132可以被配置为使用多种消息收发通信中的任一种来发起和管理消息收发会话,该消息收发通信包括但不限于电子邮件、短消息服务(SMS)、即时消息(IM)、多媒体消息服务(MMS)、互联网中继聊天(IRC)、mIRC、RSS馈给等等。例如,在一个实施例中,消息器243可以被配置为IM消息收发应用,诸如AOL即时消息器、Yahoo!消息器、.NET消息器服务器、ICQ等。在另一实施例中,消息器132可以是被配置为综合并采用多种消息收发协议的客户端应用。在一个实施例中,消息器132可以与浏览器134进行交互以管理消息。浏览器134可以包括被配置为采用几乎任何基于web的语言接收和现实图形、文本、多媒体等的几乎任何应用。在一个实施例中,使浏览器应用能够采用手持设备标记语言(HDML)、无线标记语言(WML)、WMLScript、JavaScript、标准通用标记语言(SMGL)、超文本标记语言(HTML)、可扩展标记语言(XML)等以显示和发送消息。然而,可以采用多种其他基于web的语言中的任一种,包括Python、Java和第三方web插入。
设备50还可以包括其他应用138,诸如计算机可执行指令,其在被客户端设备100执行时发射、接收和/或以其他方式处理消息(例如,SMS、MMS、IM、电子邮件和/或其他消息)、音频、视频并实现与另一客户端设备的另一用户的电信。应用程序的其他示例包括日历、搜索程序、电子邮件客户端、IM应用、SMS应用、VoIP应用、联系人管理器、任务管理器、代码转换器、数据库程序、文字处理程序、安全应用、电子表格程序、游戏、搜索程序等。可以在设备50上嵌入或可替换地下载和执行上述应用中的每一个。
当然,尽管上面讨论的各种应用被示作在设备50上实现,但是在可替换实施例中,这些应用中的每一个的一个或多个部分可以被实现在一个或多个远程设备或服务器上,其中,通过一个或多个网络在设备50与该一个或多个远程设备或服务器之间传递每个部分的输入和输出。可替换地,可以对应用中的一个或多个进行封装以在外围设备上执行或从外围设备下载。
音频转换器。
音频转换器140被配置为接收音频数据并将其转换为更有意义的形式以在系统100内使用。在图2中图示了音频转换器140的一个实施例。在该实施例中,音频转换器140可以包括多种子系统,该多种子系统包括音轨记录器202、音轨分区器204、量化器206、频率检测器208、频移器210、乐器转换器212、增益控制器214、谐波生成器216、特效编辑器218和手动调整控制器220。与音频转换器140的各种子系统的连接以及音频转换器140的各种子系统之间的互连未被示出,以避免使本发明模糊,然而,如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,这些子系统将是电连接和/或逻辑连接的。
音轨记录器202使用户能够记录来自嗓音或乐器的至少一个音频音轨。在一个实施例中,用户可以在没有任何伴奏的情况下记录音轨。然而,音轨记录器202还可以被配置为自动地或在用户请求时播放音频,包括节拍音轨(click track)、音乐伴奏、用户可对照其判断他/她的音高和定时的初始音、或者甚至先前记录的音频。“节拍音轨”指代意图帮助用户保持一致拍子的周期性咔哒噪声(clicking noise)(诸如,由机械节拍器发出的周期性咔哒噪声)。音轨记录器202还可以使用户能够将要记录的时间长度设置为时间界限(即,一定数目的分钟和秒钟)或一定数目的音乐条。当结合MTAC模块144使用时,如下面所讨论,音轨记录器202还可以被配置为以图形方式指示与所记录的音轨的各个部分相关联的得分,以指示例如用户何时走调等等。
一般地,音乐合辑由多个抒情段组成。例如,图3图示了流行歌曲的一个典型进展,其开始于序曲段,接下来是交替的主歌和合唱段,以及桥段,之后是最后主歌。当然,尽管未示出,但也可以使用其他结构,诸如副歌、终曲等。因此,在一个实施例中,音轨记录器202还可以被配置为使用户能够选择要针对其使用所记录的音频音轨的歌曲的段。然后,可以按任何顺序(自动地(基于由类型匹配器模块152进行的确定)或者如终端用户所选择的那样)布置这些段,以创作完整的音乐合辑。
音轨分区器204将所记录的音频音轨划分为分离的分区,然后可以寻址这些分区并潜在地将其存储为个体可寻址的分离声音剪辑或文件。分区被优选地选择为使得端对端粘接的分段导致极少音频伪像或不导致音频伪像。例如,让我们假定可听输入包括短语“pum pa pum”。在一个实施例中,该可听输入的划分可以识别该可听输入的每个音节并将其区分为分离的声音,诸如“pum”、“pa”和“pum”。然而,应当理解,可以以其他方式描绘该短语,并且单个分区可以包括多于一个音节或词。在图1A、1B和1C中的显示器75上图示了四个分区(编号为“1”、“2”、“3”和“4”),每个分区包括多于一个音节。如所图示的那样,分区“1”具有多个音符,该多个音符可以反映已由音轨记录器202使用来自人或乐器源的麦克风52的输入记录的相同的多个音节。
为了执行可听音轨到分离的分区的划分,音轨分区器204可以利用在处理器2902上运行的一个或多个过程。在图4中所示的一个示例性实施例中,音轨分区器204可以包括静默检测器402、停止检测器404和/或手动分区器406,其中每一个可以用于将音频音轨分区为在时间上对准的N个分区。每当检测到静默达特定时间段时,音轨分区器204都可以使用静默检测器302来对音轨进行分区。该“静默”可以由音量阈值定义,使得当音频音量下降到低于所定义的阈值达所定义的时间段时,音轨中的位置被视为静默。音量阈值和时间段二者可以是可配置的。
另一方面,停止检测器404可以被配置为使用话音分析(诸如格式分析)来识别音轨中的元音和辅音。例如,辅音(诸如T、D、P、B、G、K)和鼻音由其发声中气流的阻塞来定界。然后,可以使用特定元音或辅音的位置来检测和识别优选地分区的点。与静默检测器402类似,由停止检测器404利用以识别分区点的元音和辅音的类型可以是可配置的。还可以提供手动分区器406,以使用户能够手动地对每个分区进行定界。例如,用户可以简单地指定每个分区的时间长度,从而使音频音轨被划分为均具有相等长度的许多分区。用户还可以被允许识别音频音轨中要创建分区的特定位置。该识别可以是结合图1A、1B和1C中所示的图形用户界面的类型、使用指点设备(诸如鼠标或游戏控制器)、以图形方式执行的。该识别还可以是通过在由音轨记录器202对音频音轨的可听回放期间按压用户输入设备上的按钮或键(诸如键盘55、鼠标54或游戏控制器56)来执行的。
当然,尽管静默检测器402、停止检测器304和手动分区器406的功能已经被分别描述,但是可以想到,音轨分区器204可以使用静默检测器、停止检测器和/或手动分区器的任何组合将音频音轨分区或划分为分段。本领域技术人员在其面前有本说明书、附图和权利要求书时还将理解,还可以使用用于将音频音轨分区或划分为分段的其他技术。
量化器206被配置为量化接收到的音频音轨的分区,这可以利用在处理器2902上运行的一个或多个过程。量化(如本文使用该术语)的过程指代每个先前创建的分区(以及因此,该分区内包含的音符)的时间移位,如为了将分区内的声音与特定节拍进行对准而可能必需的那样。优选地,量化器206被配置为按时间顺序将每个分区的开始与先前确定的节拍进行对准。例如,可以提供韵律,其中,每个条可以包括4个节拍,并且分离声音的对准可以相对于四分之一节拍时间增量而进行,从而在每个四节拍的条中提供分区可与之对准的16个时间点。当然,可以使用每个条(诸如,对于华尔兹或波尔卡效果为三个节拍,对于摇摆乐效果为两个节拍,等等)和节拍的任何数目的增量,并且在过程期间的任何时间处,可以由用户手动地调整或基于特定准则(诸如,音乐的特定风格或类型(例如,蓝调、爵士乐、波尔卡、流行乐、摇滚乐、摇摆乐或华尔兹)的用户选择)自动地调整该任何数目的增量。
在一个实施例中,每个分区可以由量化器206以在记录时最接近地接收到其的可用时间增量自动地对准。即,如果声音在节拍中的两个时间增量之间开始,则将按时间顺序向前或向后移位声音的回放定时到这些增量中与其初始起始时间更接近的一个增量。可替换地,可以将每个声音在时间上自动移位到紧接在声音被初始记录的相对时间之前的每个时间增量。在又一实施例中,可以将每个声音在时间上自动移位到紧接在声音被初始记录的相对时间之后的每个时间增量。可替换地或附加地,还可以基于针对多音轨记录而选择的类型来影响每个分离声音的时间移位(如何有的话),如下面关于类型匹配器1252进一步讨论的那样。在另一实施例中,还可以自动地将每个声音与多音轨记录中的先前记录的音轨进行时间对准,从而实现卡拉OK型效果。此外,分离声音的长度可以大于一个或多个时间增量,并且,量化器206的时间移位可以被控制以防止分离声音被时间移位以使得分离声音在相同音频音轨内重叠。
频率检测器208被配置为检测和识别可被包含在每个分区内的一个或多个分离声音的音高,这可以利用在处理器2902上运行的一个或多个过程。在一个实施例中,可以通过将每个分离声音转换为频谱来确定音高。优选地,这是使用快速傅里叶变换(FFT)算法(诸如,由iZotope进行的FFT实现)来实现的。然而,应当理解,可以使用任何FFT实现。还可以想到,还可以使用离散傅里叶变换(DFT)算法来获得频谱。
为了图示,图5描绘了可由对接收到的音频音轨的部分执行的FFT过程的输出产生的频谱的一个示例。如可看到的那样,频谱400包括单个基频(F)处的与音高相对应的一个主峰值502,还有在2F、3F、4F……nF处激励的谐波。在频谱中存在附加谐波,这是由于当在单个音高处激励诸如声带或小提琴琴弦之类的振荡器时,该振荡器典型地在多个频率处振动。
在一些实例中,音高的识别可能由于附加噪声而复杂。例如,如图5中所示,频谱可以包括由于音频输入来自诸如语音或乐器之类的真实世界振荡器而出现且显现为跨越频谱而散布的低幅度尖峰的噪声。在一个实施例中,可以通过对低于特定噪声阈值的FFT输出进行滤波来提取该噪声。在一些实例中,音高的识别还可能由颤音的存在而复杂。颤音是可被应用于演奏的故意的频率调制,并典型地处于5.5Hz与7.5Hz之间。像在有噪声的情况下那样,可以通过在频域中应用带通滤波器来从FFT输出中滤除掉颤音,但是对颤音进行滤波可能在许多情形中不期望。
除了上面讨论的频域方法外,还可以想到,还可以使用一种或多种时域方法来确定分区中的一个或多个声音的音高。例如,在一个实施例中,可以通过测量信号的过零点之间的距离来确定音高。还可以使用诸如AMDF(平均量值差函数)、ASMDF(平均平方均差函数)和其他类似自相关算法之类的算法。
为了使对音高的判断最有效,还可以将被定音高的内容成组为(恒定频率的)音符和(稳定增加或降低的频率的)滑音。然而,与具有自然地产生稳定离散音高的品或调的乐器不同,人声往往滑入音符并以连续的方式摇曳,从而使向离散音高的转换变得困难。因此,频率检测器208还可以优选地利用音高脉冲检测来识别分区内的分离声音之间的音高中的移位或改变。
音高脉冲检测是一种用于对聚焦于在歌手的语音与其对其语音的感知之间形成的控制回路的弹道的音高事件进行定界的方法。一般地,当歌手发声时,该歌手片刻之后听到该声音。如果歌手听到音高不正确,则他立即向所意图的音高修改他的语音。该负反馈回路可以被建模为由周期性脉冲驱动的阻尼谐波运动。因此,人声可以被视为单个振荡器:声带。在图6中可以看到歌手的语音602的音高改变和安置的一个示例图示。声带中的紧张控制音高,并且音高的这种改变可以由对阶跃函数(诸如图6中的阶跃函数604)的响应来建模。因此,可以通过寻找音高中的阻尼谐波振荡的起始并观察收敛到稳定值的音高的连续转折点来确定新音高事件的起始。
在音频音轨的分区内的音高事件已被确定之后,其可以被转换和/或存储到作为音高事件相对于时间的曲线图的形态中。在图7中描绘了形态(不具有分区)的一个示例。因此,形态可以包括对每个声音的发动、持续时间和音高或者这些值的任何组合或子集进行标识的信息。在一个实施例中,形态可以具有MIDI数据的形式,尽管形态可以指代音高相对于时间的任何表示,且不限于半音或任何特定韵律。例如,在通过引用并入本文的“Morphological Metrics” by Larry Polansky, Journal of New Music Research, volume 25, pp. 289-368, ISSN: 09929-8215中描述了可使用的形态的其他这样的示例。
频移器210可以被配置为对可听输入的频率进行移位,这可以利用在处理器2902上运行的一个或多个过程。例如,可以自动地提高或降低可听输入的分区内的一个或多个声音的频率,以与先前已记录的分离声音或可听输入的基频对准。在一个实施例中,对是提高还是降低可听输入的频率的确定依赖于最接近的基频。换言之,假定乐曲处于C大调,那么如果由音轨记录器202捕获的声频是270.000Hz,则频移器210将向下移位音符到261.626Hz(中央C),而如果由音轨记录器202捕获的声频是280.000Hz,则频移器210将向上移位音符293.665Hz(或高于中央C的D)。即使当频移器210将可听输入主要调整到最接近的基频时,频移器210也可以进一步被编程为基于音乐音调、类型和/或弦来对接近呼叫(即,其中,声频近似处于两个音符之间半途)进行不同决定。在一个实施例中,频移器210可以基于由类型匹配器260和/或弦匹配器270提供的控制将可听输入调整到基于音乐音调、类型和/或弦而在音乐上更有道理的其他基频,如下面进一步讨论。可替换地或附加地,响应于来自乐器转换器212的输入,频移器210还可以分别将一个或多个分区的一个或多个部分移位成对应于预定集合的频率或半音,诸如,典型地与所选乐器(诸如钢琴、吉他或其他弦乐器、木管乐器或铜管乐器)相关联的那些频率或半音。
乐器转换器212可以被配置为执行可听输入的一个或多个部分到具有与乐器相关联的音色的一个或多个声音的转换。例如,可以将可听输入中的一个或多个声音转换为一种或多种不同类型的打击乐器(包括小军鼓、牛颈铃、低音鼓、三角铁等)的一个或多个乐器声音。在一个实施例中,可听输入到一个或多个对应的打击乐器声音的转换可以包括:将可听输入中的一个或多个声音的定时和幅度适配为包括打击乐器的一个或多个声音的对应音轨,该打击乐器声音包括与该一个或多个可听输入声音相同或相似的定时和幅度。对于被使得能够演奏不同音符的其他乐器(诸如,长号)或其他类型的铜管乐器、弦乐器、木管乐器等,乐器转换可以进一步将可听输入声音的一个或多个频率与具有由乐器演奏的相同或相似频率的一个或多个声音进行相关。此外,每次转换可以由实际上演奏对应物理乐器的物理能力导出和/或限制。例如,针对中音萨克斯音轨生成的乐器声音的频率可以由传统中音萨克斯的实际频率范围限制。在一个实施例中,所生成的音频音轨可以包括转换后的可听输入的MIDI格式的表示。由乐器转换器212使用的各种乐器的数据将优选地被存储在存储器2904中并可以从光学或磁介质、可移除存储器或经由网络下载。
增益控制器214可以被配置为基于其他先前记录的音轨的音量来自动调整可听输入的相对音量,并可以利用在处理器2902上运行的一个或多个过程。谐波生成器216可以被配置为将谐波并入到音频音轨中,这可以利用在处理器2902上运行的一个或多个过程。例如,可以确定可听输入信号的不同附加频率并将其添加至所生产的音频音轨。确定附加频率还可以基于来自类型匹配器260的类型或者通过使用由用户输入的其他预定参数设置。例如,如果所选类型是华尔兹,则可以在具有“oom-pa-pa”节拍的 时间中从与主奏音乐和谐的处于紧接在主奏下面的八度音阶中的大调和弦中选择附加频率,如下:基音,基音。特效编辑器218可以被配置为将各种效果添加到音频音轨,诸如回声、回响等,优选地利用在处理器2902上运行的一个或多个过程。
音频转换器140还可以包括手动调整控制器220,以使用户能够手动更改由上面讨论的模块自动配置的任何设置。例如,除了其他选项之外,手动调整控制器220可以使用户能够更改音频输入或其部分的频率;使用户能够更改每个分离声音的发动和持续时间;增加或减小音频音轨的增益;选择要被应用于乐器转换器212的不同乐器。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,该手动调整控制器220可以被设计为与一个或多个图形用户界面一起使用。下面将与图13A、13B和13C相关联地讨论一种特定图形用户界面。
图8图示了已由音频转换器140处理或以其他方式从另一源下载、取得或获得的音频音轨的分区的文件结构的一个实施例。如所示的那样,在该实施例中,文件包括与文件相关联的元数据、所获得的形态数据(例如,具有MIDI格式)和原始音频(例如,具有.wav格式)。元数据可以包括指示与音频音轨分区的创建者或供给者相关联的简档的信息。其还可以包括与数据的音频签名有关的附加信息,诸如与音频相关联的音调、拍子和分区。元数据还可以包括与可被应用于分区中的每个音符的可能可用音高移位、可被应用于每个音符的时间移位的量等有关的信息。例如,应当理解,对于实况记录的音频,如果音高被移位多于半音,则存在失真的可能性。相应地,在一个实施例中,可以将约束置于实况音频上以防止多于一个半音的移位。当然,还可以使用不同设置和不同约束。在另一实施例中,可能音高移位、时间移位等的范围也可以由音频音轨分区的创建者或在该音频音轨分区中具有实质权利的任何个人(诸如管理员、合作方等)更改或建立。
记录伴奏实况循环。
记录伴奏实况循环(RSLL)模块142实现数字音频工作站,该数字音频工作站与音频转换器140相结合实现可听输入的记录、分离音频音轨的生成和多音轨记录的创建。因此,RSLL模块1422可以使任何所记录的音频音轨(说出的、咏唱的或以其他方式进行的)能够与先前记录的音轨进行组合以创建多音轨记录。如下面进一步讨论的那样,RSLL模块142还优选地被配置为循环先前记录的多音轨记录的至少一条以用于重复回放。可以在新可听输入正在被记录或者RSLL模块142正在以其他方式接收针对当前正在进行的记录伴奏的指令的同时执行该重复回放。由此,RSLL模块142允许用户在播放和收听先前记录的音轨的同时继续编辑并合成音乐音轨。如将从下面的讨论中理解的那样,在优选地完成这种过程时,先前记录的音轨的连续循环还最小化了用户对可由被应用于用户当前正在记录的音频音轨的过程引起的任何等待时间的感知。
图9图示了总体示出使用RSLL模块142与音频转换器140相结合创建多音轨记录的概述过程的一个实施例的逻辑流程图。总体上,图9的操作一般表示记录伴奏。每当用户采用系统100以及例如RSLL模块142时,可以新创建和完成这种伴奏。可替换地,可以继续先前伴奏,并且还可以加载和应用其特定元素,诸如先前记录的多音轨记录或其他用户指定记录参数。
在任一种布置中,在开始框后,过程900开始于判决框910处,其中,用户确定是否要回放当前记录的多音轨记录。在使其他动作能够被执行的同时回放当前多音轨记录的过程在本文中一般被称作“实况循环”。在不显式重复的情况下,当前正在回放的多音轨记录的部分的内容和持续时间被称作“实况循环”。在回放期间,多音轨记录可以伴随有节拍音轨,该节拍音轨一般包括不与多音轨记录一起存储的分离音频音轨,该分离音频音轨提供可听地指示该系统当前被配置为记录的音轨的速度和小节的一系列等间隔参考声音或节拍。
在过程900的初始执行中,可能尚未生成音频音轨。在这种状态中,可以对框910中的空的多音轨记录的回放进行仿真,并且,节拍音轨可以提供被回放给用户的仅有声音。然而,在一个实施例中,用户可以选择使节拍音轨减弱,如下面关于框964进一步讨论的那样。可以在记录期间结合音频回放将视觉线索提供给用户。即使当音频音轨未被记录并且节拍音轨被减弱时,也可以将仿真回放和当前回放位置的指示仅限于这些视觉线索,其可以包括例如进度条、指针或某其他图形指示的改变的显示(参见例如图12A、12B和12C)。
判决框910中回放的实况循环的多音轨记录可以包括先前已记录的一个或多个音频音轨。该多音轨记录可以包括总体长度以及作为实况循环而回放的长度。实况循环的长度可以被选择为小于多音轨记录的总体长度,从而允许用户分离地分层多音轨记录的不同条。可以由用户手动选择或可替换地基于接收到的可听输入自动确定实况循环的相对于多音轨记录总体长度的长度。在至少一个实施例中,多音轨记录和实况循环的总体长度可以相同。例如,实况循环和多音轨记录的长度可以是单条音乐。
当多音轨记录被选择以在判决框910处回放时,可以与至少包括多音轨记录的针对用户回放的部分的实况循环的音频回放同步地提供附加视觉线索,诸如一个或多个音轨的视觉表示。在多音轨记录被播放的同时,过程900在判决框920处继续,其中,由终端用户进行是否要生成多音轨记录的音频音轨的确定。可以基于接收到可听输入(诸如,由终端用户生成的嗓音可听输入)来发起记录。在一个实施例中,可听输入的检测到的幅度可以触发在系统100中接收到的可听输入信号的采样和存储。在可替换实施例中,可以通过由系统100接收到的手动输入来初始化这种音轨生成。此外,生成新音频音轨可能需要检测到的可听输入(诸如来自麦克风)和手动指示二者。如果要生成新音频音轨,则处理在框922处继续。如果未发起音频音轨的生成,则过程900在判决框940处继续。
在框922处,由音频转换器140的音轨记录器202接收可听输入,并将该可听输入存储在一个或多个数据存储模块132中的存储器2904中。如本文所使用的那样,“可听”指代向设备50的输入的属性,其中,在该输入被提供时,其可以同时、自然地且直接地被至少一个用户在没有放大或其他电子处理的情况下听到。在一个实施例中,可以基于首次接收到可听输入时的实况循环内的剩余时间量来确定所记录的可听输入的长度。即,可以在实况循环的结尾处的时间的长度之后结束可听输入的记录,而不论是否仍然正在接收可听输入的可检测的量。例如,如果循环的长度是在每条四个节拍时的一条长,并且在第二节拍的开始处首次检测到或触发可听输入的接收,则可以记录与该条的第二、第三和第四节拍相对应的相当于可听输入的三个节拍,并且因此,将在框910中连续处理的多音轨记录回放中循环这些第二、第三和第四节拍。在这种布置中,可以作为多音轨记录的另一分离音轨的基础,记录和处理在单个条的结尾之后接收到的任何可听输入。可以将分离音轨的这种附加处理表示为通过至少框910、920和922的分离迭代。
在至少一个可替换实施例中,可以基于在框922处接收到的可听输入的长度来动态调整循环回放的长度。即,可听输入可能自动导致当前在框910中回放的多音轨记录的音轨的长度的扩展。例如,如果在当前实况循环的长度已被回放之后接收到附加可听输入,则可以进一步记录和维持该更长可听输入以导出为新音频音轨。在这种布置中,可以在后续实况循环内重复多音轨记录的先前音轨,以匹配接收到的可听输入的长度。在一个实施例中,可以执行较短先前多音轨记录的重复整数次数。该整数次数的重复保持了先前记录的较短多音轨记录的多个条之间的关系,如果有的话。以这种方式,可以动态更改多音轨记录和实况循环的循环点。
类似地,在框922处接收的音轨的长度可以比当前播放的实况循环(即,在四条长的实况循环的回放期间接收仅一个条的可听输入)的长度更短。在这种布置中,当在至少阈值音量的可听输入的接收和记录后的预定时间(例如,所选数目的秒)之后尚未接收到附加可听输入时,可以检测到可听输入的结尾。在一个实施例中,该静默的检测可以基于高于当前实况循环的阈值音量的输入的缺失。可替换地或附加地,可以通过手动信号的接收来发信号通知可听输入的结尾。可以就具有与多音轨记录相同数目的节拍的条的数目而言确定该较短可听输入的关联长度。在一个实施例中,条的该数目被选择为当前实况循环的长度的因素。在每一种情况下,一旦在框924处被转换为音轨,可听输入就可以被手动或自动选择以重复足以与当前正在回放的多音轨记录的长度相匹配的次数。
在框924中,可以由音频转换器140将接收到的可听输入转换为音频音轨。如上所讨论,该音频转换过程可以包括各种操作,其包括分区、量化、频率检测和移位、乐器转换、增益控制、谐波生成、添加特效和手动调整。这些音频转换操作中的每一个的顺序可以被更改,并在至少一个实施例中可以由终端用户配置。此外,可以选择性地应用这些操作中的每一个,从而使得能够利用如所需要那样多或如所需要那样最小的附加处理将可听输入转换为音频音轨。例如,可能不选择乐器转换,从而允许来自可听输入的一个或多个原始声音基本上被包括在具有其原始音色的所生成的音频音轨中。在框924中,可以应用回声消除过程以滤除掉在来自主动记录的音频音轨的实况循环期间播放的其他音轨的音频。在一个实施例中,这可以是通过下述操作来实现的:识别在实况循环期间播放的音频信号;确定输出音频信号与输入音频信号之间的任何延迟;将输出音频信号滤波和延迟成类似于输入音频信号;以及从输入音频信号减去输出音频信号。可使用的一种优选回声消除过程是由iZotope实现的过程,尽管也可以使用其他实施方式。随后可以应用或移除框924的过程,如本文关于框942进一步讨论的那样。在框924处将可听输入转换为所生成的音频音轨之后,过程900在框926处继续。
在框926处,可以将来自框924的所生成的音频音轨实时添加到多音轨记录。这可以是已经发起的多音轨,或者可替换地,这可以是具有作为其第一音轨而包括的音频音轨的新的多音轨。在框926之后,过程900可以再次开始于判决框910处,其中,可以利用所包括的最近生成的音频音轨来回放多音轨。尽管操作922、924和926被示作在图9中串行执行,但是还可以针对每个接收到的可听输入并行执行这些步骤,以便进一步实现对可听输入信号的实时记录和回放。在每个可听输入期间,可以例如针对从可听输入识别的每个分离声音,执行这种并行处理,尽管可替换实施例可以包括可听输入信号的其他不同大小的部分。
在判决框940处,进行是否要修改多音轨记录中的一个或多个音频音轨的确定。例如,可以接收指示对一个或多个先前记录的音频音轨进行修改的终端用户期望的输入。在一个实施例中,可以通过手动输入来接收指示。如上所提及,还可以在当前记录的多音轨记录的回放期间执行该修改,从而允许针对终端用户的多音轨记录的当前状态的立即评价。在一个实施例中,该指示可以包括期望将调整应用于的多音轨记录的一个或多个音轨。这些音轨还可以包括被手动添加给多音轨记录的一个或多个新音轨。如果接收到音轨修改的指示,则过程900在框942处继续;否则,过程900在判决框960处继续。
在框942处,接收一个或多个先前转换的音轨的参数,并可以由终端用户输入调整后的参数。修改的参数可以包括可使用音频转换器140的过程完成的任何调整,除了其他示例之外,该过程可以包括使音轨减弱或独奏、移除整个音轨、调整音轨中的乐器的打击速度、调整音轨的音量水平、调整实况循环中的所有音轨的回放的拍子、添加或移除来自音轨的所选时间增量的分离声音、调整实况循环的长度和/或多音轨记录的总体长度。调整实况循环的长度可以包括:更改关于总体多音轨记录的循环的起始和结束点,和/或还可以包括将更多条添加到当前正在实况循环中重复的音轨、添加和/或附加多音轨记录的先前记录的条(其中,音轨的至少子集先前与这些条相关联)、或者从多音轨记录中删除条。新音轨的添加可能需要该新音轨的各个方面由终端用户手动输入。此外在框942处,可以通过使用声音搜索器模块150针对附加音轨进行搜索,以促进终端用户对先前记录的音频音轨的重用。
在框944处,将调整后的参数应用于在判决框940处指示的一个或多个音轨。该应用可以包括将调整后的参数转换为与调整后的一个或多个音轨兼容的格式。例如,可以将一个或多个数值参数调整成与适用于MIDI或其他协议格式的一个或多个值相对应。在框944之后,过程900可以再次开始于判决框910处,其中,可以利用所包括的一个或多个修改后的音频音轨来回放至少多音轨记录的与实况循环相对应的部分。
在判决框960处,进行是否要修改记录设置的确定。例如,可以接收指示用户是否期望修改记录设置的一个或多个方面的输入。还可以通过手动输入来接收该指示。该指示可以推进对要调整的记录设置的一个或多个参数设置。如果终端用户期望修改记录步骤,则过程900在框962处继续;否则,过程900在判决框980处继续。
在框962处,可以校准记录系统。特别地,可以校准包括至少音频输入源、音频输出源和音频音轨处理部件的记录电路,以结合设备50确定系统100的等待时间,优选地,该等待时间是在通过音频输出源回放声音与通过音频输入源接收可听输入之间以数千秒测量的。例如,如果记录电路包括耳机和麦克风,则可以由RSLL 142确定该等待时间以改进可听输入的接收和转换,特别地,正在回放的多音轨记录的节拍与接收到的可听输入之间的相对定时的确定。在框962处的校准(如果有的话)之后,过程900继续至框964。
在框964处,可以改变其他记录系统参数设置。例如,可以开启或关闭节拍音轨的回放。此外,可以修改新音轨或新多音轨记录的缺省设置,诸如,可以提供框924的可听输入的缺省拍子和缺省转换集合。还可以在框964处改变当前多音轨记录的拍号。还可以提供与数字音频工作站相关联的其他设置,使得这些其他设置可以由终端用户修改,如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样。在框964之后,过程900可以返回至判决框910,其中,可以将对记录系统的调整应用于多音轨记录的音频音轨的后续记录和修改。
在框980处,进行是否要结束记录伴奏的确定。例如,可以从手动输入接收指示伴奏的结束的输入。可替换地,如果例如数据存储器132为满,则设备50可以发起伴奏的结束。如果接收到伴奏结束指示,则可以针对附加操作存储和/或传输多音轨记录。例如,可以将多音轨记录存储在数据存储器132中,以用于未来在初始创建多音轨记录的伴奏的持续或新伴奏中的检索、检查和修改。还可以通过网络将多音轨记录从设备50传输至另一设备50,以用于在与用户账户相关联的至少一个远程数据存储器中存储。还可以通过网络服务器来与在线音乐社区共享所传输的多音轨记录,或者可以在由网络服务器托管的游戏中共享所传输的多音轨记录。
如果记录伴奏未结束,则过程900再次返回至判决框910。这种事件序列可以表示用户在决定哪些(如果有的话)附加音轨要被生成或其他修改(如果有的话)要被执行的同时正在收听实况循环的时段。本领域技术人员在其面前有本说明书、附图和权利要求书时将理解,图9中的流程图图示的每个框(或者以其他方式)以及流程图图示中的框的组合可以由计算机程序指令实现。这些程序指令可以被提供给处理器以产生机器,使得在该处理器上执行的指令创建用于实现在一个或多个流程图框中指定的动作的装置。计算机程序指令可以由处理器执行,以使一系列操作步骤由该处理器执行,以产生计算机实现过程,使得在该处理器上执行的指令提供用于实现在一个或多个流程图框中指定的动作的步骤。计算机程序指令还可以使流程图的框中所示的操作步骤中的至少一些被并行执行。此外,还可以跨越多于一个处理器执行步骤中的一些,诸如在多处理器计算机系统中可能发生的那样。此外,流程图图示中的一个或多个框或框组合还可以与其他框或框组合同时执行,或者甚至在不脱离本发明的范围或精神的情况下按与所图示不同的顺序执行。相应地,流程图图示的框支持用于执行指定动作的装置的组合、用于执行指定动作的步骤的组合和用于执行指定动作的程序指令装置。还将理解,流程图图示的每个框以及流程图图示中的框组合可以由执行指定动作或步骤的专用的基于硬件的系统实现或者由专用硬件和计算机指令的组合实现。
现在将关于可与实现音频转换器140和RSSL模块142的用户界面相关联的各种屏幕显示器来描述本发明的特定方面的操作。所图示的实施例是可与系统100的操作相关联地采用的非限制性非穷尽性示例用户界面。各种屏幕显示器可以包括比所示出的部件多许多或少许多的部件。此外,部件的布置不限于在这些显示器中示出的布置,并且还可以想到其他布置,包括各种部件在不同界面上的设置。然而,所示出的部件不足以公开用于实施本发明的说明性实施例。
图10、10A和10B一起图示了实现RSLL 142以及音频转换器140的方面以记录和修改多音轨记录的音轨的一个用户界面。界面1000的总体显示可以被视为“控制空间”。可以基于来自用户的手动输入(诸如,通过使用鼠标54、触摸屏80、压板或被布置为响应于和传达物理控制的设备)来操作在界面上显示的每个控制。如所示的那样,界面1000显示记录伴奏和作为该伴奏的一部分而生成的多音轨记录的各个方面。文件菜单1010包括用于创建新多音轨记录或加载先前记录的多音轨记录的操作,如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样。
拍子控件1012以每分钟的节拍显示多音轨记录的拍子。拍子控件1012可以由用户直接手动修改。条控件1014显示多音轨记录的条数目。条控件1014可以被配置为显示在实况循环期间的当前条数目、总体条数目、或者可替换地可以用于选择多音轨记录的特定条数目以用于进一步显示在界面1000中。
节拍控件1016显示多音轨记录的节拍数目。节拍控件1016可以被配置为显示每个条的节拍的总数,或者可替换地显示在多音轨记录的回放期间的当前节拍数目。时间控件1018显示多音轨记录的时间。该时间控件1018可以被配置为显示多音轨记录的总体时间、当前选择的实况循环的时间长度、在实况循环期间的绝对或相对时间、或者可以用于跳到多音轨记录的特定绝对时间。可以在图9的框964中改变界面1000的控件(诸如,控件1012、1014、1016、1018和1021-1026)的操作。控件1020与关于图9的框942和962进一步讨论的音轨和记录设置调整相对应。
添加音轨控件1021使用户能够将音轨手动添加到多音轨记录。在选择控件1021时,将新音轨添加到多音轨记录,并将该界面更新为包括针对所添加的音轨的附加控件1040-1054,其操作被如下讨论。呈现WAV控件1022生成和存储来自多音轨记录的至少一部分的WAV文件。在该WAV文件中呈现的多音轨记录的部分以及其他存储参数可以由用户在选择呈现WAV控件1022时进一步输入。此外,除WAV外,其他音频文件格式也可以通过诸如控件1022之类的控件而可用。
节拍音轨控件1023切换节拍音轨的回放。装备控件1024切换开和关RSLL 142的记录部件以及设备的记录可听输入的能力。装备控件1024使终端用户能够与其他用户讲话,实行嗓音输入,并在记录伴奏期间创建其他可听声音而不使这些声音转换为由RSLL 142进一步处理的可听输入。
电路参数控件1025使用户能够校准记录电路参数,如关于图11进一步讨论的那样。滑块1026使多音轨记录回放的音量能够被控制。回放控件1030实现对多音轨记录的回放。该回放是与通过控件1012-1018进一步显示和控制的记录参数协作地进行的。例如,回放控件1030可以发起来自经由控件1014-1018指示的位置且以在控件1012中显示的拍子进行的多音轨记录的回放。如上所提及,该控件1030还实现对用于生成多音轨记录的另一音频音轨的附加可听输入的记录。位置控件1032还可以用于控制多音轨记录的当前回放位置。例如,控件1032可以使回放在多音轨记录的绝对开始处或者可替换地在当前实况循环的开始处被发起。
用户界面1000上的网格1050表示多音轨记录的一个或多个音轨内的分离声音的回放和定时,其中,每行表示个体音轨,并且每列表示时间增量。每行可以例如包括单个条中的每个时间增量的框。可替换地,每行可以包括足够的框以表示实况循环的总体持续时间的时间增量。网格1050中的具有第一阴影或颜色的框(诸如框1052)可以表示在实况循环期间回放声音的位置处的相对定时,而其他框(诸如框1054)中的每一个指示不回放分离声音的音轨内的时间增量。经由手动控件1021添加的音轨初始包括诸如框1054之类的框。框(诸如框1052或框1054)的选择可以在与所选框相关联的时间增量处添加或移除来自音轨的声音。经由向网格1050中的框的手动输入而添加的声音可以包括针对音轨而选择的乐器的缺省声音,或者可替换地包括从音轨的可听输入量化的至少一个声音的拷贝。对于网格1050的该手动操作使可听输入能够生成音轨的一个或多个声音,然而在该音轨内的手动选择的位置处添加这些声音中的一个或多个的拷贝。
进度条1056在视觉上指示多音轨记录的当前回放位置的时间增量。网格1050中的每个音轨与音轨控件1040、1042、1044、1046和1048的集合相关联。移除音轨控件1040使得能够从多音轨记录移除音轨,并可以被配置为选择性地从多音轨记录的一个或多个条移除音轨。
乐器选择控件1042实现对在所生成的音频音轨中将可听输入的声音转换至的乐器的选择。如图10A中所示,可以从下拉菜单手动选择包括打击乐器或其他类型的非打击乐器的多种乐器。可替换地,可以针对每个给定音频音轨自动选择或预先确定缺省乐器或缺省乐器进展。当未选择乐器时,所生成的音频音轨中的每个声音可以基本上对应于与初始可听输入的音色一起包括的原始可听输入的声音。在一个实施例中,可以基于训练RSLL 142来选择乐器,以基于例如每个特定声音的频带的分类将可听声中的特定声音自动转换为关联的乐器声音。
减弱/独奏控件1044使关联的音轨减弱或使除与控件1044相关联的音轨外的所有其他音轨减弱。速度控件1046实现对针对转换后的音频音轨生成的乐器声音的初始启动(attack)或打击强度的调整,这可能影响针对关联音频音轨生成的每个乐器声音的峰值、持续时间、释放和总体幅度形状。可以手动输入或者可替换地基于从其生成一个或多个乐器声音的可听输入声音的属性来提取这种速度。音量控件1048实现对多音轨记录中的每个音轨的回放音量的个体控制。
图11图示了用于校准记录电路的界面1100的一个实施例。界面1100可以表示可在控件1025(见图10A)被选择时出现的屏幕显示弹出窗口等的一个示例。在一个实施例中,界面1100包括实现对接收到的可听输入的幅度的调整的麦克风增益控件1110。上控件1120和下控件1130以及半寿命控件1140提供用于将接收到的信号识别为可听输入以供系统100进一步处理的附加控制和确证。校准电路发起预定节拍音轨并可以将用户引导为在可听输入信号中复制该节拍音轨。在可替换实施例中,用于校准的节拍音轨可以由诸如麦克风之类的音频输入设备直接接收作为可听输入,而无需用户可听地复制节拍音轨。基于节拍音轨中的声音的生成与可听输入中的声音的接收之间的相对定时差,可以确定系统等待时间1160。该等待时间值可以由RSLL 142进一步采用,以改进可听输入的量化以及多音轨记录的回放与针对要被添加到多音轨记录的附加音频音轨的后续导出而接收的可听输入之间的所检测到的相对定时。
因此,如所图示的那样,界面1100和1110给用户呈现了热情且没有威胁、强大且一致、但在学习方面直观的控制空间,这对不是专业乐者或以其他方式不熟悉数字音频著作工具的外行用户来说特别重要。
图12A、12B和12C一起图示了可与多音轨记录中的音频音轨的记录和修改相关联地使用的又一示例性视觉显示器。在该示例中,以图形方式提供声频(实际的和形态的(由频移器210进行的后频移))、分区、量化和拍子信息,以给用户提供甚至更直观的体验。例如,首先转至图12A,提供了用于实况循环的图形控制空间1200。该控制空间包括标识音轨中的分区(或音乐小节)(在图12A-C的情况下,示出了小节1至4)中的每一个的多个分区指示符1204。在图12A-C中所示的图形用户界面的一个实施例中,垂直线1206图示了每个小节内的节拍,其中,每小节的垂直线数目优选地对应于拍号的顶数字。例如,如果乐曲被选择为使用3/4拍号而作曲,则每个小节将包括三个垂直线,以指示在该小节或分区中存在三个节拍。在图12A-C中所示的用户界面的相同实施例中,水平线1208还可以标识与可听输入要被转换至的所选乐器相关联的基频。如图12A-C的实施例中进一步图示的那样,还可以提供乐器图标1210以指示所选乐器,诸如图12A-C中所选的吉他。
在图12A-C中所示的实施例中,实线1212表示如终端用户用嗓音或使用乐器记录的一个音轨的音频波形;而多个水平条1214表示已由音频转换器140的量化器206和频移器210从音频波形生成的音符的形态。如所描绘的那样,所生成的形态的每个音符已被在时间上移位以与每个分区的节拍对准且在频率上移位以与所选乐器的基频之一相对应。
如通过将图12A与图12B与图12C进行比较而描绘的那样,还可以提供回放条1216以标识与图9的过程有关的当前正在由音轨记录器202播放的实况循环的特定部分。因此,在实况循环被播放时,回放条1216从左移动到右。在到达第四小节的结尾时,回放条返回至小节1的开始并再次顺序地重复循环。终端用户可以通过在循环中的适当点处记录附加音频来在实况循环内的任何点处提供附加音频输入。尽管在图12A-C中未示出,但是每个附加记录可以用于提供新音轨(或音符集合)以在实况循环内描绘。可以通过添加附加乐器图标1210将分离音轨与不同乐器相关联。
图13A、13B和13C一起图示了用于经由图12A-C的界面手动更改先前生成的音符的过程的一个示例。如图13A中所示,终端用户可以使用指针1304来选择一个特定音符1302。如图13B中所示,终端用户然后可以与另一水平线1208垂直地拖拽音符,以更改所拖拽的音符的音高。在该示例中,音符1302被示作移动到更高基频。可以想到,音符还可以被移动到乐器的基频之间的频率。如图13C中所示,还可以通过选择音符的形态描绘的结尾并且然后水平地拖拽该音符来更改该音符的定时。在图13C中,音符1304的持续时间已经被延长。同样如图13C中所描绘,延长音符1304的结果是由量化器206对音符1306的自动缩短,以维持节拍和避免由单个乐器演奏重叠音符。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,可以使用相同或相似的方法来缩短所选音符的持续时间,从而导致另一相邻音符的自动延长,并且进一步地,可以以关于修改形态描绘的尾部而图示的相同方式从该描绘的开始处改变音符的持续时间。本领域技术人员还应当类似地理解,可以使用相同方法来从音轨中删除音符或者拷贝音符以在音轨的其他部分处插入。
图14A、14B和14C图示了与系统100一起使用的又一示例性视觉显示器。在该示例中,该视觉显示器使用户能够记录和修改与打击乐器相关联的多音轨记录。首先转至图14A,控制空间1400包括网格1402,网格1402表示一个或多个打击乐器音轨内的分离声音的回放和定时。如图12A-C的图示中那样,在图14A-C的示例中描绘了分区1-4,每个分区具有四个节拍。例如,在图14A中,网格1402的第一行表示与第一低音鼓相关联的声音的回放和定时,网格1402的第二行表示与小军鼓相关联的声音的回放和定时,网格1402的第三和第四行表示与铙钹相关联的声音的回放和定时,并且网格1402的第五行表示与落地鼓相关联的声音的回放和定时。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,这些特定打击乐器及其在网格1402上的顺序仅意在图示构思,而不应当被视为将构思限于该特定示例。
网格中的每个框表示与相关打击乐器相关联的声音的定时增量,其中,非阴影框指示没有声音要在该时间增量处被播放,并且阴影框指示在该时间增量处要播放声音(与相关打击乐器的音色相关联)。因此,图14A图示了没有声音要被播放的示例,图14B图示了要在由阴影框指示的时间处播放低音鼓的声音的示例,并且图14C图示了要在由阴影框指示的时间处播放符号和低音鼓的声音的示例。对于每个打击乐器音轨,可以以各种方式将与特定打击乐器相关联的声音添加至乐器的音轨。例如,如图14B或14C中所示,可以提供回放条1404,以在视觉上指示在实况循环期间多音轨记录的当前回放位置的时间增量。因此,在图14B中,回放条指示第三小节的第一节拍当前正在被播放。然后,可以使用户能够通过在回放条1404处于与特定节拍相关联的框上时记录声音来以特定节拍添加与特定打击乐器相关联的声音。在一个实施例中,声音要与之相关联的乐器音轨可以由选择或敲击适当乐器的用户手动识别。在这种情况下,由用户作出的声音的特定特性和音高可能不重要,尽管可以想到,由用户作出的声音的音量可能影响针对打击乐器音轨生成的关联声音的增益。可替换地,由用户作出的声音可以指示声音要与之相关联的打击乐器。例如,用户可以发出声音“boom”、“tsk”或“ka”,以分别指示低音鼓、符号或筒鼓节拍。在又一实施例中,可以使用户能够通过点击或选择网格1402中的框来简单地添加或移除来自音轨的声音。
多曲段自动合成模块。
MTAC模块144(图1A)被配置为结合音频转换器140以及可选地结合RSLL 142进行操作,以实现对从一系列曲段导出的单个“最佳”曲段的自动制作。在图15中图示了MTAC模块144的一个实施例。在该实施例中,MTAC模块144包括用于对来自所记录的音频的每个曲段的分区进行打分的分区打分器1702以及用于基于由分区打分器1702识别的得分来集合单个“最佳”曲段的合成器1704。
分区打分器1702可以被配置为基于一个或多个准则来对分区进行打分,这可以利用在处理器2902上运行的一个或多个过程。例如,可以基于相对于针对总体乐曲选择的音调的分区的音调来对分区进行打分。通常,演奏者可能在不知道的情况下唱出走调音符。因此,还可以基于音符的音调与分区的合适音调之间的差异来对该分区内的音符进行打分。
然而,在许多情况下,新手终端用户可能不知道他想要唱什么音乐音调。因此,分区打分器1702还可以被配置为自动识别音调,这可以被称作“自动音调检测”。利用“自动音调检测”,分区打分器1702可以确定与终端用户的所记录的音频演奏的音调最接近的音调。系统50可以突出显示从自动检测到的音调走调的任何音符,并可以进一步将这些音符自动调整至处于自动确定的音调符号中的基频。
在图16中描绘了一种用于确定音乐音调的说明性过程。如第一框中所示,该过程利用对音调内的每个基频给出的权重,针对12个音乐音调(C,C#/Db,D#/Eb,E,F,F#/Gb,G,G#/Ab,A,A#/Bb,B)中的每一个对整个音轨进行打分。例如,某任意大调的音调权重阵列可能看起来像这样[1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1],这给以Do开始且以Re继续等等的音阶中的12个音符中的每一个指派权重。给每个音符(或来自主音的音程)指派权重适用于任何类型的音调。走调的音符被给出负权重。尽管权重的量值一般不那么重要,但是它们可以被调整至个体用户品味或者基于来自类型匹配器模块152的输入而调整。例如,在音调上的一些音对该音调来说更具决定性,因此其权重的量值可能较高。此外,不在音调上的一些音比其他音更普遍;其可以保持为负担具有较小量值。因此,将可能的是,用户或系统100(基于例如来自类型匹配器模块152的输入)开发大调的更改善的keyWeights(音调权重)阵列,其可以是[1, -1, .5, -.5, .8, .9, -1, 1, -.8, .9, -.2, .5]。12个大调中的每一个将与权重阵列相关联。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,可以通过选择参考示出音符在音调内的相对位置的任何文档而计及音调内的音的每个阵列的权重来适应小调(或任何其他音调)。
如图16的第三框中所示,将每个音符的对总体段落(或分区)的持续时间的相对持续时间乘以当前针对循环而分析的音调中的音符的音高等级的“权重”,以确定段落中的每个音符的得分。在每个段落的起始处,使得分归零,然后将如与当前音调比较的每个音符的得分彼此相加,直到在段落中不存在更多音符,并且过程循环回来以开始关于下一音调来分析段落。该过程的主循环的结果是反映段落中的每个音符的所有得分的合计的每个音调的单个音调得分。在图16的过程的最后一框中,具有最高得分的音调将被选择为BestKey(最佳音调)(即,对段落来说最适当)。如本领域技术人员将理解的那样,不同音调可能打成平局或具有足够相似的得分以实质上打成平局。
在一个实施例中,可以使用下述公式来确定音调中的音符的音高等级,由图17中的值“index(索引)”表示:index := (note.pitch – key +12) % 12,其中,note.pitch表示与乐器的特定音高相关联的数值,其中,优选地,该数值是按增加音高的顺序指派的。举钢琴为例,其具有88个音调,每个音调可以与1和88之间含1和88在内的数值相关联。例如,音调1可以是A0双踏A,音调88可以是C8第八个八度音阶,并且音调40可以是中央C。
可以期望,与利用前述方式实现的精度相比改进音乐音调确定的精度。在期望这种改进的精度的情况下,分区打分器1702(或者可替换地,和声器146(下面讨论))可以确定是否顶部4个最可能的音调(由初始音调确定方法(上面描述)确定)中的每一个具有一个或多个大调或小调模式。如本领域技术人员在其面前有本说明书时将理解的那样,在可能音调的数目越大则处理需求越大这一理解下,可以确定任何多个可能音调的大调或小调模式以实现音调符号精度上的改进。
可以通过对被馈给到分区打分器1702(或者在一些实施例中,由主奏音乐源2404馈给到和声器146)的音符执行音程分布来进行下述确定:是否可能音调中的每一个具有一个或多个大调或小调模式。如图16A中所示,使用12x12矩阵来执行该音程分布,以反映每个可能音高等级。最初,将该矩阵中的值设置为0。然后,对于该一系列音符中的每个音符到音符转移,将两个音符的持续时间的平均值加到由pitchClass(音高等级)第一音符:pitchClass第二音符定义的位置处保存的任何预先存在的矩阵值。因此,例如,如果该一系列音符是:
音符 E D C D E E
持续时间 1 0.5 2 1 0.5 1
这将得到图16A中描绘的矩阵值。然后,结合大调音程分布和小调音程分布(如下面所讨论)使用该矩阵,以计算小调和以及大调和。大调和小调音程分布中的每一个是12x12矩阵,其包含像图16A的矩阵那样的每个可能音高等级,其中,矩阵的每个索引具有-2与2之间的整数值,以对每个音调中的各种音高的值进行加权。如本领域技术人员将理解的那样,音程分布中的值可以被设置为整数值的不同集合,以实现不同的音调分布。在图16B中示出了大调音程分布的值的一个可能集合,而在图16C中示出了小调音程分布的值的一个可能集合。
然后,可以计算小调和以及大调和如下:
1. 将小调和以及大调和初始化为0;
2. 对于音符转移阵列中的每个索引,将整数值乘以其在小调音程分布矩阵中的对应位置中的值;
3. 将每个乘积加到现行(running)小调和;
4. 对于音符转移阵列中的每个索引,将所存储的值乘以其在大调音程分布矩阵中的对应位置;以及
5. 将乘积加到现行大调和。
在针对矩阵中的每个索引完成这些乘积求和计算之后,将大调和以及小调和的值与被指派给通过初始音调符号而确定的多个最可能音调的得分进行比较,并且进行关于哪个音调/模式组合为最佳的确定。在针对矩阵中的每个索引完成这些乘积求和计算之后,将大调和以及小调和的值乘以其在每个音程分布中的对应矩阵索引。随后,这些乘积之和构成给定集合的音符处于该模式中的可能性的最终评价。音程,对于图16A中阐述的示例,对于C大调模式(图16B),我们将具有:(1.25 * 1.15) + (1.5 * .08) + (.75 * .91) + (.75 * .47) + (.75 * -.74) = 1.4375 + .12 + .6825 + .3525 + (-.555) = 2.0375。因此,对于C大调,示例旋律将得到2.0375的得分。
然而,然后,为了确定该模式是否为小调的值,我们需要将小调音程分布移位到相对小调中。这样做的原因在于:音程分布被设置以将该模式的主音(不是音调符号的基音)视为我们的第一列和第一行。我们可以通过查看潜在的音乐来理解理解为什么这是真的。任何给定的音调符号可以是大调或小调。例如,与C大调的音调符号兼容的大调模式是C大调模式。与C大调的音调符号兼容的小调模式是A(自然)小调模式。由于当考虑C小调模式时,我们的小调音程中的左上角数值表示从C到C的转移,因此比较的所有索引将被移位3个步长(或者更具体地,向右3列且向下3行),这是由于相对于大调符号的主音/基音,小调符号的主音/基音向下3个半音。一旦被移位3个步长,在A小调模式中,我们的音程分布中的左上角数值表示从A到A的转移。使用我们的图16A示例来达到数字(在该移位后的矩阵的情况下):(1.25 * .67) + (1.5 * -.08) + (.75 * .91) + (.75 * .67) + (.75 * 1.61) = .8375 + (-.12) + .6825 + .5025 + 1.2075 = 3.11。然后,为了将两个模式结果进行比较,我们需要归一化这两个音程矩阵。为了这样做,我们简单地针对每个矩阵将所有矩阵值加在一起并除以和值。我们发现,大调矩阵具有累积和的大致1.10比率,音程,我们将我们的小调模式值乘以该量,以归一化两个模式结果。音程,来自我们示例的结果将是:音符的示例性集合最可能处于A小调模式,这是由于3.11 * 1.10 = 3.421,其大于2.0375(大调模式的结果)。
上述相同过程将适用于任何音调符号,只要音符转移的初始矩阵相对于所考虑的音符即可。因此,使用图16A作为参考,如果在不同的示例作曲中,所考虑的音调符号是F大调,则初始矩阵行和列以及由图16B和图16C表示的音程分布的行和列将以F开始并以E结束,而不是以C开始并以B结束(如图16A中所示)。
在终端用户知道他们希望处于哪个音乐音调的另一实施例中,用户可以标识该音调,在这种情况下,将仅针对由终端用户选择的一个音调而不是所指示的12个音调来开始图16的过程。以这种方式,可以针对由用户以上面讨论的方式选择的单个预定音调来判断分区中的每一个。
在另一实施例中,还可以针对弦约束来判断分区。弦序列是可在用户希望记录伴奏时采用的音乐约束。典型地,伴奏可以被认为是弦音轨中的符号的写音谱,并还可以包括弦自身。当然,演奏脱弦的音符是可允许的,但是典型地,必须在其音乐品质上对其进行判断。
在图17、17A和17B中描绘了一种用于基于弦序列约束对分区的和声的质量进行打分的说明性过程。在图17的过程中,根据该所选择的弦将与音频音轨的给定分区(或小节)和声得多好来针对每个通路对一个所选的弦进行打分。每个音符的弦得分是奖励和乘数之和。在过程1700的第二框中,针对段落中的每个音符将变量重置为0。然后,将音符的音高的关系与当前所选的弦进行比较。如果音符处于所选弦中,则将乘数设置为在过程1700的第一框中设置的chordNoteMultiplier的值。如果音符是和弦基音(例如,C是C大调和弦的和弦基音)的三全音(即,跨越三个整个音的音乐音程),则将乘数设置为tritoneMultiplier的值(如图17A中所示,其为负,从而指示音符未较好地与所选弦和声)。如果音符是高于基音的一个或八个半音(或者在小调和弦的情况下,高于基音的四个半音),则将乘数设置为nonKeyMultiplier的值(如图17A中所示,其同样为负,从而指示音符未较好地与所选弦和声)。未落入到前述类别中的音符被指派有零乘数,并因此对弦得分没有影响。如图17B中所示,乘数由当前音符所占用的段落的片段持续时间扩缩。如果音符处于段落的开始处,或者如果音符是针对分析而选择的当前弦的基音,则将奖励加到弦得分。关于该段落的弦得分是针对每个音符的该计算的累积。一旦第一所选弦被分析,系统50就可以重新使用过程1700来分析其他所选弦(一次一个)。可以将来自通过过程1700的每个通路的弦得分彼此比较,并且,最高得分将确定将被选择以伴奏该段落的弦为最适合于该段落。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,两个或更多个弦可能被发现具有关于所选段落的相同得分,在这种情况下,系统50可以基于各种选择来在这些弦之间决定,这些选择包括但不限于音乐音轨的类型。本领域技术人员在其面前有本说明书、附图和权利要求书时还应当理解,上面阐述的打分在某种程度上是对西洋音乐中盛行的音乐类型来说最佳的设计选择的问题。相应地可以想到,可以针对不同类型的音乐更改乘数的选择准则,和/或可以改变在图17中被指派给的各种乘数选择准则的乘数值,以在不脱离本发明的精神的情况下反映不同的音乐品味。
在另一实施例中,分区打分器1702还可以针对一系列特定所允许的音高值(诸如,如在西洋音乐中典型的半音)来判断分区。然而,类似地可以想到其他音乐传统(诸如,中东文化的音乐传统)的四分音。
在另一实施例中,还可以基于分区内的各个音高之间的转移质量来对该分区进行打分。例如,如上所讨论,可以使用音高脉冲检测来识别音高中的改变。在一个实施例中,相同的音高脉冲检测还可以用于识别分区中的音高转移的质量。在一种方法中,系统可以利用阻尼谐波振荡器一般满足下述等式的一般理解的构思:
其中,是振荡器的非阻尼角频率,并且是被称为阻尼比率的系统相关常量。(对于具有弹簧常量k和阻尼系数c的弹簧上的质量,。)应当理解,阻尼比率的值临界地确定阻尼系统的行为(例如,过阻尼、临界阻尼(=1)或欠阻尼)。在临界阻尼系统中,系统在没有振荡的情况下尽可能快地返回至平衡。一般地,专业歌手能够随临界阻尼的响应改变他/她的音高。通过使用音高脉冲分析,可以确定音高改变事件的真实起始和音高改变的质量二者。特别地,音高改变事件是所推断的阶跃函数,而音高改变的质量由值确定。例如,图19描绘了阻尼谐波振荡器针对三个值的阶跃响应。一般地,值>1表示较差的嗓音控制,其中,歌手“搜寻”目标音高。因此,的值越大,则被归于分区的音高转移得分越差。
在图20中示出了用于对音高转移的质量进行打分的另一示例性方法。在该实施例中,分区的打分可以包括:接收音频输入(过程2002);将音频输入转换为示出音高改变之间的真实振荡的音高事件的形态(过程2004);使用音高事件的形态来构造在音高事件之间具有临界阻尼音高改变的波形(过程2006);计算所构造的波形中的音高与原始音频波形之间的差值(过程2008);以及基于该差值来计算得分(过程2010)。在一个实施例中,得分可以基于“滤波后的音高”与“重构后的音高”之间的有符号的均方根误差。简单来说,可以给终端用户指示该音高偏离于“理想”音高多远的这种计算,这进而可以变成音高转移得分。
可以利用上述打分方法以针对显式参考或隐式参考对分区进行打分。显式参考可以是现有的或预先记录的旋律音轨、音乐音调、弦序列或音符范围。典型地,当演奏者与另一音轨一致地记录时,使用显式情况。显式情况可以被类推为判断卡拉OK,其中,存在音乐参考,并且正在使用先前已知旋律作为参考来分析音轨。另一方面,隐式参考可以是根据已由音轨记录器202保存在数据存储器132中的多个先前记录的曲段而计算的“目标”旋律(即,系统在演奏者正在意图制作的音符处的最佳猜测)。典型地,当用户正在记录歌曲的主奏旋律且在其期间没有参考可用(诸如,分区打分器1702不知道的原始乐曲或歌曲)时,使用隐式情况。
在参考是隐式的情况下,可以根据曲段来计算参考。典型地,这是通过确定每个先前记录的音轨的N个分区中的每一个的形态的质心来实现的。在一个实施例中,形态集合的质心简单地是通过取得形态中的每个事件的均值平均音高和持续时间而构造的新形态。这针对n = 1至N而重复。然后,所得到的质心将被视为隐式参考音轨的形态。在图18中描绘了以这种方式针对单个音符而确定的质心的一个图示,其中虚线描绘了所得到的质心。可以想到,可以使用其他方法来计算质心。例如,可以使用每个曲段的形态集合的模态平均值来替代均值平均。在任一种方法中,在计算平均或均值之前,可以丢弃任何偏远值。本领域技术人员在其面前有本说明书、附图和权利要求书时将理解,可以基于在说明书中阐述的原理来开发用于确定曲段质心的附加选项,而不必进行过度的实验。
如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,可以将用于对分区进行打分的任何数目的前述独立方法进行组合,以提供对考虑的更宽集合的分析。可以对每个得分给出相同或不同的权重。如果对得分给出不同权重,则其可以基于如类型匹配器模块152确定的乐曲的特定类型。例如,在某种音乐类型中,可以在演奏的一个方面上放置相对于另一个方面更高的值。对哪些打分方法被应用的选择还可以被自动地选择或由用户手动地选择。
如图23中所示,可以从多个所记录的音轨中的任一个选择音乐演奏的分区。合成器1704被配置为将来自多个所记录的音轨的分区进行组合以创建理想音轨。该选择可以通过图形用户界面而手动进行,在该图形用户界面中,用户可以查看针对分区的每个版本而标识的得分,对分区的每个版本进行试音,并将一个版本选择为“最佳”音轨。可替换地或附加地,可以通过基于上面介绍的打分构思选择具有最高得分的每个音轨分区的版本来自动执行分区的组合。
图21图示了用于使用MTAC模块144与音频转换器140相结合从一系列曲段提供单个“最佳”曲段。在步骤2102中,用户设置配置。例如,用户可以选择是要针对显式参考还是隐式参考对分区进行打分。用户还可以选择一个或多个准则(即,音调、旋律、弦、目标等)以用于对分区进行打分,和/或提供用于标识每个准则的相关权重或重要性的等级。然后,在步骤2104中记录曲段,在步骤2106中对曲段进行分区,并且使用上述过程在步骤2108中将曲段转换为形态。如果正在采用RSSL模块142,则如上所述,在曲段的结尾处,音轨可以自动循环回到起始,从而允许用户记录另一曲段。此外,在记录期间,用户可以选择听到节拍音轨、先前记录的音轨、任何单个音轨的MIDI版本、或者如上关于显式或隐式参考讨论的“目标”音轨的MIDI版本(见图18、19、20和21)。这允许用户收听他可针对其制作下一(有希望改进的)曲段的参考。
在一个实施例中,终端用户可以选择针对其应当对所记录的曲段进行打分的参考和/或一个或多个方法,步骤2110。例如,用户的配置可以指示应当针对音调、旋律、弦、根据一个或多个音轨的质心而构造的目标形态、或上面讨论的任何其他方法对分区进行打分。引导选择可以由用户手动地进行或由系统自动地设置。
在步骤2112中对曲段的分区进行打分,并且在步骤2114中,可以给用户指示曲段中的每个分区的打分的指示。这可以通过下述操作来有益于终端用户:给终端用户提供终端用户的音高或定时在何处跑偏的指示,使得终端用户可以在未来的曲段中改进。在图22中图示了用于图示分区的得分的图形显示的一个图示。特别地,图22的垂直条描绘了如从音频源记录的音频波形,黑实线(主要是水平的)描绘了音频源正在尝试模仿的理想波形,并且箭头表示音频源(例如,歌手)的音高与理想波形(被称为显式参考)有多不同。
在步骤2116中,终端用户手动确定是否记录另一曲段。如果用户期望另一曲段,则该过程返回至步骤2104。一旦终端用户已经记录音轨的所有多个曲段,则该过程继续至步骤2118。
在步骤2118中,可以给用户提供关于是要手动地还是自动地从所有曲段汇集成“最佳”总体音轨的选择。如果用户选择创作手动乐曲,则用户可以在步骤2120中简单地对第一曲段的第一分区进行试音,接下来对第二曲段的第一分区进行试音,直到候选第一分区中的每一个已被试音为止。在图23中示出了用于促进分区的各个曲段之间的试音和选择的一个界面,其中,终端用户使用指点设备(诸如鼠标)来点击针对每个分区取得的每个音轨以提示该音轨的回放,并且随后,用户然后通过例如双击期望音轨和/或点击并拖拽期望音轨到底部最后汇集的音轨2310中将这些候选分区之一选择为该分区的最佳演奏。用户针对第二、第三和后续分区重复该过程,直到他达到音轨的结尾为止。然后,在步骤2124中,系统通过将所选分区一起粘接为单个新音轨来构造“最佳”音轨。然后,在步骤2126中,用户还可以决定是否记录另外的音轨以改进其演奏。如果用户选择自动汇集“最佳”音轨,则在步骤2122中,基于每个曲段中的每个分区的得分(优选地,使用针对每个分区取得的最高得分)将新音轨粘接在一起。
在图23中还图示了从实际记录音轨的分区粘接在一起的虚拟“最佳”音轨的一个示例。在该示例中,最后合辑音轨2310包括来自曲段1的第一分区2302、来自音轨5的第二分区2304、来自曲段3的第三分区2306和来自音轨2的第四分区2308,其中未使用来自音轨4的分区。
和声器。
和声器模块146实现用于将来自伴奏源的音符与主奏源的音乐音调和/或弦进行和声的过程,主奏源可以是嗓音输入、乐器(真实或虚拟)、或者用户可能可选择的预先记录的旋律。结合图24和25来描述伴奏源的该和声过程的一个示例性实施例。这些图中的每一个被图示为数据流图(DFD)。这些图提供了通过信息系统的数据的“流”的图形表示,其中,数据项目经由内部过程从外部数据源或内部数据存储器流动到内部数据存储器或外部数据宿。这些图不意图提供与过程的定时或排序有关或与过程将是顺序地还是并行地操作有关的信息。此外,将输入控制流转换为输出控制流的控制信号和过程总体上由虚线指示。
图24描绘了和声器模块146一般可以包括变换音符模块2402、主奏音乐源2404、伴奏源2406、弦/音调选择器2408和控制器2410。如所示的那样,变换音符模块可以接收来自主奏音乐源2404的主奏音乐输入以及来自伴奏源2406的伴奏音乐输入。主奏和伴奏音乐均可以由实况音频或先前存储的音频组成。在一个实施例中,和声器模块146还可以被配置为基于主奏音乐输入的旋律来生成伴奏音乐输入。
变换音符模块2402还可以从弦/音调选择器2408接收音乐音调和/或所选的弦。来自控制器2410的控制信号给变换音符模块2402指示音乐输出是否应当基于主奏音乐输入、伴奏音乐输入和/或来自弦/音调选择器2408的音乐音调或弦以及应当如何处理该变换。例如,如上所述,可以从主奏旋律或伴奏源或者甚至从由弦/音调选择器2408指示的手动选择的音调或弦导出音乐音调以及弦。
基于控制信号,变换音符模块2402可以可替换地将主奏音乐输入变换为与弦或音乐音调谐和的音符,从而产生和谐的输出音符。在一个实施例中,使用预先建立的谐和音度量将输入音符映射到和谐音符。在下面更详细讨论的实施例中,控制信号还可以被配置为指示是否可以在没有由变换音符模块2402进行的变换的情况下在伴奏音乐输入中允许一个或多个“蓝色音符”。
图25图示了总体上示出可由图24的变换音符模块2402在选择音符以便与主奏音乐源2404“和声”时执行的过程的更多细节的数据流图。如所示的那样,在过程2502处接收主奏音乐输入,其中,确定主奏旋律的音符。在一个实施例中,可以使用所描述的技术(诸如,将主奏音乐输入转换为标识其发动、持续时间和音高或者其任何子集或组合的形态)之一来确定主奏旋律的音符。当然,如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,可以使用确定来自主奏旋律的音符的其他方法。例如,如果主奏音乐输入已经处于MIDI格式,则确定音符可以简单地包括从MIDI流提取音符。在确定主奏旋律的音符时,该音符被存储在主奏音乐缓冲器2510中。在过程2504处从伴奏源2406(如图24中所示)接收所提出的伴奏音乐输入。过程2504确定伴奏的音符并可以从MIDI流提取MIDI音符(在可用时),将音乐输入转换为标识其发动、持续时间和音高或者其任何子集或组合的形态,或者使用本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的另一种方法。
在过程2506处,可以从在主奏音乐缓冲器2516中发现的音符确定主奏旋律的弦。可以通过以上面与图17相关联地阐述的相同方式分析音符或者通过使用本领域技术人员所理解的另一种方法(诸如,使用如下面描述的弦匹配器154执行的隐马尔可夫模型的和弦进行分析)来确定主奏旋律的弦。隐马尔可夫模型可以基于本文与基于全音阶和声理论的弦概率转移矩阵相关联地讨论的弦和声算法来确定最可能弦序列。在该方法中,将给定弦与旋律的小节正确地和声的概率乘以从先前弦到当前弦的转移的概率,并且然后找到最佳路径。可以分析音符的定时以及音符自身(除了其他可能考虑(诸如类型)之外),以确定主奏旋律的当前弦。一旦该弦已被确定,就将其音符传递至变换音符2510以等待由控制信号从控制谐和音2514进行的可能选择。
在图25的过程2508处,可以确定主奏旋律的音乐音调。在一个实施例中,上面参照图16描述的过程可以用于确定主奏旋律的音调。在其他实施例中,可以使用包括隐马尔可夫模型等的使用的统计技术来确定来自主奏音乐缓冲器中存储的音符的音乐音调。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,类似地可以想到确定音乐音调的其他方法,包括但不限于过程1600和统计技术的使用的组合。过程2508的输出是向变换音符2510的许多输入之一。
过程2510(图25)“变换”用作伴奏的音符。向过程2510中的伴奏音乐音符输入的变换由(下面相当详细地讨论的)控制谐和音2514的输出确定。基于控制谐和音2514的输出,变换音符过程2510可以在下述各项之间进行选择:(a)从过程2504输入的音符(其在图24中被示作已从伴奏源2406接收伴奏音乐输入);(b)来自弦的一个或多个音符(其在图24中被示作已被从弦/音调选择器2408接收);(c)来自所选音乐音调的音符(已从弦/音调选择器2408(如图24中所示)接收音调的标识);(d)来自从过程2506输入的弦的一个或多个音符(其被示作已基于从主奏音乐缓冲器2516中的音符确定的音符和音乐音调);或者(e)由过程2508从主奏音乐缓冲器2516中的音符确定的音乐音调。
在过程2512处,可以通过修改伴奏音乐输入的音符和修改伴奏音乐输入的音符的定时来呈现变换后的音符。在一个实施例中,可听地播放所呈现的音符。附加地或可替换地,还可以可视地呈现变换后的音符。
控制谐和音2514表示该过程基于来自控制由变换音符过程2510对音符作出的选择的一个或多个源的一个或多个输入而作出的一系列决定。控制谐和音2514从控制器2410(见图24)接收多个输入控制信号,其可以直接来自用户输入(可能来自图形用户输入或预置配置)、来自和声器模块146、类型匹配器模块152或另一外部过程。在可由控制谐和音2514考虑的可能用户输入当中的是需要输出音符具有下述状态的用户输入:(a)被限制到经由弦/音调选择器2408(见图24)选择的弦;(b)被限制到经由弦/音调选择器2408(见图24)选择的音调;(c)与由2408(见图24)选择的弦或音调和声;(d)被限制到由过程2506确定的弦;(e)被限制到由过程2508确定的音调;(f)与从主奏音符确定的弦或音调和声;(g)被限制在特定音范围内(例如低于中央C、处于中央C的两个八度音阶内等等);和/或(h)被限制在特定音选择(即小调、增音等)内。
在一种方法中,控制谐和音2514可以进一步包括用于发现“坏发声”音符(基于所选和弦进行)并将其对齐(snap)到最接近的弦音的逻辑。“坏发声”音符仍将处于正确音调中,但其将在所演奏的弦上发声较坏。将音符归类为与在其上演奏音符的弦相关的3个不同集合。该集合被定义为“chordTones(弦音)”、“nonChordTones(非弦音)”和“badTones(坏音)”。所有音符仍将处于正确的音调中,但它们将具有其在所演奏的弦上发声有多“坏”的不同程度;chordTones发声最好,nonChordTones发声合理地好,并且badTones发声较坏。此外,可以定义“严格性”变量,其中,基于音符应当有多严格地依附于弦来对音符进行归类。这些“严格性”级别可以包括:StrictnessLow(严格性低)、StrictnessMedium(严格性中)和StrictnessHigh(严格性高)。对于每个“严格性”级别,三个集合chordTones、nonChordTones和badTones变化。此外,对于每个“严格性”级别,这三个集合始终以下述这样的方式彼此相关:chordTones始终是构成弦的音,badTones是将在该严格性级别处发声“较坏”的音,并且nonChordTones是未在任一集合中计及的剩余的全音阶音。由于弦是可变的,因此可以具体地针对每个严格性级别对badTones进行归类,而可以在给定特定弦时对其他两个集合进行归类。在一个实施例中,用于识别“坏发声”音符的规则是静态的,如下:
StrictnessLow(badTones):
大调和弦上的4(例如,C大调上的F);
大调和弦上的升4(例如,C大调上的F#);
小调和弦上的小6(例如,C小调上的G#);
小调和弦上的大6(例如,C小调上的A);以及
任何和弦上的小2(例如,C小调或C大调上的C#)
StrictnessMedium(badTones):
大调和弦上的4(例如,C大调上的F);
大调和弦上的升4(例如,C大调上的F#);
小调和弦上的小6(例如,C小调上的G#);
小调和弦上的大6(例如,C小调上的A);以及
任何和弦上的小2(例如,C小调或C大调上的C#);
大调和弦上的大7(例如,C上的B)
StrictnessHigh(badTones):
未落在和弦上的任何音符(不是chordTone)。
成为“坏”音符单独可能不是校正的唯一基础,可以使用基于经典旋律理论的基本对位法逻辑来识别将在上下文中发声较坏的那些音符。还可以就上述严格性级别而言动态定义是否音符被对齐到chordTone的规则。每个级别可以在其对应的严格性级别处使用上述音符集合定义,并可以进一步就“stepTones(步进音)”而言加以确定。stepTone被定义为:在时间上落到紧接在chordTone前且距chordTone 2个或更少半音的任何音符;以及在时间上落到紧接在chordTone后且也距chordTone 2个或更少半音的任何音符。此外,每个级别可以应用下述特定规则:
StrictnessLow:对于StrictnessLow,将stepTones扩展到距chordTone 2个音符,使得向或从另一音符(该另一音符向或从chordTone步进)步进的任何音符也被认为是stepTone。此外,将作为如StrictnessLow定义的badTone的任何音符对齐到chordTone(最接近的chordTone将始终在全音阶框架中距最多2个半音),除非音符是stepTone。
StrictnessMedium:对于StrictnessMedium,不将stepTones扩展到在时间上距chordTones 2个音符的音符,由于其处于StrictnessLow。将作为如StrictnessMedium所定义的badTone的任何音符对齐到chordTone。此外,还将落到强节拍的沉重节拍(down beat)上的任何nonChordTone对齐到弦音。沉重节拍被定义为在任何节拍的后一半之前开始的任何音符或者在任何节拍的整个前一半内持续的任何音符。强节拍可以被定义如下:
· 对于具有可三均等分的节拍数目(3/4、6/8、9/4)的韵律,第一节拍后的每第三节拍以及第一节拍是强节拍(在9/4中,1、4和7);
· 对于不可三均等分而可二均等分的韵律,强节拍是第一节拍以及此后的每第2节拍(在4/4中:1和3;在10/4中:1、3、5、7、9);
· 对于不可二或三均等分且也不具有5个节拍(5是特殊情况)的韵律,第一节拍以及此后除倒数第二节拍外的每第二节拍被认为是强节拍(在7/4中:1、3、5);
· 如果韵律具有每条5个节拍,则强节拍被认为是1和4。
StrictnessHigh:将由StrictnessHigh定义为badTone的任何音符对齐到chordTone。然而,如果音符被对齐到chordTone,则其不会被对齐到该弦的第3音。例如,如果在弦C上对齐D,则音符可以被对齐到C(基音)而不是E(第3音)。
向控制谐和音2514的另一输入是谐和音度量,其实质上是来自变换音符过程2510的反馈路径。首先,“谐和音”一般被定义为关于某基本声音有利于悦耳和声的声音。谐和音还可以被认为是不谐和音(其包括自由使用的任何声音,即便它们不和谐)的对立物。因此,如果终端用户已经使控制信号经由将来自变换音符过程2510的输出音符限制到经由弦/音调选择器2408而手动选择的弦或音调的控制器2410而被馈给到控制谐和音2514中,那么可能的是,输出音符中的一个或多个对主奏音乐缓冲器2516来说不和谐。输出音符不和谐的指示(即,谐和音度量)将最终被反馈到控制谐和音2514。尽管控制谐和音2514被设计为由于反馈和编程系统中的固有等待时间而将由变换音符2510生成的输出音符音轨迫使回到与主奏音乐谐和,但是多个不和谐音符被期望允许通过到音乐输入中。事实上,允许至少一些不和谐音符以及甚至由系统制作的音乐中的不和谐裂痕应当便于系统50制成乐曲的较不机械的发声形式,这是发明人所期望的。
在一个实施例中,也可被输入到控制谐和音2514中的另一控制信号指示是否在音乐输出中允许一个或多个“蓝色音符”。如上所提及,出于本说明书的目的,术语“蓝色音符”被给予了比其在蓝调音乐中作为不处于正确音乐音调或弦中但在不变换的情况下被允许演奏的音符的普通使用更宽的含义。除了利用系统的等待时间来提供“蓝色音符”的某种最小插入外,可以使用一个或多个蓝调累积器(优选地,软件编码的而不是硬线的)来提供蓝色音符的某种附加回旋。因此,例如,一个累积器可以用于限制单个分区内的蓝色音符的数目,另一累积器可以用于限制邻近分区中的蓝色音符的数目,又一累积器可以用于限制每一些预定时间间隔的蓝色音符的数目或者音符的总数。换言之,经由谐和音度量的控制谐和音可以对下述任何一项或多项进行计数:流逝的时间、音乐输出中的蓝色音符的数目、音乐输出中的总音符的数目、每分区的蓝色音符的数目等。预定的、自动确定的以及实时确定/调整的最高限度可以被实时编程为预置/预定值。这些值也可以受当前乐曲的类型影响。
在一个实施例中,系统100还可以包括用于提供伴奏音乐源的超级键盘。超级键盘可以是物理硬件设备或者由计算设备生成和显示的图形表示。在任一实施例中,超级键盘可以被认为是图24的弦/曲调选择器2408的手动输入。超级键盘优选地包括动态映射到处于关于现有旋律的音乐音调和/或弦(即,弦的一部分)中的音符的键盘上的输入键的至少一行。超级键盘还可以包括与现有旋律不和谐的输入键的行。然而,然后,可以将在超级键盘上按压的不和谐输入键动态映射到处于现有旋律的音乐音调中的音符或者作为现有旋律的弦音符的音符。
在图26中图示了根据本发明的超级键盘的一个实施例。关于标准钢琴的音符示出了图26中所示的实施例,尽管将理解,超级键盘可以用于任何乐器。在图26中所示的实施例中,超级键盘的输入键的顶行2602映射到标准钢琴音符上;中间行2604映射到处于现有旋律的音乐音调中的音符上;并且底行2606映射到处于当前弦内的音符上。更特别地,顶行暴露了如在规则钢琴中那样每八度音阶12个音符,中间行暴露了每八度音阶8个音符,并且底行暴露了每八度音阶3个音符。在一个实施例中,中间行中的每个输入键的颜色可以依赖于旋律的当前音乐音调。由此,当旋律的音乐音调改变时,被选择以在中间行中显示的输入键也改变。在一个实施例中,如果不和谐音乐音符由用户从顶行输入,则超级键盘还可以代之以被配置为自动演奏和谐音符。以这种方式,演奏者可以以降低他所选择的行的逐渐受限的方式对主奏音乐进行伴奏。然而,还可以想到其他布置。
图27A图示了根据本发明的弦选择器的一个实施例。在该实施例中,弦选择器可以包括弦轮2700的图形用户界面。弦轮2700描绘了处于关于现有旋律的音乐音调中的弦。在一个实施例中,弦轮2700显示从当前选择的音乐音调导出的弦。在一个实施例中,当前选择的音乐音调由旋律确定,如上所讨论。附加地或可替换地,弦轮的最外侧同心圆提供了用于选择音乐音调的机构。在一个实施例中,用户可以通过从弦轮2700选择弦,经由弦/音调选择器2408来输入弦。
在一个实施例中,弦轮2700描绘了与当前选择的音乐音调相关的七个弦:三个大调和弦、三个小调和弦和一个减和弦。在该实施例中,减和弦位于弦轮的中心处;三个小调和弦围绕减和弦;并且三个大调和弦围绕三个小调和弦。在一个实施例中,使演奏者能够使用最外侧同心圆来选择音乐音调,其中,由弦轮描绘的七个弦中的每一个由所选音乐音调确定。
图27B图示了在系统50的操作期间的特定时刻处根据本发明的弦选择器的另一可能实施例。在该实施例中,该弦选择器可以包括弦花2750。像弦轮2700那样,弦花2750描绘了在音乐上落在当前音频音轨的当前音乐音调内的弦的至少子集。并且,弦花2750还指示了当前正在演奏的弦。在图27B中所示的示例中,音调是C大调(如可从在花瓣上和在中心处包括的大调和弦以及小调和弦的标识确定),并且当前演奏的弦由在中心处描绘的弦指示,该弦在所图示的回放时间中为C大调。弦花2750被布置为提供关于任何所描绘的弦紧跟在当前演奏的弦之后的概率的视觉线索。如图27B中所描绘,最可能的和弦进行将来自当前演奏的C大调至G大调,接下来最可能的进行将是F大调,接着可能性是A小调。在这种意义上,任何弦将跟随另一个的可能性不是数学意义上的严密概率,而是特定音乐类型中的特定和弦进行的频率的一般构思。如本领域技术人员在其面前由本说明书、附图和权利要求书时将理解的那样,当主奏音轨得到不同弦的计算时,那么弦花2750将改变。例如,比方说,主奏音乐音轨的下一分区被实际确定为与降B大调相对应,那么该花的中心将示出具有降号的大写B。进而,在C大调的音调中发现的另一弦将绕降B“旋转”到指示任何特定弦为该进行中的下一个的相对可能性的布置中。
音轨共享器模块。
返回至图1A中的系统100的图,音轨共享器模块148可以实现系统100的音轨或多音轨记录的发射和接收。在一个实施例中,可以从远程设备或服务器传送或接收这种音轨。音轨共享器模块148还可以执行与音轨的共享相关的管理操作,诸如实现支付和记账信息的账户登录和交换。
声音搜索器模块。
声音搜索器模块150(也在图1A中示出)可以实现与发现先前记录的音轨或多音轨记录相关的操作。例如,基于可听输入,声音搜索器模块150可以搜索先前记录的类似音轨和/或多音轨记录。可以对特定设备50或者其他联网设备或服务器执行该搜索。然后,可以经由该设备来呈现该搜索的结果,并且可以后续访问、购买或以其他方式获取音轨或多音轨记录以用在设备50上或以其他方式用在系统100内。
类型匹配器模块。
类型匹配器模块152(也在图1A中示出)被配置为识别对音乐类型来说公共的弦序列和节拍分布。即,用户可以输入或选择特定类型或者具有与类型匹配器模块152关联的类型的示例性频带。然后,可以通过应用具有每个所生成的音频音轨的所指示的类型的一个或多个特点来执行针对每个所记录的音轨的处理。例如,如果用户将“爵士乐”指示为期望类型,则可以应用所记录的可听输入的量化,使得节拍的定时可以趋向于被切分。此外,从可听输入生成的所得到的弦可以包括传统地与爵士乐音乐相关联的一个或多个弦。此外,“蓝色音符”的数目可以高于在比方说经典段中将允许的数目。
弦匹配器模块。
弦匹配器154提供音高和弦相关服务。例如,弦匹配器154可以执行单声道音轨的智能音高校正。这种音轨可以是从可听输入导出的,并且音高校正可以包括修改输入的频率以将可听输入的音高与特定预定频率对准。弦匹配器154还可以构建和改善对在先前记录的多音轨记录中包括的现有旋律的伴奏。
在一个实施例中,弦匹配器154还可以被配置为基于先前演奏的弦来动态识别音频音轨的适当未来弦的概率。特别地,在一个实施例中,弦匹配器142可以包括音乐的数据库。然后,使用隐马尔可夫模型与该数据库相结合,可以基于音频音轨中出现的先前弦来确定未来和弦进行的概率。
网络环境。
如上所讨论,设备50可以是能够执行上述过程的任何设备,且不必联网至任何其他设备。然而,图28示出了在其中可实施本发明的网络环境的一个可能实施例的部件。不是所有部件都是实施本发明所需要的,并且在不脱离本发明的精神或范围的情况下,可以作出部件的布置和类型中的变型。
如所示的那样,图28的系统2800包括局域网(“LAN”)/广域网(“WAN”)—(网络)2806、无线网络2810、客户端设备2801-2805、音乐网络设备(MND)2803和外围输入/输出(I/O)设备2811-2813。客户端设备2801-2805中的任何一个或多个可以由如上所述的设备100组成。当然,尽管图示了客户端设备的若干示例,但是应当理解,在图28中公开的网络的上下文中,客户端设备2801-2805可以包括能够处理音频信号和通过网络(诸如网络2805、无线网络2810等)发送音频相关数据的几乎任何计算设备。客户端设备2803-2805还可以包括被配置为便携式的设备。因此,客户端设备283-2805可以包括能够连接至另一计算设备并接收信息的几乎任何便携式计算设备。这种设备包括诸如蜂窝电话、智能电话、显示寻呼机、射频(RF)设备、红外(IR)设备、个人数字助理(PDA)、手持计算机、膝上型计算机、可佩戴计算机、平板计算机、将前述设备中的一个或多个进行组合的集成设备等等的便携式设备。由此,典型地,客户端设备2803-2805就能力和特征而言广泛地变化。例如,蜂窝电话可以具有数字键区以及在其上可仅显示文本的单色LCD显示器的几行。在另一示例中,有web能力的移动设备可以具有多点触摸敏感屏、触笔、以及在其中可显示文本和图形二者的彩色LCD显示器的若干行。
客户端设备2801-2805还可以包括能够通过网络进行通信以发送和接收包括音轨信息和社交网络信息在内的信息、执行可听生成音轨搜索查询等等的几乎任何计算设备。这种设备的集合可以包括典型地使用诸如个人计算机、多处理器系统、基于微处理器的或可编程的消费电子装置、网络PC等等的有线或无线通信介质进行连接的设备。在一个实施例中,客户端设备2803-2805中的至少一些可以通过有线和/或无线网络进行操作。
有web能力的客户端设备还可以包括被配置为接收和发送网页、基于web的消息等的浏览器应用。浏览器应用可以被配置为采用包括无线应用协议消息(WAP)等的几乎任何基于web的语言来接收和显示图形、文本、多媒体等。在一个实施例中,使浏览器应用能够采用手持设备标记语言(HDML)、无线标记语言(WML)、WMLScript、JavaScript、标准通用化25标记语言(SMGL)、超文本标记语言(HTML)、可扩展标记语言(XML)等来显示和发送各种内容。在一个实施例中,客户端设备的用户可以采用浏览器应用来与消息收发客户端(诸如文本消息收发客户端、电子邮件客户端等)进行交互以发送和/或接收消息。
客户端设备2801-2805还可以包括被配置为从另一计算设备接收内容的至少一个其他客户端应用。该客户端应用可以包括提供和接收文本内容、图形内容、音频内容等的能力。该客户端应用可以进一步提供标识其自身的信息,包括类型、能力、名称等。在一个实施例中2,客户端设备3001-3005可以通过包括电话号码、移动标识号(MIN)、电子序列号(ESN)或其他移动设备标识符的多种机制中的任一种来唯一标识其自身。该信息还可以指示使移动设备能够采用的内容格式。可以在被发送至MND 108或其他计算设备的网络分组等中提供这种信息。
客户端设备2801-2805可以进一步被配置为包括使终端用户能够登录到可由另一计算设备(诸如MND 2808等)管理的用户账户中的客户端应用。这种用户账户例如可以被配置为使终端用户能够参与一个或多个社交网络活动,诸如提交音轨或多音轨记录、搜索与可听输入类似的音轨或记录、下载音轨或记录以及参与在线音乐社区,特别是以对所制作的音轨和多音轨记录的共享、评论和讨论为中心的在线音乐社区。然而,还可以在不登录到用户账户中的情况下执行对各种网络活动的参与。
在一个实施例中,包括旋律的音乐输入可以由客户端设备2801-2805通过网络2806或2810从MND 3008或从能够发射这种音乐输入的任何其他基于处理器的设备接收。包含旋律的音乐输入可以由MND 2808或其他这种基于处理器的设备预先记录或实况捕获。附加地或可替换地,旋律可以由客户端设备2801-2805实时捕获。例如,旋律生成设备可以生成旋律,并且与客户端设备2801-2805之一通信的麦克风可以捕获所生成的旋律。如果音乐输入被实况捕获,则典型地,系统在计算旋律的音乐音调以及弦之前寻找至少一条音乐。这与在乐队中演奏的乐者类似,其中,伴奏乐者可以典型地收听至少一条旋律以确定在贡献任何附加音乐之前演奏的音乐音调以及弦。
在一个实施例中,乐者可以与客户端设备2801-2805进行交互,以对旋律进行伴奏,将客户端设备视为虚拟乐器。附加地或可替换地,对旋律进行伴奏的乐者可以演唱和/或演奏乐器(诸如用户所演奏的乐器)以对旋律进行伴奏。
无线网络2810被配置为将客户端设备2803-2805及其部件与网络2806耦合。无线网络2810可以包括可进一步覆盖独立自组织网络等的多种无线子网络中的任一种,以提供客户端设备2803-2805的面向基础结构的连接。这种子网络可以包括网状网络、无线LAN(WLAN)网络、蜂窝网络等。无线网络2810可以进一步包括由无线无线电链路等连接的终端、网关、路由器等的自主系统。这些连接器可以被配置为自由且随机移动并任意组织其自身,使得无线网络2810的拓扑可以快速改变。
无线网络2810可以进一步采用针对蜂窝系统、WLAN、无线路由器(WR)网状等的多种接入技术,包括第2代(2G)、第3代(3G)、第4代(4G)无线电接入。诸如2G、3G、4G和未来接入网之类的接入技术可以实现针对移动设备(诸如,具有各种程度的移动性的客户端设备2803-2805)的广域覆盖。例如,无线网络2810可以通过诸如全球移动通信系统(GSM)、通用分组无线电服务(GPRS)、增强型数据GSM环境(EDGE)、宽带码分多址(WCDMA)等等的无线电网络接入来实现无线电连接。实质上,无线网络2810可以包括信息可借以在客户端设备2803-2805与另一计算设备、网络等之间传播的交互任何无线通信机制。
网络2806被配置为将网络设备与包括MND 2808、客户端设备2801-2802的其他计算设备耦合,以及通过无线网络2810耦合至客户端设备2803-2805。使网络2806能够采用用于激昂信息从一个电子设备传送至另一电子设备的任何形式的计算机可读介质。此外,网络106可以包括互联网,以及局域网(LAN)、广域网(WAN)、直接连接(诸如通过通用串行总线(USB)端口)、其他形式的计算机可读介质、或其任何组合。在包括基于不同架构和协议的LAN在内的LAN互连集合上,路由器充当LAN之间的链路,使消息能够从一个LAN发送至另一LAN。此外,典型地,LAN内的通信链路包括双绞线或同轴线缆,而网络之间的通信链路可以利用模拟电话线路、包括T1、T2、T3和T4的全部或片段专用数字线路、综合服务数字网(ISDN)、数字订户线路(DSL)、包括卫星链路的无线链路、或者本领域技术人员已知的其他通信链路。此外,远程计算机和其他相关电子设备可以经由调制解调器和临时电话链路远程地连接至LAN或WAN。实质上,网络2806包括信息可借以在计算设备之间传播的任何通信方法。
在一个实施例中,客户端设备2801-2805可以例如使用对等配置来直接通信。
此外,典型地,通信介质体现了计算机可读指令、数据结构、程序模块或其他传输机制并包括任何信息递送介质。作为示例,通信介质包括有线介质(诸如双绞线、同轴线缆、光纤、波导和其他有线介质)和无线介质(诸如声、RF、红外和其他无线介质)。
包括I/O设备2811-2813的各种外围设备可以附着至客户端设备2801-2805。多点触摸按压板2813可以从用户接收物理输入并作为USB外围设备而分发,尽管不限于USB,并且还可以使用其他接口协议,包括但不限于ZIGBEE、BLUETOOTH等。通过按压板2813的外部和接口协议传输的数据可以包括例如MIDI格式的数据,尽管也可以通过该连接来传送其他格式的数据。类似的按压板2809可以可替换地与客户端设备(诸如移动设备2805)实体集成。耳机2812可以附着至客户端设备的音频端口或者其他有线或无线I/O接口,提供示例性布置以供用户收听所记录的音轨的循环回放以及系统的其他可听输出。麦克风2811也可以经由音频输入端口或其他连接附着至客户端设备2801-2805。可替换地或除耳机2812和麦克风2811外,一个或多个其他扬声器和/或麦克风可以被集成到客户端设备2801-2805或其他外围设备2811-2813中的一个或多个中。此外,外围设备可以连接至按压板2813和/或客户端设备101-105,以提供可通过外部控制而再现的声音样本、波形、信号或其他音乐输入的外部源。这种外部设备可以是MIDI设备,客户端设备2803和/或按压板2813可以向该MIDI设备路由MIDI事件或其他数据,以触发来自外部设备2814的音频的回放。然而,除MIDI外的格式可以由这种外部设备采用。
图30示出了根据一个实施例的网络设备3000的一个实施例。网络设备3000可以包括比所示出的部件多许多或少许多的部件。然而,所示出的部件足以公开用于实施本发明的说明性实施例。网络设备3000可以表示例如图28的MND 2808。简言之,网络设备3000可以包括能够连接至网络2806以使用户能够在不同账户之间发送和接收音轨和音轨信息的任何计算设备。在一个实施例中,还在不同客户端设备之间执行这种音轨分发或共享,这些客户端设备可以由不同用户、系统管理员、商业实体等管理。附加地或可替换地,网络设备3000可以使得能够与客户端设备2810-2805共享所制作的曲调,包括旋律以及和声。在一个实施例中,还在不同客户端设备之间执行这种旋律或曲调分发或共享,这些客户端设备可以由不同用户、系统管理员、商业实体等管理。在一个实施例中,网络设备3000还操作以针对来自一系列音乐音调和/或弦的旋律自动提供类似的“最佳”音乐音调和/或弦。
可作为网络设备3000进行操作的设备包括各种网络设备,包括但不限于个人计算机、台式计算机、多处理器系统、基于微处理器的或可编程的消费电子装置、网络PC、服务器、网络器械等。如图30中所示,网络设备3000包括处理单元3012、视频显示适配器3014和大容量存储器,均经由总线3022彼此通信。大容量存储器一般包括RAM 3016、ROM 3032和一个或多个永久大容量存储设备,诸如硬盘驱动器3028、带驱动器、光驱动器和/或软盘驱动器。大容量存储器存储用于控制网络设备3000的操作的操作系统3020。可以采用任何通用操作系统。还提供了用于控制网络设备3000的低级操作的基本输入/输出系统(“BIOS”)3018。如图30中所示,网络设备3000还可以经由网络接口单元3010来与互联网或某其他通信网络进行通信,网络接口单元3010被构造以与包括TCP/IP协议的各种通信协议一起使用。网络接口单元3010有时被称作收发器、收发设备或网络接口卡(NIC)。
如上所述的大容量存储器说明了另一种类型的计算机可读介质,即,计算机可读存储介质。计算机可读存储介质可以包括在任何方法或技术中实现以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的易失性、非易失性、可移除和不可移除介质。计算机可读存储介质的示例包括RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或者可用于存储期望信息且可由计算设备访问的任何其他介质。
如所示的那样,数据存储器3052可以包括数据库、文本、电子表格、文件夹、文件等,其可以被配置为维持和存储用户账户标识符、电子邮件地址、IM地址和/或其他网络地址;组标识符信息;与每个用户账户相关联的音轨或多音轨记录;用于共享音轨和/或记录的规则、记账信息;等等。在一个实施例中,数据存储器3052中的至少一些还可能被存储在网络设备3000的另一部件上,包括但不限于cd-rom/dvd-rom 3026、硬盘驱动器3028等。
大容量存储器还存储程序代码和数据。一个或多个应用3050被加载到大容量存储器中并在操作系统3020上运行。应用程序的示例可以包括代码转换器、调度器、日程表、数据库程序、文字处理程序、HTTP程序、可定制用户界面程序、IPSec应用、加密程序、安全程序、SMS消息服务器、IM消息服务器、电子邮件服务器、账户管理器等等。Web服务器3057和音乐服务3056还可以作为应用3050内的应用程序而被包括。
Web服务器3057表示被配置为通过网络将包括消息的内容提供给另一计算设备的多种服务中的任一种。因此,web服务器3057包括例如web服务器、文件传送协议(FTP)服务器、数据库服务器、内容服务器等。Web服务器3057可以使用包括但不限于WAP、HDML、WML、SMGL、HTML、XML、cHTML、xHTML等的多种格式中的任一种、通过网络来提供包括消息的内容。在一个实施例中,web服务器3057可以被配置为使用户能够访问和管理用户账户和共享音轨和多音轨记录。
音乐服务3056可以提供与实现在线音乐社区相关的各种功能,并可以进一步包括音乐匹配器3054、权利管理器3058和旋律数据。音乐匹配器3054可以匹配类似的音轨和多音轨记录,包括数据存储器3052中存储的那些。在一个实施例中,这种匹配可以由客户端设备上的声音搜索器或MTAC请求,该声音搜索器或MTAC可以例如提供要匹配的可听输入、音轨或多音轨。权利管理器3058使与账户相关联的用户能够上载音轨和多音轨记录。这种音轨和多音轨记录可以被存储在一个或多个数据存储器3052中。权利管理器3058可以进一步使用户能够提供针对所提供的音轨和多音轨记录的分发的控制,诸如基于在线音乐社区中的关系或成员身份、支付或者音轨或多音轨记录的预期使用的限制。使用权利管理器3058,用户还可以将所有访问权利限制于所存储的音轨或多音轨记录,从而使得能够在用户相信其就绪之前在没有社区评论的情况下存储未完成的记录或其他进行中的工作。
音乐服务3056还可以托管单人或多人游戏或者以其他方式使单人或多人游戏能够被在线音乐社区的各个成员以及在这些成员之间把玩。例如,可以在音乐记录产业中设置由音乐服务3056托管的多用户角色扮演游戏。用户可以选择对该产业来说典型的其人物的角色。然后,游戏用户可以使用期客户端设备50以及例如RSLL 142和MTAC 144、通过音乐的创作来使其人物进步。
消息收发服务器3056可以包括被配置和布置为转发来自消息用户代理和/或其他消息服务器的消息或者递送消息的几乎任何一个或多个计算部件。因此,消息收发服务器3056可以包括消息传送管理器,该消息传送管理器用于采用多种消息收发协议中的任一种来传送消息,这些消息收发协议包括但不限于SMS消息、IM、MMS、IRC、RSS馈给、mIRC、多种文本消息收发协议中的任一种、或者多种其他消息类型中的任一种。在一个实施例中,消息收发服务器3056可以使用户能够发起和/或以其他方式进行聊天会话、VOIP会话、文本消息收发会话等。
应当注意,尽管网络设备3000被图示为单个网络设备,但是本发明不限于此。例如,在另一实施例中,网络设备3000的音乐服务等可以驻留于一个网络设备中,而关联的数据存储器可能驻留于另一网络设备中。在又一实施例中,各种音乐和/或消息转发操作可能驻留于以对等配置等操作的一个或多个客户端设备中。
游戏环境。
为了进一步促进音乐的创作和合成,图31-37图示了在其中提供游戏界面作为对上述音乐合辑工具的用户界面。以这种方式,相信用户界面将较少令人生畏,更加用户友好,以便最小化与终端用户的创造性音乐过程的任何干扰。如将从下面的讨论中显而易见的那样,游戏界面提供了与上述一个或多个功能方面相关联的视觉线索和标记,以简化、精简和激励音乐合辑过程。这使终端用户(关于该实施例,也被称作“玩家”)能够利用专业质量工具来创作专业质量音乐,而不需要这些用户具有音乐理论或音乐创作工具的操作方面的任何专业知识。
首先转至图31,提供了第一显示界面3100的一个示例性实施例。在该界面中,可以给玩家提供从坐在混音板后面的音乐制作者的角度的工作室视图。在图31的实施例中,然后,在背景中对三个不同工作室房间进行可视化:主奏嗓音/乐器房间3102、打击乐器房间3104和伴奏房间3106。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,房间的数目可以更大或更小,可以以不同方式细分在每个房间中提供的功能和/或可以在房间中提供附加选项。在图31中描绘的三个房间中的每一个可以包括一个或多个乐者“化身”,该乐者“化身”提供图示该房间的性质和/或目的的视觉线索以及提供关于由“化身”和正在利用的多种乐器演奏的音乐的类型、风格和/或细微差别的演奏的另外线索。例如,在图31中所示的实施例中,主奏嗓音/乐器房间3102包括女流行歌手,伴奏房间3104包括摇滚鼓手,并且伴奏房间3106包括乡村小提琴手、摇滚低音乐器演奏者和说唱电键盘乐器演奏者。如下面将更详细讨论的那样,结合游戏环境界面的其他方面,乐者化身的选择提供了可视的容易理解的界面,通过该界面,上述各种工具可以容易地由大多数新手终端用户实现。
为了开始创作音乐,玩家可以选择这些房间之一。在一个实施例中,用户可以直接使用鼠标或其他输入设备来简单地选择房间。可替换地,可以提供与各种工作室房间相对应的一个或多个按钮。例如,在图31中所示的实施例中,主奏房间按钮3110的选择会将玩家转移至主奏嗓音/乐器房间3102,打击乐器房间按钮3108的选择会将玩家转移至打击乐器房间3104;并且伴奏房间按钮3112的选择会将玩家转移至伴奏房间3106。
如图31中所示,还可以提供其他可选择按钮。例如,可以提供记录按钮3116和停止按钮3118以开始和停止由工作室房间3100中的终端用户经由记录伴奏实况循环模块142(图1A)制成的任何音乐的记录。可以提供设置按钮3120以允许玩家更改各种设置,诸如期望的类型、拍子、以及节奏、音量等。可以提供搜索按钮3122以使用户能够发起声音搜索器模块150。还可以提供用于保存(3124)和删除(3126)玩家的乐曲的按钮。
图32呈现了主奏嗓音/乐器房间3102的一个示例性实施例。在该实施例中,该工作室房间的界面已经被配置为使终端用户能够创作和记录音乐合辑的一个或多个主奏嗓音和/或乐器音轨。主奏嗓音/乐器房间3102可以包括与上面结合图12-13描述的控制空间类似的控制空间3202。因此,如上所述,控制空间3202可以包括:用于标识音轨中的每个分区(例如,音乐小节)的多个分区指示器3204;示出每个小节内的节拍的垂直线3206;标识与所选乐器(诸如,由乐器选择器3214(图32中所示)指示的吉他)相关联的各个基频的水平线3208;以及用于标识当前正在播放的实况循环的特定部分的回放条。
在图32中所示的示例中,该界面图示了已经记录的一个音轨的音频波形3210,大概在演奏者的伴奏中的早期,然而,用户还可以特别地结合声音搜索模块150(如搜索按钮3122(见图31)所调用)突然停下预先存在的音频音轨。在图32中所示的示例中,所记录的音频波形3210还已经被转换为与吉他(如乐器选择器3214所指示)的基频相对应的音符3212的其形态。如应当理解的那样,使用可被拖拽到控制空间3202上的各种乐器选择器图标,玩家可能能够选择一个或多个其他乐器,这将使原始音频波形被转换为与新选择或附加选择的乐器的基频相对应的音符的不同形态。玩家还可以更改小节的数目或每小节的节拍的数目,然后,这还可以使音频波形被(量化器206(见图2))量化且在时间上与新更改的定时对准。还应当理解,尽管玩家可能选择将音频波形转换为与乐器相关联的音符的形态,但是玩家不必这样做,从而使来自可听输入的一个或多个原始声音能够基本上被包括在具有其原始音色的所生成的音频音轨中。
如图32中所示,还可以在背景中提供歌手的化身3220。在一个实施例中,该化身可以提供先前已在类型匹配器模块152中定义的特定音乐类型的可容易理解的视觉指示。例如,在图32中,歌手被图示为流行歌手。在这种情况下,可以通过应用与流行音乐相关联的一个或多个特点来执行所记录的音轨3210的处理。在其他示例中,歌手可以被图示为成年男性、年轻男性或女孩、理发店四重唱、歌剧或百老汇女歌手、乡村西部明星、说唱乐者、英伦入侵摇滚歌手、民谣歌手等,具有人们通常理解为与每种类型的歌手相关联的所得到的音高、节奏、模式、音乐质地、音色、表现质量、和声等。在一个实施例中,为了提供附加娱乐值,歌手化身3220可以被编程为如同可能甚至与音乐音轨同步地在记录伴奏中涉及该化身那样跳舞和以其他方式行动。
主奏嗓音/乐器房间界面3102可以进一步包括音轨选择器3216。音轨选择器3216使用户能够记录或创作多个主奏曲段和选择这些曲段中的一个或多个以包括在音乐合辑内。例如,在图32中,图示了被标签为“1”、“2”和“3”的三个音轨窗口,其中每一个示出了对应音轨的音频波形的微型表示,以提供关于与每个音轨相关联的音频的视觉线索。每个音轨窗口中的音轨可以表示分离地记录的音频曲段。然而,还应当理解,可以创建音频音轨的拷贝,在这种情况下,每个音轨窗口可以表示单个音频波形的不同实例。例如,音轨窗口“1”可以表示音频波形的未更改的嗓音版本,音轨窗口“2”可以表示如被转换为与吉他相关联的音符的形态的音频波形,并且音轨窗口“3”可以表示如被转换为与钢琴相关联的音符的形态的相同音频波形。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,不必存在对可在音轨选择器3216上保持的音轨的数目的特定限制。
提供了音轨选择窗口3218以使玩家能够通过例如选择三个音轨窗口中的一个或多个并将其拖拽到选择窗口3218来选择音轨中的一个或多个以包括在音乐合辑中。在一个实施例中,选择窗口3218还可以用于啮合MTAC模块144以从多个曲段“1”、“2”和“3”生成单个最佳曲段。
主奏嗓音/乐器房间界面3102还可以包括用于实现与主奏嗓音或乐器音轨相关联的一个或多个功能的多个按钮。例如,可以提供最小化按钮3222以允许用户最小化网格3202;可以提供声音按钮3224以使用户能够使与一个或多个音频音轨相关联的声音静音或非静音,可以提供独奏按钮3226以基于音频波形3210或其形态来使已由系统100生成的任何伴奏音频静音,以便允许玩家专注于与主奏音频相关联的问题,可以提供新音轨按钮3228以使用户能够开始记录新主奏音轨;形态按钮3230在控制空间3202中的音频波形上激活频率检测器和频移器208和210的操作。还可以提供按钮集合以使用户能够设置参考音以帮助提供嗓音音轨。因此,切换音按钮3232可以启用和禁用参考音,音向上按钮3234可以提高参考音的频率,并且音向下按钮3236可以降低参考音的音高。
图33图示了打击乐器房间3104的一个示例性实施例。该房间的界面被配置为使玩家能够创建和记录音乐合辑的一个或多个打击乐器音轨。打击乐器房间界面3104包括与上面结合图14描述的控制空间类似的控制空间。因此,该控制空间可以包括:网格3302,表示一个或多个打击乐器音轨内的分离声音的回放和定时;回放条3304,用于识别当前正在播放的实况循环的特定部分;以及多个分区(1-4),被划分为多个节拍,其中网格中的每个框3306表示与相关打击乐器相关联的声音的定时增量(其中,非阴影框指示没有声音要在该时间增量处被播放,并且阴影框指示要在该时间增量处播放与相关打击乐器的音色相关联的声音)。
还可以提供打击乐器分段选择器3308,以使玩家能够创建和选择多个打击乐器分段。在图33中所示的示例中,仅示出了单个打击乐器分段“A”的分区。然而,通过选择打击乐器分段选择器3308,可以创建附加分段并将其标识为分段“B”、“C”等。然后,玩家可以在每个不同分段的每个分区内创建不同打击乐器序列。然后,可以按任何顺序布置所创建的分段,以便创建更多样的打击乐器音轨以用在音乐合辑中。例如,玩家可能期望创建按下述顺序重复播放的不同打击乐器音轨:“A”、“A”、“B”、“C”、“B”,尽管可以创建任何数目的分段并且可以使用任何顺序。为了促进多个打击乐器分段的检查和创建,可以提供分段回放指示器3310,以在视觉上指示当前正在播放和/或编辑的打击乐器分段以及正在播放和/或编辑的分段的部分。
如图33中进一步图示的那样,还可以在背景中提供鼓手的化身3320。与结合主奏嗓音/乐器房间3102描述的演奏者化身类似,鼓手化身3320可以提供与先前已经在类型匹配器模块152中定义的类型相对应的特定音乐类型和演奏风格的可容易理解的视觉指示。例如,在图33中,鼓手被图示为摇滚鼓手。在这种情况下,可以通过应用与摇滚音乐相关联的打击乐器的一个或多个先前定义的特点来针对每个打击乐器执行所创建的打击乐器音轨的处理。在一个实施例中,为了提供附加娱乐值,鼓手化身3320可以被编程为如同可能甚至与音乐音轨同步地在记录伴奏中涉及该化身那样跳舞和以其他方式行动。
打击乐器房间界面3104还可以包括用于实现与一个或多个打击乐器音轨的创建相关联的一个或多个功能的多个按钮。例如,可以提供最小化按钮3312以使用户能够最小化网格3302,可以提供声音按钮3314以使用户能够使与一个或多个音频音轨相关联的声音静音或非静音,可以提供独奏按钮3316以使用户能够在静音和非静音之间切换,以便停止其他音频音轨的回放,因此,玩家可以聚焦于打击乐器音轨而不分心,附加打击乐器按钮3318添加与可由玩家选择的打击乐器相对应的附加子音轨,并且摇摆按钮3320允许用户摇摆(即,切分)音符。
图34A-C呈现了伴奏房间界面3106的一个示例性实施例。该工作室房间的界面被配置为给玩家提供音乐托盘,用户可以从该音乐托盘选择和创建音乐合辑的一个或多个伴奏音轨。例如,如图34A中所示,可以给玩家提供乐器等级选择器条3402,以使玩家能够选择用于对主奏嗓音和/或音乐音轨进行伴奏的乐器的等级。在所图示的实施例中,针对选择图示了三个等级——低音乐器3404、键盘乐器3406和吉他3408。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,可以提供任何数目的乐器等级,包括多种乐器,其包括铜管乐器、木管乐器和弦乐器。
出于图示目的,让我们假定玩家已经选择图34A中的低音乐器等级3404。在这种情况下,然后,给玩家提供在一个或多个乐者化身当中进行选择以演奏伴奏乐器的选项。例如,如图34B中所示,可以给玩家提供在乡村乐者3410、摇滚乐者3412和说唱乐者3414之间进行选择的选项,玩家然后可以通过直接点击期望化身来进行该选择。当然,尽管图示了三个化身,但是可以允许玩家在更多或更少选择之间进行选择。还可以提供箭头3416,以使玩家能够滚动通过化身选择,尤其是在提供了更多化身选择的情况下。
在选择了图34B中的乐者化身之后,然后可以给玩家提供选择特定乐器的选项。例如,让我们现在假定玩家已经选择乡村乐者。如图34C中所示,然后可以对玩家给出在电低音吉他3418、直立低音乐器3420或声学低音吉他3422当中进行选择的选项,玩家然后可以通过直接点击期望乐器来进行该选择。还可以提供箭头3424以使玩家能够滚动通过乐器选择,如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,该乐器选择可能不限于仅三种类型的低音乐器。当然,尽管在上述序列中,在选择乐者化身之前选择乐器等级,但是可以想到,可以给玩家提供在选择乐器等级之前选择乐者化身的选项。类似地,还可以想到,可以给玩家提供在选择乐者化身之前选择特定乐器的选项。
在玩家已经选择乐者化身和乐器之后,系统100通过下述操作来创建适当伴奏音轨:基于当前正在主奏嗓音/乐器房间3102中播放的一个或多个主奏音轨来生成伴奏音符的集合(即使其他房间被静音),利用类型匹配器模块152以及和声器模块146将这些音符转换为针对所选乐者和乐器的适当类型、音色和音乐风格,以对一个或多个主奏音轨进行和声。因此,根据由玩家选择的乐器和乐者化身,特定乐器的伴奏音轨可以具有不同的声音、定时、和声、蓝色音符内容等。
伴奏房间界面3106还被配置为使玩家能够分别对多个乐者化身和/或多个乐器中的每一个进行试音,以帮助选择优选伴奏音轨。由此,一旦乐器和化身已被用户选择并且已经如上所述创建对应的伴奏音轨,就在实况循环回放期间结合其他先前创建的音轨(主奏、打击乐器或伴奏)自动播放伴奏音轨,使得玩家可以几乎实时地评价新伴奏音轨是否良好的适合物。玩家然后可以选择保持该伴奏音轨,针对相同乐器选择不同乐者化身,针对相同乐者化身选择不同乐器,挑选完全新的化身和乐器,或完全删除该伴奏音轨。玩家还可以通过重复上述步骤来创建多个伴奏音轨。
图35图示了描绘作为主奏音乐的伴奏而播放的和弦进行的图形界面的一个可能实施例。在一个实施例中,可以通过按压图34A、34B和34C中所示的花按钮来启动该图形用户界面。特别地,该界面示出了一般被迫使伴奏房间3106中的多个伴奏化身上的和弦进行,受制于化身可能已构建到其关联的配置文件中的蓝色音符允许(由于上面与图25相关联地讨论的类型和其他问题)。每个化身还可能具有由于化身的类型或基于化身的其他属性而与化身相关联的特定琶音技术(即,以序列演奏的分解和弦)。如图35的示例中所描绘,和弦进行是“G”大调、“A”小调、“C”大调、“A”小调,其中每个弦是根据分别与伴奏房间3106中的每个伴奏化身相关联的技术、针对整个分区而演奏的。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,和弦进行可以在单个分区内改变弦多次或者可以在多个分区上保持相同弦。
图36图示了玩家可借以识别该玩家期望创作或编辑的乐曲的部分的一个示例性界面。例如,在图36中所示的示例性界面中,提供了选项卡式结构3600,其中,玩家可以在乐曲的序曲段、主歌段和合唱段之间进行选择。当然,应当理解,乐曲的其他部分也可以可用,诸如桥段、终曲等。被使得可用于在特定乐曲中编辑的部分可以是预定的、由玩家手动选择的、或者基于所选的音乐类型自动设置的。类似地,各种部分最终被不知为形成乐曲的顺序可以是预定的、由玩家手动选择的、或者基于所选音乐类型自动设置的。因此,例如,如果新手用户选择创作流行歌曲,可以利用流行乐曲的期望元素来预先填充选项卡式结构3600,该期望元素一般包括导引、一个或多个主歌、合唱、桥段和结局。然后,可以提示终端用户创作与该总体乐曲的第一方面相关联的音乐。在完成总体乐曲的第一方面之后,可以将终端用户引导为创作另一方面。如果相邻元素的音调不同,则可以分别和/或共同对每个方面进行打分以警告终端用户。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,使用标准图形用户界面操控技术,可以删除乐曲的部分,将乐曲的部分移动至乐曲的其他部分,拷贝乐曲的部分以及后续修改乐曲的部分等等。
如图36中所示,音乐合辑的每个部分的选项卡还可以包括可选择图标,以使玩家能够识别和编辑与该部分相关联的音频音轨,其中,第一行可以图示主奏音轨,第二行可以图示伴奏音轨,并且第三行可以图示打击乐器音轨。在所图示的示例中,序曲段被示作包括:键盘乐器和吉他主奏音轨(分别地,3602和3604);吉他、键盘乐器和低音乐器伴奏音轨(分别地,3606、3608和3610);以及打击乐器音轨3612。还可以提供弦选择器图标3614,其在被选择时给玩家提供允许玩家更改与伴奏音轨相关联的弦的界面(诸如在图27或图35中)。
图37A和37B图示了可提供在上述图形界面中利用且在数据存储器132中存储的特定视觉线索的文件结构的一个实施例。首先转至图37A,可以针对玩家可在图形界面内选择的每个乐者化身提供文件3700,本文中也被称作音乐资产。例如,在图37A中,所图示的顶部音乐资产用于说唱乐者。在该实施例中,音乐资产可以包括视觉属性3704,视觉属性3704标识要与音乐资产相关联的化身的图形外观。音乐资产还可以包括与音乐资产相关联且在由玩家选择音乐资产时被应用于音频音轨或合辑的一个或多个功能属性。功能属性可以被存储在音乐资产内和/或提供对另一文件、对象或过程(诸如类型匹配器152)的指针或调用。功能属性可以被配置为影响上述各种设置或选择中的任一个,包括但不限于音轨的节奏或拍子、对要使用的弦或音调的限制、对可用乐器的限制、音符之间的转移的特性、音乐合辑的结构或进展等。在一个实施例中,这些功能资产可以基于一般将与乐者的视觉表示相关联的音乐类型。在视觉属性提供特定乐者的表示的实例中,功能属性还可以基于该特定乐者的音乐风格。
图37B图示了可与每个可选择的乐器相关联的音乐资产3706的另一集合,该乐器可以是一般类型的乐器(即,吉他)或具体品牌和/或型号的乐器(即,Fender Stratocaster、Rhodes Electric Piano、Wurlitzer Organ)。类似于与乐者化身相对应的音乐资产3700,乐器的每个音乐资产3706可以包括:视觉属性3708,标识要与音乐资产相关联的乐器的图形外观;以及该乐器的一个或多个功能属性3710。如上,功能属性3710可以被配置为影响上述各种设置或选择中的任一个。对于乐器,这些设置或选择可以包括可用基频、音符之间的转移的特性等。
使用图31-37中所示的图形工具和基于游戏的动态作用,新手用户将更容易地能够创作专业发声乐曲,用户将愿意与其他用户共享该专业发声乐曲以用于以玩家可能收听商业制作的音乐的几乎相同方式进行自我享受以及甚至娱乐。在本说明书中的音乐著作系统的上下文中提供的图形范式将关于多种创造性计划和努力等同地适用,该创造性计划和努力一般由专业人员执行,这是由于制作甚至平淡无奇产品原本所必需的技能级别将太高而对普通人来说不可访问。然而,通过简化例程任务,甚至新手用户也可以凭直觉容易地制成专业级别计划。
呈现高速缓存。
在一个实施例中,可以在云中实现本发明,其中,在客户端-服务器范式内利用上述系统和方法。通过将特定功能卸下到服务器上,客户端设备所需的处理能力减小。这增加了本发明可被部署于其上的设备的数目和类型二者,这允许与大量观众的交互。当然,与客户端相对由服务器执行功能的程度可以变化。例如,在一个实施例中,可以利用服务器来存储和提供相关音频样本,而在客户端中执行处理。在可替换实施例中,服务器可以既存储相关音频样本又在将音频提供给客户端之前执行特定处理。
在一个实施例中,还可以经由在客户端设备上操作且被配置为与服务器通信的独立应用来执行客户端侧操作。可替换地,用户可能能够经由http浏览器(诸如Internet Explorer、Netscape、Chrome、Firefox、Safari、Opera等)来访问系统并发起与服务器的通信。在一些实例中,这可能需要安装浏览器插件程序。
根据本发明,可以通过使用音频呈现高速缓存来执行和/或增强系统和方法的特定方面。更具体地,如下面将更详细描述的那样,呈现高速缓存实现了对与所请求或识别的音符相关联的音频分段的改进识别、处理和检索。如将从下面的描述中理解的那样,当与如上所述的客户端-服务器范式一起利用上述系统和方法时,音频呈现高速缓存具有特别的功用。特别地,在这种范式中,音频呈现高速缓存将优选地被存储在客户端侧上以改进等待时间并降低服务器成本,尽管如下所述,呈现高速缓存也可以被远程存储。
优选地,呈现高速缓存被组织为n维阵列,其中,n表示与呈现高速缓存内的音频相关联且用于组织呈现高速缓存内的音频的多个属性。在图38中图示了根据本发明的呈现高速缓存3800的一个示例性实施例。在该实施例中,高速缓存3800被组织为4维阵列,其中,该阵列的4个轴表示:(1)与音乐音符相关联的乐器类型;(2)音符的持续时间;(3)音高;以及(4)音符的速度。当然,还可以使用其他或附加属性。
乐器类型可以表示对应的MIDI信道,音高可以表示相应半音的整数索引,速度可以表示音符被演奏的强度,并且持续时间可以以毫秒表示音符的持续时间。可以基于这四个属性将呈现高速缓存3800中的条目3802存储在阵列结构内,并且每个条目3802可以包括对包含高速缓存呈现的音频样本的所分配的存储器的指针。每个高速缓存条目还可以包括标识与该条目相关联的时间(诸如,条目被首次写入的时间、其被最后访问的时间和/或条目到期的时间)的指示器。这允许从高速缓存移除在特定时间段的段落之后未访问的条目。优选地,呈现高速缓存还被维持到有限持续时间分辨率(例如第16个音符)并在大小上被固定,以允许快速编索引。
当然,还可以使用其他结构。例如,呈现高速缓存可以被维持在不同有限分辨率处,或者可以在快速编索引不必要的情况下在大小上不被固定。还可以使用多于或少于4个属性来标识音频,从而需要具有更多或更少轴的阵列。例如,不是4维阵列,而是还可以将图38中的条目组织为多个3维阵列,其中针对每个乐器类型有单独的阵列。
还应当理解,尽管阵列被描述为呈现高速缓存的优选实施例,但是还可以使用其他存储器传统。例如,在一个实施例中,可以将呈现高速缓存中的每个音频条目表达为基于关联属性值生成的散列值。可被采用以使用该方法促进高速缓存系统的一个示例性系统被高速缓存存储。通过以这种方式表达音频,可以增加或减少关联属性的数目,而无需对关联代码的显著改变以用于高速缓存条目查找和识别。
图39图示了利用这种高速缓存的一个示例性数据流程。如图39中所示,过程3904执行高速缓存控制。过程3904从客户端3902接收针对音符的请求,并作为响应而检索与该音符相对应的高速缓存音频分段。音符请求可以是针对特定音符的任何请求。例如,音符请求可以是已由用户通过上述界面中的任一个识别的音符、由和声器模块识别的音符、或来自任何其他源的音符。不是识别特定音符,而是音符请求还可以识别与期望音符相关联的多个属性。尽管一般以单数提及,但是应当理解,音符请求可以涉及一系列或一组音符,其可以被存储在单个高速缓存条目中。
在一个示例性实施例中,可以将音符指定为具有给定持续时间的MIDI“音符开启(note on)”,同时返回音频作为脉冲码调制(PCM)编码的音频样本。然而,应当理解,可以使用任何一个或多个属性以及以包括MIDI、XML等的任何标记法来表达音符。还可以压缩或解压缩所检索的音频样本。
如图39中所示,过程3904与过程3906、过程3908和呈现高速缓存3800通信。过程3906被配置为识别所请求的音符的属性(诸如乐器、音符开启、持续时间、音高、速度等)并使用可用音频样本库3910来呈现对应的音频。将由过程3906响应于所请求的音符而呈现的音频传递回到过程3904,过程3904将音频提供给客户端3902,并还可以将所呈现的音频写入到呈现高速缓存3800。如果随后请求了类似音符,并且与该所请求的音符相对应的音频已经在呈现高速缓存中可用,则过程3904可以从呈现高速缓存3800检索音频,而无需呈现新音频分段。根据本发明,并且如下面将更详细描述的那样,还可以从不是所请求的音符的精确匹配的高速缓存呈现检索音频样本。可以将该所检索的音频样本提供给过程3908,过程3908将音符重构为与基本上对应于所请求的音符的音频样本基本上类似的音符。由于从高速缓存检索和重构音频的过程一般比用于呈现新音频的过程3906更快,因此该过程显著地改进了系统的性能。还应当理解,可以在与客户端相同的设备上、在与客户端远离的服务器上或者在任何其他设备上操作图39中所示的每个元素,包括过程3904、3906和3908以及呈现高速缓存3800和样本库3910;并且在单个实施例中,各种元素可以分布在各种设备当中。
图40描述了可用于由高速缓存控制3904处理所请求的音符的一种示例性方法。假定如图38中所示的那样使用4维高速缓存,描述该示例性方法。然而,本领域技术人员在其面前有本说明书时将能够容易地将该方法适配为与不同高速缓存结构一起使用。
在步骤4002中,从客户端3902接收所请求的音符。在步骤4004中,确定呈现高速缓存3800是否包含与特定所请求的音符相对应的条目。这可以是通过识别所请求的音符要与之相关联的乐器(即吉他、钢琴、萨克斯、小提琴等)以及音符的持续时间、音高和速度并且然后确定是否存在与这些参数中的每一个精确匹配的高速缓存条目来实现的。如果存在,则在步骤4006中从高速缓存检索该音频并将该音频提供给客户端。如果不存在精确匹配,则该过程继续至步骤4008。
在步骤4008中,确定是否存在足够的时间来针对所请求的音符呈现新音频样本。例如,在一个实施例中,客户端可以被配置为识别要借以提供音符的音频的特定时间。要借以提供音频的时间可以是请求被作出后的预置时间量。在采用实况循环的实施例中,如上所述,要借以提供音频的时间还可以基于直到循环结束为止和/或直到要在接下来的循环期间回放音频为止的时间(或条数)。
为了评价是否可以在时间界限内提供音频,识别对呈现和发送音符的时间量的估计并将其与特定时间界限进行比较。该估计可以基于许多因素,包括对生成音频所需的处理时间的预定估计、在请求时存在的任何积压或处理队列的长度、和/或客户端设备与提供音频的设备之间的带宽连接。为了实行该步骤,还可以优选的是,将客户端以及高速缓存控制3904操作于其上的设备的系统时钟进行同步。如果确定了存在足够的时间来呈现音符,则在步骤4016中,将音符发送至呈现音符过程3906,其中,呈现针对所请求的音符的音频。一旦音频被呈现,就还可以在步骤4018中将音频存储在高速缓存3800中。
然而,如果确定了不存在足够的时间来呈现音符,则该过程继续至步骤4010。在步骤4010中,确定是否“接近命中”条目可用。出于该描述的目的,“接近命中”是下述任何音符:该音符基本上与所请求的音符类似,以至于可以使用一种或多种处理技术将其重构为基本上与将针对所请求的音符呈现的音频样本类似的音频样本。可以通过将所请求的音符的乐器类型、音高、速度和/或持续时间与已经高速缓存的音符的乐器类型、音高、速度和/或持续时间进行比较来确定“接近命中”。由于不同乐器以不同方式表现,因此应当理解,可被视为“接近命中”的条目的放味将针对每个乐器而不同。
在一个优选实施例中,对“接近命中”条目的第一次搜索可以沿呈现高速缓存的“持续时间”轴查找接近高速缓存条目(即,具有相同乐器类型、音高和速度的条目)。甚至更优选地,该搜索将针对具有比所请求的音符更长的持续时间(处于被确定为对给定乐器来说可接受的范围内)的条目,这是由于缩短音符通常产生比加长音符更好的结果。可替换地,或者如果沿持续时间轴不存在可接受的条目的话,第二次搜索可以沿“音高轴”查找接近高速缓存条目,即,半音的特定范围内的条目。
在又一替换方案中,或者如果在持续时间或音高轴上不存在可接受的条目的话,第三次搜索可以沿速度轴查找范围内的接近高速缓存条目。在一些情况下,不同速度中的可接受范围可以依赖于用于执行音频重构的特定软件和算法。大多数音频采样器针对一个音符使用被映射到不同速度范围的若干样本,这是由于根据音符被多强地放置,大多数真实乐器在所产生的声音中具有显著的音色差异。因此,优选地,沿速度轴的“接近命中”将是仅在幅度上与所请求的音符不同的音频样本。
在又一替换方案中,或者如果在持续时间、音高或速度轴上不存在可接受的条目,则第四次搜索可以沿乐器轴查找范围内的接近高速缓存条目。当然,应当理解,该策略可能仅限于产生与其他乐器类似的声音的特定类型的乐器。
还应当理解,尽管优选的是识别仅在单个属性上不同的“接近命中”条目(以便限制重构音频样本所需的处理的量),但是“接近命中”条目也可以是在持续时间、音高、速度和/或乐器属性中的两个或更多个上不同的条目。此外,如果多个“接近命中”条目可用,则可以基于多个因素中的任何一个或多个来选择要使用的音频样本,该多个因素包括例如与阵列中的期望音符的距离(例如,通过确定“n”维空间中的最短欧几里得距离)、最接近的基于属性的散列值、阵列中的每个轴的优先级的加权(例如,在音频上不同的音频比在速度上不同的音频优选,在速度上不同的音频比在音高上不同的音频优选,在音高上不同的音频比在乐器上不同的音频优选)和/或处理音频样本时的速度。
在另一实施例中,可以使用复合索引方法来识别接近命中。在该实施例中,对高速缓存中的每个维度进行折叠。在一种方法中,这可以是通过对每个维度的特定数目的比特进行折叠来实现的。例如,如果音高维度的最低两个比特被折叠,则可以将所有音高映射到32个值之一。类似地,持续时间维度的底部3个比特可以被折叠。由此,可以将所有持续时间映射到16个值之一上。可以类似地处理其他维度。在另一种方法中,可以利用非线性折叠方法,其中,给乐器维度指派了具有相同折叠维度值的类似发声乐器。然后,可以将折叠维度值连结成复合索引,并且可以将高速缓存条目存储在按复合索引排序的表中。当音符被请求时,可以通过基于复合索引的查找来识别相关高速缓存条目。在这种情况下,可以将与复合索引相匹配的所有结果识别为“接近命中”条目。
如果在步骤4010中将“接近命中”条目确定为可用,则该过程继续至步骤4012,其中,(通过重构音符过程3908)重构“接近命中”条目以生成基本上与所请求的音符相对应的音频样本。如图40中所示,可以以若干方式执行重构。下面描述的技术是作为示例而提供的,并且应当理解,还可以使用其他重构技术。此外,下面描述的技术一般在本领域中已知用于音频的采样和操控。相应地,尽管描述了结合本发明对该技术的使用,但是未详细描述用于实现该技术的特定算法和功能。
还可以在系统中的任何设备处执行下面描述的重构技术。例如,在一个实施例中,重构技术可以在高速缓存服务器处被应用或由耦合至该高速缓存服务器的远程设备来应用,其中,然后将重构的音符提供给客户端设备。然而,在另一实施例中,可以将高速缓存音符自身传输至客户端设备,并且然后可以在客户端处执行重构。在这种情况下,还可以将标识音符的信息和/或用于执行重构的指令与高速缓存音符一起传输至客户端。
转至第一技术,让我们假定例如“接近命中”条目仅在持续时间上与所请求的音符不同。如果“接近命中”的音频样本比所请求的音频样本长,则可以使用“重新形成包络”技术来重构音频样本,在该“重新形成包络”技术中,将新的更短的包络应用于音频样本。
如果所请求的音符比“接近命中”条目长,则可以拉伸包络的持续部分以获取期望持续时间。由于启动(attack)和衰减(decay)一般被认为是对乐器给出其声波特性的东西,因此对持续的操控可以在对音符的“颜色”没有显著影响的情况下拉伸持续时间。这被称为“包络拉伸”。可替换地,可以应用“循环”技术。在该技术中,取代拉伸音频样本的持续部分,可以循环持续段的段,以加长音符的持续时间。然而,应当注意,随机选择要循环的持续段的部分可能导致音频中的时钟和突然出现。在一个实施例中,这可以由从一个循环结束到下一循环起始的交叉衰落来克服。为了减轻可由处理引起的任何影响以及各种影响的添加,还优选的是,高速缓存条目是原始样本,并且在完成重构之后执行任何附加数字信号处理,例如在客户端设备上。
如果所请求的音符具有与“接近命中”条目不同的音高,则可以对高速缓存音频样本进行音高移位以获取适当音高。在一个实施例中,可以使用FFT在频域中执行这一点。在另一实施例中,可以使用自相关在时域中执行音高移位。在所请求的音符是八度音阶更高或八度音阶更低的场景中,还可以简单地拉伸或缩短高速缓存音符以获取适当音高。该构思与更快或更慢地播放磁带录音机类似。即,如果高速缓存条目被缩短以两倍快地播放,则所记录的材料的音高变为两倍高或高出八度音阶。如果高速缓存条目被拉伸以一半慢地播放,则所记录的材料的音高被减半或低出八度音阶。优选地,将该技术应用于处于所请求的音符的大致两个半音内的高速缓存条目,这是由于拉伸或缩短大于该量的音频样本可能使音频样本失去声波特性。
如果所请求的音符具有与“接近命中”条目不同的速度,则可以在幅度上移位高速缓存条目以匹配于新速度。例如,如果所请求的音符具有较高速度,则可以将高速缓存条目的幅度提高对应速度差值。如果所请求的音符具有较低速度,则可以将高速缓存条目的幅度降低对应速度差值。
所请求的音符还可以属于不同但类似的乐器。例如,所请求的音符可以针对在重金属吉他上演奏的特定音符,而高速缓存可以仅包括粗金属吉他的音符。在这种情况下,可以将一个或多个DSP效果应用于高速缓存音符,以近似得出来自重金属吉他的音符。
在已经使用上述技术中的一种或多种来重构“接近命中”条目之后,可以将其发送回到客户端。还可以将指示提供给用户,以向用户通知重构的音符已经被提供。例如,在诸如图12a中所示的界面之类的界面中,让我们假定音符1214已被重构。为了向用户通知已经从其他音频重构该音符,可以以与所呈现的音符不同的方式图示该音符。例如,可以以与其他音符不同的颜色、空心(与实色相对)音符或者任何其他类型的指示来图示所重构的音符。如果随后呈现音符的音频(如下面将讨论),则可以改变音符的视觉表示以指示音频的所呈现的版本已被接收到。
如果在步骤4010中不存在“接近命中”高速缓存条目,则可以检索最接近的可用音频样本(如基于乐器、音高、持续时间和速度属性而确定)。在一个实施例中,可以从高速缓存3800检索该音频样本。可替换地,客户端设备还可以被配置为在本地存储器中存储一系列一般音符以用在所呈现的音符和所重构的“接近命中”音符都不可用时的情形中。还可以在该音频样本上执行附加处理,诸如上述处理。客户端上的用户界面还可以被配置为给用户提供下述视觉指示:已经提供既不是所呈现的音频也不是所重构的“接近命中”的音频样本。
在步骤4016中,向呈现音符过程3906作出使用样本库3910针对所请求的音符呈现视频的请求。一旦音符被呈现,就将音频返回至高速缓存控制3904,高速缓存控制3904将所呈现的音频提供给客户端3902,并在步骤4018中将所呈现的音频写入到呈现高速缓存3800。
图41示出了根据本发明的用于实现呈现高速缓存的架构的一个实施例。如所示的那样,提供了服务器4102,服务器4102包括用于如上所述呈现音频的音频呈现引擎4104以及服务器高速缓存4106。服务器4102可以被配置为经由通信网络4118来与多个不同客户端设备4108、4110和4112进行通信。通信网络4118可以是包括互联网、蜂窝网络、wi-fi等的任何网络。
在图41中所示的示例实施例中,设备4108是胖客户端,设备4110是瘦客户端,并且设备4112是移动客户端。胖客户端(诸如全表征的台式或膝上型电脑)典型地具有大量可用存储器。由此,在一个实施例中,可以完全在胖客户端的内部硬盘驱动器(被图示为客户端高速缓存4114)上维持呈现高速缓存。瘦客户端一般是具有比胖客户端少的存储空间的设备。相应地,可以在本地硬盘驱动器(被图示为客户端高速缓存4116)与服务器高速缓存4106之间分割瘦客户端的呈现高速缓存。在一个实施例中,最频繁使用的音符可以被本地高速缓存在硬盘驱动器上,而较不频繁使用的音符可以被高速缓存在服务器上。移动客户端(诸如蜂窝电话或智能电话)一般具有比胖客户端或瘦客户端小的存储器。因此,可以完全在服务器高速缓存4106上维持移动客户端的呈现高速缓存。当然,这些客户端是作为示例而提供的,并且应当理解,上述配置中的任一个可以用于任何类型的客户端设备。
图42示出了根据本发明的用于实现呈现高速缓存的架构的另一实施例。在该示例中,多个边缘高速缓存服务器4102-4106可以被提供和定位以服务于各种地理位置。每个客户端设备4108、4110和4112然后可以与最接近于其地理位置的边缘高速缓存服务器4102、4104和4106进行通信,以减少获得高速缓存的音频样本所需的传输时间。在该实施例中,如果客户端设备请求先前未被高速缓存在客户端设备上的音频的音符,则进行关于相应边缘高速缓存服务器是否包括针对所请求的音符的音频或针对该音符的“接近命中”的确定。如果其包括,则分别获得和/或重构音频样本,并将该音频样本提供给客户端。如果这种高速缓存条目不可用,则可以从服务器4102请求音频样本,服务器4102(根据与图40相关联地描述的过程)可以提供高速缓存条目(精确匹配或“接近命中”)或呈现音符。
图43图示了来自图42的客户端、服务器和边缘高速缓存之间的信号序列的一个实施例。尽管图43涉及客户端4108(即,胖客户端)和边缘高速缓存4202,但是应当理解,该信号序列可以类似地适用于瘦客户端4110和4112以及图42中的边缘高速缓存4204和4206。在图43中,信号4302表示服务器4102与边缘高速缓存4202之间的通信。特别地,服务器4102将音频数据传输至边缘高速缓存4202,以发送以音频内容并给边缘高速缓存预加载音频内容。这可以自主地进行或响应于来自客户端的呈现请求而进行。信号4304表示针对从客户端4108发送至服务器4102的音频内容的请求。在一个实施例中,可以使用超文本传输协议(http)来编排该请求的格式,尽管也可以使用其他语言或格式。响应于该请求,服务器4102将响应发送回到客户端,被图示为信号4306。响应信号4306给客户端4108提供向高速缓存的位置的重定向(例如,在边缘高速缓存4202中)。服务器4102还可以提供包括对高速缓存内容的列表的引用的清单。该列表可以标识所有高速缓存内容,尽管优选地,该列表将仅标识与所请求的音频相关的高速缓存内容。例如,如果客户端4108请求了针对中央C小提琴的音频,则服务器可以标识小提琴音符的所有高速缓存内容。该清单还可以包括访问相关高速缓存内容所需的任何加密密钥以及可与每个高速缓存条目相关联的生存时间(TTL)。
在从服务器4102接收到响应之后,客户端4108向边缘高速缓存4202发送基于该清单中的信息识别适当高速缓存条目(是否针对特定关联音频、“接近命中”等)的请求(被图示为信号4310)。再一次,可以使用http来编排该请求的格式,尽管也可以使用其他语言或格式。在一个实施例中,客户端4108执行对适当高速缓存条目的确定,尽管还可以在边缘高速缓存4202处远程地执行该确定。信号4310表示从边缘高速缓存服务器到客户端4108的包括所识别的高速缓存条目的响应。然而,如果该请求识别了处于其TLL之外的高速缓存条目或者该请求以其他方式不可用,则该响应将包括该请求已失效的指示。这可能使客户端4108向服务器4102重试其请求。如果响应4310确实包含了所请求的音频条目,则然后其可以在需要时由客户端4108解密和/或解压缩。如果高速缓存条目是“接近命中”,则还可以使用上述过程或其等同物来对该高速缓存条目进行重构。
图44图示了来自与图42相关联地公开的实施例的客户端、服务器和边缘高速缓存之间的信号序列的可替换实施例。在该实施例中,客户端4108和4202之间的通信与图43中描述的通信类似,例外在于:取代客户端4108接触服务器4102以获得高速缓存的位置和高速缓存内容的清单,客户端4108直接向边缘高速缓存4202发送针对音频内容4308的请求。
图45-47图示了可以用于优化用于响应于来自客户端的请求而请求和检索音频的过程的三种技术。可以在服务器、边缘高速缓存、或者响应于所请求的音符存储音频内容且将音频内容提供给客户端的任何其他设备处采用这些技术。这些技术均还可以被单独应用或结合彼此而应用。
首先转至图45,描述了一种示例性方法,用于使客户端能够快速且高效地识别何时存在不足以从远程服务器或高速缓存提供音频的时间。在框4502中,在客户端处生成音频请求。音频请求可以是针对高速缓存音频的请求或针对要呈现的音频的请求。在框4504中,还可以与音频请求一起包括失效识别请求以及到其之前音频被客户端所需的时间(被称为“截止时间”)。失效请求可以包括在到截止时间之前音频不能被提供给客户端的情况下识别是中止还是继续音频请求的争论。优选地,在音频请求中提供的截止时间是实时值。在这种情况下,有必要在时间上同步接收到请求的服务器/高速缓存和客户端。如本领域技术人员在其面前有本说明书、附图和权利要求书时将理解的那样,还可以使用用于识别截止时间的其他方法。优选地,失效识别请求和截止时间被包括在音频请求的报头中,尽管可以在请求的任何其他部分中或作为分离的信号传输它们。
在框4506中,将音频请求从客户端发射至相关的服务器或高速缓存。服务器或高速缓存在框4508中接收音频请求并在框4510中确定所接收的音频请求包括失效请求,由服务器或高速缓存接收。在框4512,进行接收的服务器或高速缓存确定所请求的音频到截止时间之前是否可以被提供给客户端。优选地,这是基于用于识别和获得高速缓存音频、呈现音符和/或将音符传输回到客户端的所规划的或先前确定的时间来确定的。将音符传输回到客户端所需的时间还可以基于在音频请求的传输时间与音频请求被接收到的时间之间识别的等待时间。
如果确定了在截止时间之前可以提供音频,则在框4514中将音频置于队列中,并且用于识别、定位和/或呈现音频的方法如上所述那样继续。如果确定了在截止时间之前不能提供音频,则在框4516中将向客户端通知音频到截止时间之前将不可用的消息发送回到客户端。在一个实施例中,该通知可以作为http 412错误消息而传输,尽管也可以使用任何其他格式。然后,在框4518中,客户端可以采取用于获得和提供替代音频的任何必要动作。这可以是通过客户端识别与来自本地高速缓存的所请求的音符所需的音频类似的音频和/或将处理应用于先前存储或高速缓存的音频以近似得出所请求的音符来实现的。
在框4520中,服务器/高速缓存检验在到截止时间之前不能提供音频的情况下失效请求是否已经识别出是中止还是继续。如果失效请求被设置为中止,则在框4522中丢弃音频请求,并且不采取进一步的动作。如果失效请求被设置为继续,则在框4514中将音频请求置于队列中以用于处理。在这种情况下,然后,一旦完成,就可以将音频提供给客户端,并且使用该音频来替换已由客户端获得的替代音频。
图46图示了用于对队列中的音频请求进行优先化排序的示例性过程。结合上述记录伴奏实况循环实现,该过程特别有用,这是由于其有益于由用户对下述实况循环伴奏中的音符作出的任何改变:该实况循环伴奏是期望在实况循环的下一回放遍次期间回放该音符之前实现的。在框4602中,由客户端针对要在当前实况循环内使用的音符生成音频请求。在框4604中,将与实况循环相关的定时信息包括在音频请求中。在一个实施例中,定时信息可以标识循环的持续时间(被称为循环长度)。在另一实施例中,定时信息还可以包括:标识音符在循环内的位置的信息(被称为音符起始时间);以及正在回放的循环的当前部分,如可由上述界面中的回放条或播放头的位置标识(被称为播放头时间)。(在图48中图示了本段中描述的相对定时信息以及实况循环的示例性实施例)。
返回至图46,在框4606中,将音频请求与定时信息一起发送至服务器或高速缓存。在一个实施例中,还可以与消息一起包括指示消息何时被发送的时间戳。
在框4608中接收音频请求,并且在框4610中确定服务时间。例如,在一个实施例中,如果音频请求仅包括与循环的持续时间有关的信息,则可以通过仅将循环持续时间分成两半来“计算”服务时间。这提供了在客户端处对实况循环的回放将到达音频所请求的音符的位置之前可能需要的时间长度的统计近似。
在另一实施例中,如果音符起始时间和播放头时间信息被包括在音频请求中,则可以以更高精度计算服务时间。例如,在这种情况下,可以首先确定音符起始时间大于播放头时间(即,音符处于循环中的比作出音频请求时的回放条更晚的位置)。如果音符起始时间更大,则可以计算服务时间如下:time_to_service = note_start_time – play_head_time(服务时间=音符起始时间-播放头时间)。如果播放头时间大于音符起始时间(即,音符处于循环中的比作出音频请求时的回放条更早的位置),则可以计算服务时间如下:time_to_service = (loop_length - play_head_time) + note_start_time(服务时间=(循环长度-播放头时间)+音符起始时间)。在另一实施例中,服务时间的计算还可以包括加上音频数据回到客户端的传输所需的所规划的等待时间。可以通过识别音频请求何时被发送的时间戳并计算在该时间戳与音频请求被服务器或高速缓存接收到的时间之间识别的所流逝的时间来确定该等待时间。
在服务时间值被确定之后,基于其服务时间将音频请求置于队列中。由此,在具有较长服务时间的音频请求之前处理具有较短服务时间的音频请求,从而增加在实况循环中的关联音符的下次回放之前将处理音频请求的可能性。
图47图示了用于聚集与相同音符相关的重复音频请求的示例性过程。在框4702中,由客户端生成音频请求。在框4704中,与音频请求一起包括音轨ID、音符ID、起始时间和结束时间。音轨ID标识了正在针对其作出音频请求的音乐音轨,并且音符ID标识了音符。优选地,音轨ID是全局唯一的ID,而音符ID对音轨内的每个音符来说唯一。起始时间和结束时间分别标识了音符相对于音轨起始的起始和结束为止。在框4706中,将音频请求以及关联的音轨ID、音符ID、起始时间和结束时间发射至服务器和/或高速缓存。
如图47中所示,在该实施例中,服务器和/或高速缓存具有包括多个音轨队列4722的队列4720。每个音轨队列4722包括用于处理针对个体音轨的音频请求的单独队列。在框4708中,服务器或高速缓存接收音频请求,并在框4710中基于与音频请求相关联的音轨ID来识别队列4720中的音轨队列4722。在框4712中,搜索音轨队列以识别具有相同音符ID的任何先前排队的音频请求。如果具有相同ID的音频请求被定位,则在框4714中从音轨队列4722移除该请求。
然后,将新音频请求定位到多个音轨队列4722中的相应一个音轨队列中。这可以以若干方式之一实现。优选地,如果具有相同音符ID的先前音频请求已被定位和丢弃,则新音频请求可以替换音轨队列4720中的所丢弃的请求。可替换地,在另一实施例中,可以基于音频请求的起始时间将新音频请求定位在音轨队列中。更具体地,在队列中比具有较晚起始时间的音符更早地放置具有较早起始时间的音符。
由于图47中描述的方法,从队列中消除过时的或被取代的音频请求,从而节约处理能力。当一个或多个用户在实况循环伴奏期间对个体音符作出许多且连续的改变时,这特别有用,这是由于其增强了系统快速且高效地处理和提供最近请求的音符且避免不再需要或以其他方式期望的音符的处理的能力。
效果链处理。
图49-52图示了可以用于基于由用户特别针对上述游戏环境而选择以与一个或多个音乐音轨相关联的虚拟乐者、乐器和制作者将一系列多个效果应用于这些音乐音轨的过程。如将从下面的描述中理解的那样,凭借这些过程,可以对用户创建的音轨进行处理以更好地表示或模仿在游戏环境中表示的可用乐者、乐器和制作者的风格、细微差别和趋势。由此,单个音轨可以基于被选择以与音轨相关联的乐者、乐器和制作者而具有显著不同的声音。
首先转至图49,图示了用于将效果应用于音乐合辑的一个或多个音乐音轨的示例性效果链。如所示的那样,对于每个乐器音轨,可以基于所选择的与该音轨相关联的乐器化身来应用第一系列的效果4902、4904和4906。这些效果在本文中被称作乐者角色效果。然后,可以基于所选择的制作者化身将第二系列的效果4904应用于每个乐器音轨。这些在本文中被称作制作者角色效果。尽管现在将在下文中描述所应用的效果的具体示例,但是应当理解,可以使用各种效果,并且可以更改可针对每个乐者和制作者角色而应用的效果的数目和顺序。
图50示出了可被应用于音轨的乐者角色效果的一个示例性实施例。在该实施例中,音轨5002被输入到失真/配套元件选择模块5004,失真/配套元件选择模块5004将相关的数字信号处理应用于音乐音轨,以便基本上重新创建可与由通过游戏界面选择的虚拟乐器表示的现实生活乐器相关联的声音类型。例如,如果音轨5002是吉他音轨,则可以将一个或多个效果应用于基本电子或声学吉他音轨5002,以模仿和重新创建特定吉他的声音风格,包括例如迂回、合唱、失真、回声、包络、回响、wah、以及甚至导致复古、金属、蓝调或垃圾摇滚“感觉”的效果的复杂组合。在另一示例中,可以自动将效果应用于基本电键盘音轨5002,以模仿诸如Rhodes Piano或Wurlitzer Electric Organ之类的键盘乐器类型。如果音轨5002是基本鼓音轨,则可以基于所选择的鼓集合经由效果链来应用预先配置的鼓声音配套元件。相应地,可以通过用户期望地添加或修改一个或多个效果、通过系统将配套元件应用于基本音轨、或者其组合来控制效果链5004。
在应用了失真效果和/或配套元件选择之后,优选地将音轨传输至均衡器模块5006,均衡器模块5006将均衡器设置的集合应用于音轨。然后,优选地,将音轨传输至压缩模块5008,在压缩模块5008处,应用压缩效果的集合。优选地,针对每个音乐化身预先配置要应用的均衡器和压缩设置,尽管还可以手动设置或调整该均衡器和压缩设置。通过应用上述效果,可以对音乐音轨进行处理,以表示由用户选择的虚拟乐者和乐器的风格、声音和音乐趋势。
一旦已经应用乐者角色效果,就应用一系列制作者角色效果,如图51和52中所示。首先转至图51,在三个并行信号路径之间分割音轨5102,其中,单独的级别控制5104a-c被应用于每个路径。针对每个路径的隔离级别控制是期望的,这是由于每个路径可以具有不同的动态作用。并行地应用效果最小化了该链中的复合且不期望或不适当的效果。对于诸如鼓(其可以包括踢鼓、小军鼓、帽、铙钹等)之类的乐器,与每个鼓、帽、铙钹等习惯了的音频被认为是单独的音轨,其中,这些音轨中的每一个被分割为三个信号路径以用于处理。
如图51中所示,然后将单独的效果应用于三个信号路径中的每一个。第一路径被提供给实用效果模块5106,实用效果模块5106将一个或多个实用设置应用于音轨。实用设置的示例包括但不限于诸如均衡器设置和压缩设置之类的效果。第二路径被发送至延迟效果模块5108,延迟效果模块5108将一个或多个延迟设置应用于音轨,以移位各种音符的定时。第三路径被发送至回响效果模块5110,回响效果模块5110将回响设置的集合应用于音轨。尽管未图示,还可以应用多个回响或延迟设置。优选地,针对可经由游戏界面而选择的每个虚拟制作者预先配置针对实用、延迟和回响效果中的每一个的设置,尽管这些设置也可以是可手动调整的。一旦应用了实用、延迟和回响效果,三个信号路径就被混合器5112一起混合回到单个路径中。
如图52中所示,将与单个乐曲中的每个乐器相对应的音轨馈给到混合器5202,在混合器5202处,这些音轨被混合成单个合辑音轨。以这种方式,用户可以配置各个部件(即,乐器)的相对音量,其可以被彼此调整以将一个乐器相对于另一个乐器突出出来。每个制作者还可以与唯一混合设置相关联。例如,说唱风格制作者可以与导致低音乐器更响亮的混合设置相关联,而摇滚制作者可以与导致吉他更响亮的混合设置相关联。一旦被混合,合辑音轨就被发送至均衡器模块5204、压缩模块5206和限制器模块4708,其中,分别将均衡器设置、压缩设置和限制器设置应用于合辑音轨。优选地,针对用户可选择的用户化身可选择的每个虚拟制作者预先配置这些设置,尽管也可以手动设置或调整这些设置。
在一个实施例中,每个虚拟乐者和制作者还可以被指派有指示其影响乐曲的能力的“影响”值。然后,可以使用这些值来确定应用上述效果的方式。例如,乐者或制作者的“影响”值越强,则其设置可对音乐具有的影响越大。然后,还可以针对制作者角色效果应用类似场景。对于在乐者和制作者角色二者中应用的效果(诸如均衡器和压缩设置),“影响”值还可以用于确定如何调和效果设置之间的差异。例如,在一个实施例中,可以基于“影响”值中的差异来应用效果设置的加权平均。作为示例,让我们假定“影响”值可以是从1至10的数字。如果所选乐者具有“影响”值10并正在与具有“影响”值1的制作者一起工作,则可以以其整体应用与该所选乐者相关联的所有效果。如果所选乐者具有“影响”值5并正在与具有“影响”值5的制作者一起工作,则可以以可能随机但将优选为预定的方式将任何所应用的乐者设置的效果与制作者的设置进行组合。如果所选乐者具有“影响”值1,则仅最小影响可以被应用。如果所选乐者具有“影响”值1,则仅最小效果可以被应用。在另一实施例中,可以仅基于虚拟乐者和制作者中的哪一个具有较大“影响”值来选择关联的效果设置。
还可以在系统中的任何设备上应用图49-52中描述的效果。例如,在如所描述的服务器-客户端配置中,可以在服务器或客户端处处理效果设置。在一个实施例中,还可以基于客户端的能力来动态确定对在何处对效果进行处理的识别。例如,如果客户端被确定为智能电话,则优选地可以在服务器处对大多数效果进行处理,而如果客户端是台式计算机,则优选地可以在客户端处对大多数效果进行处理。
前面的描述和附图仅解释和说明了本发明,并且本发明不限于此。尽管与特定实施方式或实施例相关地描述了说明书,但是出于说明的目的阐述了许多细节。因此,前述内容仅说明了本发明的原理。例如,在不脱离本发明的精神或实质特性的情况下,本发明可以具有其他具体形式。所描述的布置是说明性的而非限制性的。对本领域技术人员来说,在不脱离本发明的基本原理的情况下,本发明可接受附加实施方式或实施例,并且本申请中描述的这些特定细节可以显著变化。因此将意识到,本领域技术人员将能够设计出尽管在本文中未被显式描述或示出但体现了本发明原理且因而处于其范围和精神内的各种布置。

Claims (39)

1. 一种用于提供与所请求的音乐音符相对应的音频数据的方法,包括:
(a)提供具有多个高速缓存条目的呈现高速缓存,所述高速缓存条目中的每一个与不同音符相对应;
(b)从客户端接收针对第一音符的请求;
(c)识别与所述第一音符相对应的第一高速缓存条目;
(d)确定与所述第一高速缓存条目相对应的第一音频分段不可用;
(e)识别与所述呈现高速缓存中的接近命中高速缓存条目相对应的第二音频分段;以及
(f)将所述第二音频分段处理为与所述第一音频分段基本上类似的第三音频分段。
2. 根据权利要求1所述的方法,进一步包括:作为对针对第一音符的请求的响应,将所述第三音频分段提供给所述客户端。
3. 根据权利要求2所述的方法,其中,将所述第二音频分段处理为第三音频分段发生在所述客户端处。
4. 根据权利要求3所述的方法,其中,所述第一音符是使用从乐器、音高、持续时间和速度的组中选择的一个或多个属性来识别的。
5. 根据权利要求4所述的方法,其中,所述呈现高速缓存被结构化为n维阵列。
6. 根据权利要求5所述的方法,其中,所述呈现高速缓存被结构化为4维阵列,其中第一维度标识乐器,第二轴标识持续时间,第三维度标识音高,并且第四维度标识速度。
7. 根据权利要求5所述的方法,其中,识别第二音频分段的步骤包括:在所述n维阵列内确定与所述第一音频分段距离最短的第二音频分段。
8. 根据权利要求7所述的方法,其中,识别第二音频分段的步骤包括:确定具有与所述第一音频分段的散列值最接近的散列值的第二音频分段。
9. 根据权利要求1所述的方法,进一步包括:基于与所述多个高速缓存条目中的每一个相关联的一个或多个属性来生成散列值。
10. 根据权利要求1所述的方法,其中,识别第二音频分段的步骤包括:识别持续时间与所述第一音频分段的持续时间相差小于预定量的第二音频分段。
11. 根据权利要求1所述的方法,其中,识别第二音频分段的步骤包括:识别音高与所述第一音频分段的音高相差小于预定量的第二音频分段。
12. 根据权利要求1所述的方法,其中,识别第二音频分段的步骤包括:识别处于距所述第一音频分段预定数目的半音内的第二音频分段。
13. 根据权利要求1所述的方法,其中,识别第二音频分段的步骤包括:识别速度与所述第一音频分段的速度相差小于预定量的第二音频分段。
14. 根据权利要求1所述的方法,其中,处理所述第二音频分段包括:将较短的包络应用于所述第二音频分段。
15. 根据权利要求1所述的方法,其中,处理所述第二音频分段包括:拉伸所述第二音频分段的持续部分。
16. 根据权利要求1所述的方法,其中,处理所述第二音频分段包括:循环所述第二音频分段的持续部分。
17. 根据权利要求1所述的方法,其中,处理所述第二音频分段包括:在时域中更改所述第二音频分段的长度。
18. 根据权利要求1所述的方法,其中,处理所述第二音频分段包括:更改所述第二音频分段的幅度。
19. 根据权利要求1所述的方法,其中,所述呈现高速缓存位于与所述客户端相同的设备上。
20. 根据权利要求1所述的方法,其中,所述呈现高速缓存位于远程服务器上。
21. 根据权利要求1所述的方法,其中,所述呈现高速缓存位于处于与所述客户端相关联的地理区域中的边缘服务器上。
22. 根据权利要求1所述的方法,进一步包括:向用户显示对针对第一音符的请求的响应包括了从接近命中高速缓存条目生成的音频。
23. 根据权利要求1所述的方法,进一步包括:在所述第三音频分段已经被提供给所述客户端之后呈现所述第一音频分段;以及将所述第一音频分段提供给所述客户端。
24. 根据权利要求1所述的方法,进一步包括:确定是否存在足够的时间来从样本库呈现所述第一音频分段;以及仅当存在不足以呈现所述第一音频分段的时间时,才执行(e)和(f)。
25. 根据权利要求1所述的方法,其中,所述第二音频分段被加密,并且其中,处理所述第二音频分段包括:使用来自远程服务器的被提供给所述客户端的密钥来对所述第二音频分段进行解密。
26. 根据权利要求1所述的方法,其中,所述第二音频分段的至少两个实例是在高速缓存中提供的,并且其中,所述第二音频分段的所述至少两个实例中的每一个是使用不同的加密密钥来加密的。
27. 一种用于提供针对所请求的音符的音频的方法,包括:
从客户端接收针对第一音符的音频请求;
确定所述音频请求包括失效识别请求;
识别给所述客户端提供与所述音频请求相对应的音频分段的截止时间;
确定所述音频分段是否能够在所述截止时间之前被提供给所述客户端;以及
如果确定了所述音频分段不能在所述截止时间之前被提供给所述客户端,则通知所述客户端。
28. 根据权利要求27所述的方法,其中,如果确定了所述音频分段不能在所述截止时间之前被提供给所述客户端,则:
将所述音频请求置于队列中以用于处理;以及
在所述截止时间之后将与所述音频请求相对应的音频分段提供给所述客户端。
29. 根据权利要求27所述的方法,其中,如果确定了所述音频分段不能在所述截止时间之前被提供给所述客户端,则:
中止所述音频请求。
30. 一种用于提供针对所请求的音符的音频的方法,包括:
提供多个音轨队列,所述多个音轨队列中的每一个包括从至少一个客户端接收的多个音频请求以用于处理;
从第一客户端接收针对第一音符的第一音频请求;所述音频请求包括标识所述第一音符的唯一音符ID和与所述第一音符相关联的音轨的唯一音轨ID的信息;
基于所述唯一音轨ID来识别第一音轨队列,所述第一音轨队列是所述多个音轨队列之一;
确定所述第一音轨队列包括与所述唯一音符ID相关联的先前接收的音频请求;
从所述音轨队列移除先前接收的音频请求;以及
将所述第一音频请求添加到所述音轨队列以用于处理。
31. 根据权利要求30所述的方法,进一步包括:识别先前接收的音频请求在所述音轨队列内的位置;以及在第一位置处将所述第一音频请求添加到所述音轨队列。
32. 根据权利要求30所述的方法,其中,接收到的第一音频请求进一步包括标识与所述第一音符相关联的音轨内的所述第一音符的起始时间的信息;以及基于所述起始时间将所述第一音频请求添加到所述音轨队列。
33. 一种用于提供针对所请求的音符的音频的方法,包括:
从客户端接收音频请求,所述音频请求与音频音轨中的第一音符相对应;所述客户端能够重复地回放包括所述音频音轨的至少一部分的实况循环;所述音频请求包括与所述实况循环相关的定时信息;
确定所述音频请求的服务时间,所述服务时间指示直到将在所述实况循环内播放所述第一音符的下一实例为止的时间;
基于所述服务时间将所述音频请求添加至队列以用于处理。
34. 根据权利要求33所述的方法,其中,所述定时信息包括所述实况循环的持续时间。
35. 根据权利要求34所述的方法,其中,所述服务时间是基于所述实况循环的持续时间来确定的。
36. 根据权利要求35所述的方法,其中,所述服务时间近似等于所述实况循环的持续时间的一半。
37. 根据权利要求33所述的方法,其中,所述定时信息包括:音符起始时间,指示所述第一音符相对于所述实况循环的开始的起始时间;播放头时间,指示回放条相对于所述实况循环的开始的位置;以及所述实况循环的持续时间。
38. 根据权利要求37所述的方法,其中,所述服务时间是基于所述音符起始时间、所述播放头时间和所述实况循环的持续时间来确定的。
39. 根据权利要求38所述的方法,其中,所述服务时间被确定为:
如果所述音符起始时间大于所述播放头时间;从所述音符起始时间减去所述播放头时间;
如果所述播放头时间大于所述音符起始时间;从所述实况循环的持续时间减去所述播放头时间以得到第一结果,以及将所述第一结果加到所述音符起始时间。
CN201280048029.6A 2011-07-29 2012-07-30 用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法 Expired - Fee Related CN103959372B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/194,806 US9257053B2 (en) 2009-06-01 2011-07-29 System and method for providing audio for a requested note using a render cache
US13/194806 2011-07-29
PCT/US2012/048883 WO2013039610A1 (en) 2011-07-29 2012-07-30 System and method for providing audio for a requested note using a render cache

Publications (2)

Publication Number Publication Date
CN103959372A true CN103959372A (zh) 2014-07-30
CN103959372B CN103959372B (zh) 2017-09-12

Family

ID=47883605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280048029.6A Expired - Fee Related CN103959372B (zh) 2011-07-29 2012-07-30 用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法

Country Status (8)

Country Link
US (1) US9257053B2 (zh)
EP (1) EP2737474A4 (zh)
CN (1) CN103959372B (zh)
BR (1) BR112014002270A2 (zh)
HK (1) HK1200588A1 (zh)
IN (1) IN2014CN00743A (zh)
MX (1) MX345588B (zh)
WO (1) WO2013039610A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071641A (zh) * 2017-03-31 2017-08-18 李宗盛 实时编辑多音轨的电子设备与处理方法
CN107273039A (zh) * 2017-07-03 2017-10-20 武汉理工大学 一种网络虚拟口琴
CN107682642A (zh) * 2017-09-19 2018-02-09 广州艾美网络科技有限公司 识别视频特效触发时间点的方法、装置和终端设备
CN108281130A (zh) * 2018-01-19 2018-07-13 北京小唱科技有限公司 音频修正方法及装置
CN109686347A (zh) * 2018-11-30 2019-04-26 北京达佳互联信息技术有限公司 音效处理方法、音效处理装置、电子设备和可读介质

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046430A9 (en) * 2002-01-04 2018-02-15 Alain Georges Systems and methods for creating, modifying, interacting with and playing musical compositions
AU2003275089A1 (en) * 2002-09-19 2004-04-08 William B. Hudak Systems and methods for creation and playback performance
US20120057842A1 (en) * 2004-09-27 2012-03-08 Dan Caligor Method and Apparatus for Remote Voice-Over or Music Production and Management
US9635312B2 (en) 2004-09-27 2017-04-25 Soundstreak, Llc Method and apparatus for remote voice-over or music production and management
US10726822B2 (en) 2004-09-27 2020-07-28 Soundstreak, Llc Method and apparatus for remote digital content monitoring and management
US7511215B2 (en) * 2005-06-15 2009-03-31 At&T Intellectual Property L.L.P. VoIP music conferencing system
JP5593608B2 (ja) * 2008-12-05 2014-09-24 ソニー株式会社 情報処理装置、メロディーライン抽出方法、ベースライン抽出方法、及びプログラム
BRPI1014092A2 (pt) * 2009-06-01 2019-07-02 Music Mastermind Inc aparelho para criar uma composição musical, e aparelho para intensificar áudio
US9177540B2 (en) 2009-06-01 2015-11-03 Music Mastermind, Inc. System and method for conforming an audio input to a musical key
US9310959B2 (en) 2009-06-01 2016-04-12 Zya, Inc. System and method for enhancing audio
US8575465B2 (en) * 2009-06-02 2013-11-05 Indian Institute Of Technology, Bombay System and method for scoring a singing voice
BRPI1001395B1 (pt) * 2010-05-12 2021-03-30 Associação Instituto Nacional De Matemática Pura E Aplicada Método para representar escalas musicais e dispositivo eletrônico musical
US9099071B2 (en) * 2010-10-21 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for generating singing voice
JP2012103603A (ja) * 2010-11-12 2012-05-31 Sony Corp 情報処理装置、楽曲区間抽出方法、及びプログラム
US10019995B1 (en) 2011-03-01 2018-07-10 Alice J. Stiebel Methods and systems for language learning based on a series of pitch patterns
US11062615B1 (en) 2011-03-01 2021-07-13 Intelligibility Training LLC Methods and systems for remote language learning in a pandemic-aware world
US8710343B2 (en) * 2011-06-09 2014-04-29 Ujam Inc. Music composition automation including song structure
US8829322B2 (en) * 2012-10-26 2014-09-09 Avid Technology, Inc. Metrical grid inference for free rhythm musical input
EP2772904B1 (en) * 2013-02-27 2017-03-29 Yamaha Corporation Apparatus and method for detecting music chords and generation of accompaniment.
US9728225B2 (en) * 2013-03-12 2017-08-08 Cyberlink Corp. Systems and methods for viewing instant updates of an audio waveform with an applied effect
US20150016631A1 (en) * 2013-07-12 2015-01-15 Apple Inc. Dynamic tail shortening
CA2929213C (en) * 2013-10-30 2019-07-09 Music Mastermind, Inc. System and method for enhancing audio, conforming an audio input to a musical key, and creating harmonizing tracks for an audio input
US10991350B2 (en) 2017-08-29 2021-04-27 Intelliterran, Inc. Apparatus, system, and method for recording and rendering multimedia
JP6735100B2 (ja) * 2015-01-20 2020-08-05 ハーマン インターナショナル インダストリーズ インコーポレイテッド 音楽コンテンツ及びリアルタイム音楽伴奏の自動採譜
US9741327B2 (en) * 2015-01-20 2017-08-22 Harman International Industries, Incorporated Automatic transcription of musical content and real-time musical accompaniment
CN105187936B (zh) * 2015-06-15 2018-08-21 福建星网视易信息系统有限公司 基于演唱音频评分的多媒体文件播放方法和装置
US9721551B2 (en) * 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions
CN106652655B (zh) * 2015-10-29 2019-11-26 施政 一种音轨替换的乐器
US9651921B1 (en) * 2016-03-04 2017-05-16 Google Inc. Metronome embedded in search results page and unaffected by lock screen transition
US11178457B2 (en) * 2016-08-19 2021-11-16 Per Gisle JOHNSEN Interactive music creation and playback method and system
US20190005933A1 (en) * 2017-06-28 2019-01-03 Michael Sharp Method for Selectively Muting a Portion of a Digital Audio File
US10509529B2 (en) 2017-09-29 2019-12-17 Apple Inc. Dynamic navigation object for a step-sequencer
CN110111793B (zh) 2018-02-01 2023-07-14 腾讯科技(深圳)有限公司 音频信息的处理方法、装置、存储介质及电子装置
US10586519B2 (en) * 2018-02-09 2020-03-10 Yamaha Corporation Chord estimation method and chord estimation apparatus
US20200058279A1 (en) * 2018-08-15 2020-02-20 FoJeMa Inc. Extendable layered music collaboration
US11081138B2 (en) * 2018-09-28 2021-08-03 Apple Inc. Systems and methods for automated music rearrangement
US10896663B2 (en) * 2019-03-22 2021-01-19 Mixed In Key Llc Lane and rhythm-based melody generation system
US10770045B1 (en) * 2019-07-22 2020-09-08 Avid Technology, Inc. Real-time audio signal topology visualization
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5955691A (en) * 1996-08-05 1999-09-21 Yamaha Corporation Software sound source
US20030110923A1 (en) * 1999-09-06 2003-06-19 Yamaha Corporation Music performance data processing method and apparatus adapted to control a display
CN1732692A (zh) * 2002-12-24 2006-02-08 皇家飞利浦电子股份有限公司 用于扩充音频信号的方法和系统

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4508002A (en) 1979-01-15 1985-04-02 Norlin Industries Method and apparatus for improved automatic harmonization
JP2602458B2 (ja) 1990-10-18 1997-04-23 株式会社河合楽器製作所 自動演奏装置
CA2112464C (en) 1991-06-28 2002-05-14 Lim Hong Lip Improvements in visibility calculations for 3d computer graphics
JP3303617B2 (ja) 1995-08-07 2002-07-22 ヤマハ株式会社 自動作曲装置
US5663517A (en) 1995-09-01 1997-09-02 International Business Machines Corporation Interactive system for compositional morphing of music in real-time
US6317503B1 (en) 1997-09-24 2001-11-13 Sony Corporation Multi-mode LED indicator for recording services
US6816904B1 (en) 1997-11-04 2004-11-09 Collaboration Properties, Inc. Networked video multimedia storage server environment
JP4117755B2 (ja) 1999-11-29 2008-07-16 ヤマハ株式会社 演奏情報評価方法、演奏情報評価装置および記録媒体
JP3678135B2 (ja) 1999-12-24 2005-08-03 ヤマハ株式会社 演奏評価装置および演奏評価システム
US6664460B1 (en) 2001-01-05 2003-12-16 Harman International Industries, Incorporated System for customizing musical effects using digital signal processing techniques
US7356051B2 (en) 2001-01-24 2008-04-08 Broadcom Corporation Digital visual interface with audio and auxiliary data cross reference to related applications
US7254455B2 (en) 2001-04-13 2007-08-07 Sony Creative Software Inc. System for and method of determining the period of recurring events within a recorded signal
EP1326228B1 (en) 2002-01-04 2016-03-23 MediaLab Solutions LLC Systems and methods for creating, modifying, interacting with and playing musical compositions
US7076035B2 (en) 2002-01-04 2006-07-11 Medialab Solutions Llc Methods for providing on-hold music using auto-composition
JP4203308B2 (ja) 2002-12-04 2008-12-24 パイオニア株式会社 楽曲構造検出装置及び方法
JP2004309725A (ja) 2003-04-04 2004-11-04 Roland Corp 効果装置
US7516232B2 (en) 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
JP4175292B2 (ja) 2004-05-14 2008-11-05 ヤマハ株式会社 ディジタルミキサ装置
EP1646035B1 (en) 2004-10-05 2013-06-19 Sony Europe Limited Mapped meta-data sound-playback device and audio-sampling/sample processing system useable therewith
DE102004049457B3 (de) 2004-10-11 2006-07-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Vorrichtung zur Extraktion einer einem Audiosignal zu Grunde liegenden Melodie
KR100651516B1 (ko) 2004-10-14 2006-11-29 삼성전자주식회사 악기연주 서비스 제공방법 및 장치
CN101203904A (zh) 2005-04-18 2008-06-18 Lg电子株式会社 音乐谱写设备的操作方法
US7601904B2 (en) 2005-08-03 2009-10-13 Richard Dreyfuss Interactive tool and appertaining method for creating a graphical music display
US7694230B2 (en) 2005-09-09 2010-04-06 Yamaha Corporation Digital mixer and program
EP1966799A1 (en) 2005-12-19 2008-09-10 Thurdis Developments Limited An interactive multimedia apparatus
KR100658869B1 (ko) 2005-12-21 2006-12-15 엘지전자 주식회사 음악생성장치 및 그 운용방법
US8983638B2 (en) 2006-02-28 2015-03-17 Adobe Systems Incorporated Automatic audio track setup
US7705231B2 (en) 2007-09-07 2010-04-27 Microsoft Corporation Automatic accompaniment for vocal melodies
US8832247B2 (en) 2006-03-24 2014-09-09 Blue Coat Systems, Inc. Methods and systems for caching content at multiple levels
GB0606119D0 (en) 2006-03-28 2006-05-03 Telex Communications Uk Ltd Sound mixing console
US7737354B2 (en) 2006-06-15 2010-06-15 Microsoft Corporation Creating music via concatenative synthesis
US8311656B2 (en) 2006-07-13 2012-11-13 Inmusic Brands, Inc. Music and audio playback system
JP4277885B2 (ja) 2006-08-10 2009-06-10 ヤマハ株式会社 ミキサ
WO2008030197A1 (en) 2006-09-07 2008-03-13 Agency For Science, Technology And Research Apparatus and methods for music signal analysis
US7812241B2 (en) 2006-09-27 2010-10-12 The Trustees Of Columbia University In The City Of New York Methods and systems for identifying similar songs
US8168877B1 (en) 2006-10-02 2012-05-01 Harman International Industries Canada Limited Musical harmony generation from polyphonic audio signals
US7667125B2 (en) 2007-02-01 2010-02-23 Museami, Inc. Music transcription
US7849420B1 (en) 2007-02-26 2010-12-07 Qurio Holdings, Inc. Interactive content representations enabling content sharing
US7667126B2 (en) 2007-03-12 2010-02-23 The Tc Group A/S Method of establishing a harmony control signal controlled in real-time by a guitar input signal
US7678986B2 (en) 2007-03-22 2010-03-16 Qualcomm Incorporated Musical instrument digital interface hardware instructions
US20080250315A1 (en) 2007-04-09 2008-10-09 Nokia Corporation Graphical representation for accessing and representing media files
AU2007202341A1 (en) 2007-05-23 2008-01-10 Vella, John Portable Music Recording Device
US7772480B2 (en) 2007-08-10 2010-08-10 Sonicjam, Inc. Interactive music training and entertainment system and multimedia role playing game platform
US8138409B2 (en) 2007-08-10 2012-03-20 Sonicjam, Inc. Interactive music training and entertainment system
US20090066638A1 (en) 2007-09-11 2009-03-12 Apple Inc. Association of virtual controls with physical controls
US8058544B2 (en) 2007-09-21 2011-11-15 The University Of Western Ontario Flexible music composition engine
JP2011516907A (ja) 2008-02-20 2011-05-26 オーイーエム インコーポレーティッド 音楽の学習及びミキシングシステム
JP2012504834A (ja) 2008-10-06 2012-02-23 ヴェルジェンス エンターテインメント エルエルシー 音楽的に相互作用する化身のためのシステム
US20100095829A1 (en) 2008-10-16 2010-04-22 Rehearsal Mix, Llc Rehearsal mix delivery
JP5310506B2 (ja) 2009-03-26 2013-10-09 ヤマハ株式会社 オーディオミキサ
US8351623B2 (en) 2009-03-27 2013-01-08 Yamaha Corporation Audio mixing apparatus
US8026436B2 (en) 2009-04-13 2011-09-27 Smartsound Software, Inc. Method and apparatus for producing audio tracks
US8080722B2 (en) 2009-05-29 2011-12-20 Harmonix Music Systems, Inc. Preventing an unintentional deploy of a bonus in a video game
US8076564B2 (en) 2009-05-29 2011-12-13 Harmonix Music Systems, Inc. Scoring a musical performance after a period of ambiguity
BRPI1014092A2 (pt) 2009-06-01 2019-07-02 Music Mastermind Inc aparelho para criar uma composição musical, e aparelho para intensificar áudio
US7893337B2 (en) 2009-06-10 2011-02-22 Evan Lenz System and method for learning music in a computer game
WO2010142297A2 (en) 2009-06-12 2010-12-16 Jam Origin Aps Generative audio matching game system
US20110013786A1 (en) 2009-06-19 2011-01-20 PreSonus Audio Electronics Inc. Multichannel mixer having multipurpose controls and meters
CN101959101B (zh) 2009-07-13 2012-09-05 雅马哈株式会社 数字混合器
US20110009990A1 (en) 2009-07-13 2011-01-13 Yamaha Corporation Digital mixer
US8153882B2 (en) 2009-07-20 2012-04-10 Apple Inc. Time compression/expansion of selected audio segments in an audio file
JP5246110B2 (ja) 2009-09-04 2013-07-24 ヤマハ株式会社 デジタルミキサ
US8093481B2 (en) 2009-11-23 2012-01-10 Avid Technology, Inc. Systems and methods for automatic collision avoidance, grouping and alignment of musical symbols
US8699727B2 (en) 2010-01-15 2014-04-15 Apple Inc. Visually-assisted mixing of audio using a spectral analyzer
JP2011199684A (ja) 2010-03-19 2011-10-06 Yamaha Corp デジタルオーディオミキサ
GB2546687B (en) 2010-04-12 2018-03-07 Smule Inc Continuous score-coded pitch correction and harmony generation techniques for geographically distributed glee club
EP2410680B1 (en) 2010-07-21 2016-02-17 Yamaha Corporation Audio signal processing apparatus
JP5454405B2 (ja) 2010-07-21 2014-03-26 ヤマハ株式会社 音響調整卓
US8380334B2 (en) 2010-09-07 2013-02-19 Linear Acoustic, Inc. Carrying auxiliary data within audio signals

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5955691A (en) * 1996-08-05 1999-09-21 Yamaha Corporation Software sound source
US20030110923A1 (en) * 1999-09-06 2003-06-19 Yamaha Corporation Music performance data processing method and apparatus adapted to control a display
CN1732692A (zh) * 2002-12-24 2006-02-08 皇家飞利浦电子股份有限公司 用于扩充音频信号的方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071641A (zh) * 2017-03-31 2017-08-18 李宗盛 实时编辑多音轨的电子设备与处理方法
CN107273039A (zh) * 2017-07-03 2017-10-20 武汉理工大学 一种网络虚拟口琴
CN107682642A (zh) * 2017-09-19 2018-02-09 广州艾美网络科技有限公司 识别视频特效触发时间点的方法、装置和终端设备
CN108281130A (zh) * 2018-01-19 2018-07-13 北京小唱科技有限公司 音频修正方法及装置
CN109686347A (zh) * 2018-11-30 2019-04-26 北京达佳互联信息技术有限公司 音效处理方法、音效处理装置、电子设备和可读介质

Also Published As

Publication number Publication date
BR112014002270A2 (pt) 2017-02-21
IN2014CN00743A (zh) 2015-04-03
US9257053B2 (en) 2016-02-09
EP2737474A1 (en) 2014-06-04
CN103959372B (zh) 2017-09-12
MX345588B (es) 2017-02-07
MX2014001194A (es) 2014-12-08
WO2013039610A1 (en) 2013-03-21
HK1200588A1 (zh) 2015-08-07
EP2737474A4 (en) 2015-04-29
US20120297958A1 (en) 2012-11-29

Similar Documents

Publication Publication Date Title
CN104040618B (zh) 用于制作更和谐音乐伴奏以及用于将效果链应用于乐曲的系统和方法
CN103959372B (zh) 用于使用呈现高速缓存针对所请求的音符提供音频的系统和方法
CN106233245B (zh) 用于增强音频、使音频输入相符于音乐音调以及创作用于音频输入的和声音轨的系统和方法
US9177540B2 (en) System and method for conforming an audio input to a musical key
US9251776B2 (en) System and method creating harmonizing tracks for an audio input
US9310959B2 (en) System and method for enhancing audio
US8779268B2 (en) System and method for producing a more harmonious musical accompaniment
US8785760B2 (en) System and method for applying a chain of effects to a musical composition
US9263021B2 (en) Method for generating a musical compilation track from multiple takes
CA2843438A1 (en) System and method for providing audio for a requested note using a render cache
Mayas Orchestrating timbre–Unfolding processes of timbre and memory in improvisational piano performance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1200588

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170912

Termination date: 20200730

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1200588

Country of ref document: HK