本发明涉及用于控制音乐混音的混音指令文件,涉及用于创建和执行混音指令文件的计算机程序产品以及包括至少一个这样的计算机程序产品的计算机设备。
背景技术:
本发明涉及音乐混音的创建和回放。创建和存储将音乐曲目文件操作成可以被重放的混音的音乐混音是众所周知的。这样的文件往往变得相当大,因为它们包括混音指令和音乐文件本身。
国际专利申请wo2008/004971公开了一种创建混音配置的方法,其中将如何混音音乐文件的指令存储在单独的混音配置文件中,它被设置为当混音中需要时,检索获取音乐曲目文件。混音配置文件具有指向音乐文件的链接。
在上述申请中,可以例如通过因特网从各种数据库检索音乐曲目文件。混音配置文件存储在本地,通常也在本地创建。在现有技术的应用中,没有预见到可以从另一台计算机检索混音配置文件本身。这将引起问题,因为文件的检索需要一些时间,这取决于文件的大小和网络的容量。同时,希望能够共享混音指令文件,甚至是实时的,即它被创建时即可以。
技术实现要素:
本发明的目的是提供用于音乐曲目的混音的混音配置,其适于被流传输。
本发明涉及用于回放音乐曲目(musictrack)的混音的混音配置文件(mixrecipefile),以及分别用于创建这样的混音和播放这样的混音的第一计算机程序产品和第二计算机程序产品。
特别地,本发明涉及用于控制至少一个音乐曲目文件的回放的混音指令文件,混音指令文件包括指令,该指令包括在所述至少一个音乐曲目文件要被访问时的时间点处的所述至少一个音乐曲目文件的指示,以及用于操作至少一个音乐曲目文件的输出的至少一个功能,构成混音状态的所述至少一个音乐曲目文件的指示和所述至少一个功能总和。混音指令文件被分成至少第一包和第二包,至少第二包在其开始处包括关于在与第二包的开始对应的时间点处的混音的回放状态的信息。
这有助于混音指令文件在计算机之间的传输,特别是从正在生成该混音指令文件的第一计算机到要在其上被回放的第二计算机的传输。回放甚至可以在近乎实时的情况下发生,因为已经创建的混音指令文件的数据包可能会在创建剩余的混音同时传输。如本领域常见的,每个包通常被封包在一个帧中,这使得它能够被同步用于流传输。
在第一优选实施例中,混音指令文件还包括在要访问音乐曲目文件之前的时间点指向至少一个音乐曲目文件的提前指针,以使得能够检索音乐曲目文件。这是因为音乐曲目文件的检索通常需要一些时间,时间的数量取决于存储在哪里。提前指针应该足够早,以确保在混音中播放之前检索到音乐曲目文件。
优选地,每个混音指令包在其开始处具有在与指令包的起始相对应的相关时间点处音乐混音的状态的完整信息。这确保每个新包具有继续回放所需的信息,而不会在新包开始时发生任何中断或突然变化。
混音指令文件也可以设计成使得每个混音指令包具有音乐混音内的任意时间点的音乐混音状态的完整信息。这使得能够在这样任意的时间点开始回放。
第一计算机程序产品包括计算机可读代码装置,其在第一计算机设备中运行时,将使设备根据用户输入:
a.检索获取要包含在混音中的至少一个音乐曲目;
b.应用至少一个效果到音乐曲目,从而影响回放速度和/或回放声音;
c.将关于至少一个音乐曲目和至少一个效果的信息存储在可以在第二计算机设备(32)中的回放程序中播放的混音指令文件中,使得第二计算机设备以与在第一计算机设备上的播放方式基本相同的方式播放混音。
该程序被设置为将混音指令文件分成至少第一包和第二包,第二包跟随混音中的第一包,并且在第二包的开始处插入定义第一包末尾处的混音状态的信息。
优选地,第一计算机程序产品还被设置为识别至少第一时间点,在该时间点处将检索音乐曲目,并且在混音指令文件中插入在要访问音乐曲目文件之前的时间点处指向至少一个音乐曲目文件的提前指针,以使得能够检索获取音乐曲目文件。
第二计算机程序产品包括计算机可读代码装置,其在计算机设备中运行时,将使设备:
a.检索获取根据前述权利要求中任一项的混音指令文件;
b.检索获取至少第一音乐曲目文件,其保持要播放的音乐曲目;
c.回放音乐曲目文件,同时将混音指令文件中的指令应用到音乐曲目,以改变其播放方式。
有利地,混音指令文件包括针对至少第一时间点和第二时间点的、标识分别在第一时间点和第二时间点播放的音乐曲目文件的信息。其还优选地包括针对至少第一时间点和第二时间点的、在至少一个包内,与分别在第一时间点和第二时间点对音乐曲目文件应用效果相关的信息。该信息可以被包括在用于音乐曲目文件的第一状态掩码中和用于关于效果的信息的第二状态掩码中,或者在用于两种类型的信息的一个公共状态掩码中。在这种情况下,第一计算机程序产品被设置为将相应的信息包括在文件中,并且第二计算机程序产品被设置成从文件中获得这样的信息,并根据信息确定开始回放混音的位置。
第二计算机程序产品优选地还包括用于使计算机设备上的屏幕显示与音乐曲目文件的播放相关的信息的计算机可读代码装置,诸如正在播放的音乐曲目文件的标题,以及对其应用的指令。
这使得远程创建的混音配置文件能够被发送到不同的位置,并且在它被创建的同时被播放,因为在创建新包的同时可以检索和播放已经创建的混音配置文件的包。混音配置文件可以以最小延迟播放,即只有网络延迟和很少的额外延迟。
本发明还涉及用于计算机设备的计算机程序产品,计算机程序产品被设置成使计算机设备检索混音指令文件并执行混音指令文件中的指令。因此,计算机设备可以用于播放音乐曲目的混音,其中使用dj功能混音并操作音乐曲目。指令包括用于检索要播放的至少一个音乐曲目文件的指令和影响音乐曲目文件或多个文件的回放的指令。
混音指令文件和音乐曲目文件可以存储在本地计算机设备上,或者可以例如通过因特网或其它网络从一个或多个其它计算机设备检索获取。在这种情况下,计算机设备可以是能够存储文件的任何类型的计算机,包括服务器、个人计算机、智能手机等。例如,可以设置程序来确定哪些文件在本地可用,并且从因特网检索本地不可用的任何文件。本发明适用于音乐流服务,诸如
本发明还涉及其上存储有如上的计算机程序产品的计算机设备。
混音可以包括任何数量的音乐曲目,两个、三个或更多。事实上,由于混音通常还包括在单个音乐曲目内的操作,因此混音可以仅包括一个曲目。
附图说明
以下将参照附图更详细地描述本发明,其中,
图1示出了可以使用本发明的网络环境。
图2示出了被分成包并被设置为在多个音乐曲目文件上工作的混音配置文件的第一个示例。
图3示意性地示出了根据一个实施例使用混音配置文件来控制回放的音乐曲目的回放。
图4示出了音乐曲目的回放的替代实施例。
具体实施方式
图1公开了可以使用本发明的网络环境。第一计算机设备31和第二计算机设备32被示意性地示出为连接到由云33表示的互联网。计算机设备在图1中示出为小型手持设备,但是可以是由用户操作的任何类型的计算机设备,包括诸如具有音乐播放能力的移动电话和平板电脑设备。计算机设备31、32具有用户输入/输出装置,通常但不一定包括屏幕35、36,屏幕35、36可以包括本领域常见的一些或全部用户输入/输出装置。如本领域常见的,计算机设备可通过有线或无线连接连接到因特网。通常,今天的计算机设备具有通过多种不同类型的连接(包括有线以太网、wifi、蓝牙等)连接到网络和/或连接到其它设备的装置。
其它计算机设备(未示出)也连接到网络33。这些计算机设备可以是服务器、个人计算机、平板电脑,或存储文件或能够传送文件的任何其它类型的计算机设备。第一计算机设备31和第二计算机设备32可以从这些计算机设备检索可以被下载或流式传输的音乐曲目文件和/或混音指令文件。在第一种情况下,通过网络检索文件并在使用之前将其存储在计算机设备31、32上。在后一种情况下,在使用这些文件的同时,检索获取这些文件并在计算机设备31、32上缓冲文件,但是通常不会将其永久地存储在相应的计算机设备31、32上,尽管这也是可能的。
在该示例中,第一计算机设备31是生成混音指令文件的设备。因此,该计算机设备31具有混音生成程序37,该混音生成程序37将允许设备31的用户通过加载和回放曲目、同时操纵其速度和添加其它效果、并且以本领域已知的方式在曲目之间混音,来产生混音。混音生成程序37还包括用于将混音存储在混音指令文件中以及用于将其发送到诸如第二计算机设备32的其它设备的一些功能。这可能发生在混音正在生成或稍后阶段。以下将讨论用于促进混音指令文件分发的混音生成程序37的创造性功能。
为了回放混音指令文件,第二计算机设备32具有回放程序38,其可以是诸如脚本或app的小程序,被设置为检索获取混音指令文件、检索获取音乐曲目文件并根据需要在适当的时间点执行存储在混音指令文件中的指令。可以一次检索整个混音指令文件,但是优选地将其分成多个包,可以从第一计算机设备31各个单独发送。如本领域中常见的,包通常被包装在帧中,使得它们能够被同步流式传送。这两者将使得实现带宽控制,并且还可以实现在创建混音指令文件的同时对其进行流式传输。如果设备32具有屏幕36,则回放程序38或单独的程序可以提供控制功能,用于显示与混音有关的信息,例如正在播放哪个曲目,哪个曲目将要很快播放、已经被应用的任何效果等。
当然,任何设备可以都包括混音生成程序37和回放程序38,其也可以在一个单个程序中实现。
在一个实施例中,第二设备32被设置为在屏幕上显示图像,模拟dj设备,其具有用于执行各种功能的控制输入装置。在这种情况下,混音指令文件不仅包括加载正确的曲目以及按需要操作它们所需的信息,而且还包括混音指令文件的创建者如何使用他设备上的各种输入装置来选择曲目并操作它们相关的信息。为了实现这一点,回放程序38还包括功能:用于在屏幕上操作控制输入装置以反映响应于混音指令文件中的指令正在音乐曲目上执行的功能。屏幕将作为一种反映正在播放的音乐的“演奏者钢琴”。
图2示出了混音配置文件1,被分成第一混音配置包2,第二混音配置包4和第三混音配置包6,每个包包括用于与回放混音时的某个时间段对应的一部分文件的所有混音指令。由混音指令包覆盖的确切时间段对于所有包可以是相同的,但是优选地,包之间的时间段是可变的。当回放混音配置时,可以一次检索包2、4、6中的一个。在混音配置文件1的第一包2的开始8处,如箭头9所示,寻址第一音乐曲目文件21,然后包将包含如何操作音乐曲目文件的回放的指令。这可能包括速度改变操作,例如曲调或音调(bendorpitch),改变回放音量以及添加循环或回放效果(如混响或刮擦声)。图2的第一混音配置包2还包括一段时间之后检索获取第二音乐曲目文件23、与第一音乐曲目21文件相混音的命令,以及从第一音乐曲目文件21到第二音乐曲目文件23的渐变的命令。用箭头10示出检索获取第二音乐曲目文件23的命令。渐变淡入淡出的时间段表示为图2中的阴影区域24。
因此,经过一段时间,混音指令文件中指示的添加的操作动作表示一种回放状态,指示当前正在播放哪个音乐曲目文件(或多个文件)、在音乐曲目文件中的位置以及当前应用的效果,例如回放速度。在第二包4中,用箭头11表示检索获取第三音乐曲目文件25的命令。从第二曲目到第三曲目的渐变淡入淡出被示为图2中的阴影区域26。在图2中,第三包6未被设置成检索获取任何音乐曲目文件,而只是继续操作已经由第二包4使用的音乐曲目文件或多个文件。当然,混音指令包2、4、6中的每一个可被设置成检索获取一个任意数量的音乐曲目文件,并根据需要对文件应用任何效果的组合。
优选地,每个混音配置包,或第一包2之后的每个混音配置包,开始于开始部分12、14,在相应包的开始处示出为阴影区域,具有对在包的开始时间的混音配置的回放状态的完全表示,其与前一包结束时的状态相同。第一个混音配置包可以具有这样的开始部分,但不是必需的,因为不会考虑以前的活动。在整个数据包中,对混音所做的更改(音乐曲目的更改或应用的任何效果)可以逐渐存储在数据包中。
从开始回放混音配置文件1时,检索获取该第一音乐曲目文件21,然后以混音配置文件中指示的方式进行操作。在适当的时间点检索获取第二个音乐曲目文件,以混音配置文件中指示的方式进行操作。通常,改变第一音乐曲目文件和/或第二音乐曲目文件的回放速度,使得它们相匹配,并且执行从第一音乐曲目文件到第二音乐文件的渐变淡入淡出。
以下将讨论混音生成程序37的功能:
当混音的创建者开始在第一设备31上的混音生成程序37中创建混音时,这涉及检索获取音乐曲目,在期望的时间点添加诸如曲调、音调、刮擦声等的效果。可用的确切效果将取决于混音生成程序。此外,在一些实施方式中,可以从外部模块导入效果。如果要在不同的回放程序38中播放混音,则在回放程序38中应该可以获得如在混音生成程序37中相同的效果,以确保所有设备上的回放听起来都一样。
混音生成程序37还执行使得能够将文件发送到第二设备32所需的功能,并将其存储在第一设备32上。这涉及将混音指令文件分成包。将文件分为包有两个原因:首先,包的大小可以适应带宽要求。此外,为了实时回放,必须在创建混音指令文件的同时发送混音指令文件。这意味着已经生成的文件的部分应在整个包准备就绪之前传输。
为了确保可以播放每个新包,每个包应包括覆盖在与包开始对应的时间点的混音的整个回放状态的信息。或者,只有一些包可以被设置成包括这样的信息。这将减少混音需要传输的开销量,但也可能降低回放质量。此外,可能并不总是只跳到当前包的开头,可能需要跳回到具有整个状态的最近的前一个包。
包开始处的信息通常包括诸如哪些曲目是活跃的、每个曲目内的位置、回放速度和可能已经被应用的其它效果的信息,以及正被检索获取或应该很快将被检索获取的曲目。优选地,包还应包括在该时间点存储在特定效果的缓冲器中的数据,以确保回放听起来正确。当并不是从头到尾连续播放混音时,这是特别有用的。例如,当跳回到应用混响的时间点时,在给定时刻由混响效果产生的实际输出将取决于当时应用的混响。
这意味着每个包必须以状态信息的形式携带一些开销(overhead)信息。因此,这些包不会太小,因为这将导致通过网络传输的开销信息的总量增加。同时,包应该足够小以便以低延迟传输。对于近乎实时的传输,包可以覆盖一秒或更少。当发送供以后使用的混音指令文件时,可以更自由地选择每个包中包括的时间段,例如最多10秒。
可以选择包来覆盖固定的时间量,对于所有包可以是相同的,或者更优选地,可以根据每个包中的信息量来划分包。如果在特定时间段内没有添加任何效果,则与该时间段对应的包将包含每时间单位非常少的数据。因此,该包可以选择来覆盖更长的时间段而不变得太大。在一个短的时间段内应用几个效果的时候,和/或检索获取几个曲目时,将在一段时间内有大量的信息。在这种情况下,包应该覆盖较短的时间段以使其处于可管理的大小。此外,优选地,在需要发送相对少的状态信息的点处,在包之间进行分割。这可能是例如当没有特殊效果时,因为添加到音乐中的特殊效果将增加需要发送的开销信息量。此外,优选的是只有一个曲目正在播放,并且没有检索获取曲目。将结合图3对此讨论。
当播放混音指令文件时要使用的曲目可以存储在播放混音指令文件的本地设备中,或者可以从另一设备或从网络获取。因此,检索获取曲目可能会延迟,使得在开始播放时可能不可用。特别是当第二设备32需要比创建混音的第一设备31更长时间的来检索获取曲目时,这是一个问题。特别的情况是在第一设备31上找到音乐文件本身。因此,当创建混音指令文件时,生成它的混音生成程序37被配置为检测在特定的时间点开始播放特定音乐曲目文件的指令,并在较早的时间点添加开始检索获取该音乐曲目的指令。为了确保第二音乐曲目文件在正确的时间点可用,混音配置文件因而包括将要使用第二音乐曲目文件的提前指示。在图2中,示出了由三角形16和18表示的两个这样的提前指示,分别表示应该检索获取第二音乐曲目文件23和第三音乐曲目文件25。以这种方式,设备可以开始检索获取第二音乐曲目文件,例如在播放之前几秒钟,并缓冲它,以便在需要时可以使用它。应当选择特定时间点10和较早的时间点16之间的时间差,以确保在回放程序38将要执行开始播放音乐曲目文件的指令之前,播放混音的设备32中接收了足够的音乐曲目。混音指令包优选地以提前指示和用于检索获取第二音乐文件的命令处于相同包的方式来设置。如果它们被放置在不同的包中,则在混音中从一个包移动到另一个包时,需要跟踪音乐文件的检索获取所需的数据量。
在一个实施例中,混音指令包还可以包括除了包开始处的其它点处的状态检查点。状态检查点将包括在相关时间点的音乐混音的回放状态的全部或一部分。
图3示意性地示出了其中使用两个信道回放混音的回放情况:第一信道ch1和第二信道ch2。第一信道显示在最上半部分,第二信道显示在最下半部分。正在回放的曲目沿时间线显示为细长的矩形。
绘图中的情况从在第一信道中播放的第一曲目101开始。在第一时间点t1处,第一效果被施加到第一曲目,并且在第二时间点效果结束。在第三时间点t3处,第二曲目102开始在第二信道中播放,在第四时间点t4处,第一曲目停止回放。在第三时间点t3和第四时间点4之间,如本领域中所熟知的,通常会施加渐变淡入淡出以逐渐淡出第一曲目101同时增加第二曲目102的音量。在第五时间点t5和第六时间点t6之间,第二个效果被应用到第二曲目。
理想地,可以在混音的任何时间点开始回放。如结合图2所讨论的,混音指令文件优选地被分成包,以这种方式使得每个新包在不施加效果并且没有加载新曲目的时间点开始。所以在图3的例子中,优选的时间将是例如在第二个时间点t2和第三个时间点t3之间,以及在第四个时间点t4到第五个时间点t5之间,如点划线105所示的,此时只有播放曲目的标识,即分别是第一曲目101和第二曲目102,以及曲目内的位置需要传送。类似地,如果在这样的时间开始回放,则可以传送所需的信息。
为了知道正在播放哪个曲目以及正在应用哪些效果,在任何给定的时间,可以应用状态掩码,其保持每个时间点的该信息。状态掩码可以是指向状态改变的所有时间点的表格的形式。这包括加载新曲目的时间点、曲目开始播放的时间点、曲目停止播放的时间点,以及应用于曲目的任何效果。
状态掩码可以是简单表格,对于每个时间点具有一个记录,每个记录包括对应于不同功能或效果的几个比特,并且被设置以指示该功能是否开启。通常,如果在相关时间点应用了效果,则该比特被设置为1,如果不是,该比特被设置为0。可以包括对于应用的效果开始时的时间点的索引。这将增加每个记录的大小。为了限制增加,它可以仅针对随时间变化的效果来实施,这将是有利的。
所播放的曲目可以包括在同一个表格中,或者可以具有它自己的表格,对每个时间点指示正在播放哪个曲目。曲目中的实际位置必须包含在其中一个表格中。
效果可以是本领域已知的任何类型的效果。一些效果将以明确的方式影响曲目,只要效果被应用,这将是相同的。对于其它的,结果将随时间而变化。例如,回声或混响效果将在应用于曲目的时间段内变化。为了处理后一类型的效果,例如,当在应用这样的效果的特定时间点开始回放时,对于该特定时间点检索获取状态掩码是不够的。要获得完全相同的回放结果,有必要返回到第一次应用效果的时间点,例如图3中的t1或t5,并从此时间点回放或分析回放。跳转到效果开始的时间点t1或t5并不总是可行的。相反,可能优选跳转到更早的时间点,例如应用效果的包的开始处。在这种情况下,假设包的开始由图103中的虚线105指示,这意味着如果尝试在第五时间点t5和第六时间点t6之间开始,则实际上将在包开始的时间点105处开始。这是用于包开始的合适位置,因为混音指令不包括命令,因此唯一发生的是正在播放第二曲目。
图4中示出了替代实施例,其类似于图3示出了使用第一信道ch1和第二信道ch2的混音。该示例类似于图3的示例,从在第一信道中播放的第一曲目201开始。在一段时间之后,开始在第二信道中播放第二曲目202,并且稍后一段时间,第一曲目停止回放。在稍后的时刻,第三曲目和第四个曲目分别开始。施加到曲目的效果显示为相应曲目内的阴影区域。
在该实施例中,混音指令文件中的每个包具有关于曲目或曲目播放的信息以及在数据包中的任何给定时间应用于曲目的任何效果的信息。可以在混音指令文件内的任何时间点开始回放,但是为了说明的目的,确认了在第二信道ch2上正在播放曲目的第一时间点205,以及在第一信道ch1上正在播放曲目的第二时间点206。在第一时间点205,对第一曲目施加效果。在第二时间点206,没有施加效果。因此,当在混音指令文件中的特定位置开始回放时,关于当前曲目和效果的信息将在文件中可用,而不是关于它们的起始点的信息。
为了提供该信息,为每个包提供表格210,其包括针对每个改变的时间点信息,即,针对每个新曲目和每个效果的起始点的信息。这在图4中由实心箭头表示,从表格指向针对曲目和效果的起始点。为了清楚起见,图4中没有示出所有可能的指针。
表格210在包完成之后生成。如果混音指令文件不是实时或半实时共享,则所有表格可以在混音指令完成后生成,或者一个表格可以用于多个包,或者用于整个混音指令文件。为了生成表格,需要搜索数据包,并注意任何起始点。
在所有实施例中,可以定义信息类型的层级。当然,在任何给定时间跟踪的最重要的信息是识别正在播放的音乐曲目文件及其起始点。关于应用随时间变化的混响或刮擦声等效果的信息也重要,因为该效果的结果将随时间而变化。此外,这种效果可能会影响曲目的定时。关于不随时间变化的效果的应用的信息对于保持准确的跟踪不太重要。这意味着在图4所示的实施例中,将在表格中找到关于每个曲目的起始点的信息。此外,优选地包括关于根据时间而变化的任何效果(诸如刮擦声或混响)的起始点的信息。当然,也可以包括其它信息,诸如关于随时间恒定的效果的信息。然而,一般来说,期望使信息量最小化,以保持必须传送的信息量尽可能低。
在图4的实施例中,如果没有提供表格,则仍然可以在任何时间点开始回放混音。然而,在这种情况下,至少必须以某种替代方式确定关于曲目的起始点的信息,以确定要播放的曲目中的正确时间。一种替代方式是在时间上向后搜索包,以便可以确定当前曲目的起始点。根据上面的推理,至少要确定曲目的起始点。优选地,当新曲目开始时,停止应用到先前曲目的所有效果。或者,也可以在曲目改变时保持效果的运行。
根据本发明的混音指令文件适用于流式传输,并且适用于与流式音乐曲目文件一起使用,因为它被设计为使等待时间最小化,如上概括的。因此其适用于音乐流媒体服务,诸如
有时,当将曲目添加到混音中时,曲目应该在其它点而不是曲目的开头开始播放。例如,在流服务(例如