本发明要求2003年8月19日提交的发明人为PatrickM.Baudisch的名为“平滑音频控制模型(Flat Audio Control Model)”的美国临时申请号60/496,337的优先权,美国临时申请号60/496,337通过引用结合于此。
附图说明
结合附图参考以下详细描述能更好地了解并更容易地理解本发明的上述方面和许多伴随优点,附图中:
图1所示是计算机系统中用于操纵各种音频设置层次结构值的一组常规用户界面的框图;
图2所示是依照本发明由计算机系统实现的平滑音量控制处理例程的流程图:
图3所示是依照本发明由计算机系统实现的平滑音量特征树生成子例程的流程图;
图4A-4G所示是依照本发明生成的平滑音量特征树的各个迭代的框图;
图5所示是依照本发明基于父节点值的平滑音量特征树变换子例程的流程图;
图6所示是依照本发明基于子节点值的平滑音量特征树变换子例程的流程图;
图7所示是依照本发明的平滑音量特征树向硬件音频设置层次变换子例程的流程图;
图8A-8C所示是依照本发明包括总软件应用音频设置控制和多种用于软件应用的系统音频设置控制的集中式音频控制显示的各种实施例的框图;
图9所示是依照本发明包括总软件应用音频设置控制和多种用于软件应用的系统音频设置控制的集中式音频控制显示的替换实施例的框图;
图10A-10D所示是依照本发明用于在应用程序控制中显示各种音频控制值指示器的替换实施例的框图;
图11所示是依照本发明用于在应用程序控制中显示各种音频控制值指示器的替换实施例的框图;以及
图12所示是依照本发明用于在应用程序控制中显示各种音频控制值指示器的替换实施例的框图。
具体实施方式
一般而言,本发明涉及一种用于对软件应用音频信号总输出音量建模的系统和方法,一般称为平滑音量模型。更具体而言,本发明涉及一种在音频设置层次中实现软件应用的平滑音量模型的系统和方法。本发明可对应于确定表示音频信号总输出音量的平滑音量设定,并用于对应于该平滑音量设定优化音频设置层次中的硬件/软件设置。另外,本发明的另一方面涉及表示软件应用音频信号的平滑音量模型的各种用户界面。尽管将参考说明性音频设置层次、音频设置值、各种用户界面和用户交互来描述本发明,本领域的技术人员可以理解,揭示的实施例在其特征上是说明性的,不应当是限制性的。
相关领域的技术人员可以理解,本发明的方面可以在包括一个或多个软件应用,包括某一形式的用户界面的计算机系统中实现。计算机系统可对应于各种各样的计算装置,如个人计算机、基于服务器的计算机、手持式计算机、移动计算机、个人数字助理、移动电话、音频处理设备(如混音器和采样装置)等等。此外,如上所述,包括在计算机系统中的软件应用可对应于包括允许用户操纵音量设定的显式控制的软件应用。另外,包括在计算机系统中的软件应用也可对应于生成音频信号,但是不包括允许用户操纵音量设定的显式控制的软件应用。
图2所示是依照本发明由用于实现软件应用音频信号的平滑音量框架的计算机系统实现的平滑音量控制处理例程200的流程图。在块202,计算机系统生成平滑音量特征树。如后文所更详细解释的,平滑音量特征树是基于计算机系统音频设置层次的树结构。如后文所解释的,平滑音量特征树内的节点的初始值对应于计算机系统音频设置层次中的当前硬件/软件音量设定。
图3所示是依照本发明并对应于图2的块202由计算机系统实现的平滑音量特征树生成子例程300的流程图。在块302,计算机系统基于当前音量控制设置生成平滑音量特征树。相关领域的技术人员可以理解,音量控制设置值可以被表示为通过每一音量控制的音量信号的百分比。例如,100%的音量控制设置将通过所有的音量信号,而0%的音量控制设置将不通过任何音量信号。图4A所示是对应于当前音量控制设置值的三层平滑音量特征树400的框图。树中的第一层包括对应于主音量控制设置的顶节点402。在本发明的说明性实施例中,顶节点402的值对应于主音量的当前音量控制设置。此外,顶节点402的值也可反应当例示静音控制时具有“0”值的静音控制设置。
平滑音量特征树400也可包括对应于输入通道的第二层,并包括三个节点404、406和408。类似于顶节点402,节点404、406和408的值对应于各自输入通道的音量控制的当前设置。此外,节点404、406和408的值也可反应每一相应的输入通道的静音控制的设置。继续参考图4A,平滑音量特征树400也包括对应于软件应用音量设定的第三层,并包括六个节点410、412、414、416、418和420。节点410、412、414、416、418和420是平滑音量特征树400的叶节点,并包括对应于每一相应软件应用的音量设定的当前设置的值,可包括静音控制值。如图4A所示,节点410、412、414、416、418和420是叶节点,没有子节点。图4B所示是为说明目的包括平滑音量特征树400中每一节点的说明性值的框图。相关领域的技术人员可以理解,节点402-420中示出的值在特性上是说明性的,并用于依照本发明说明各种过程。另外,相关领域的技术人员可以理解,计算机系统可在音频设置层次中具有任意数量的层级。因此,平滑音量特征树将具有对应的层级数。此外,在软件应用不包括应用程序层级音量控制的情况下,平滑音量特征树将不包括特定软件应用的对应层级的节点。
返回到图3,计算机系统开始将平滑音量特征树值从当前硬件音频设置层次值变换到平滑音量模型。在块304,计算机系统依照父节点值变换平滑音量特征树400。下文将参考子例程500(图5)描述基于父节点值的平滑音量特征树400的变换。在块306,计算机系统通过基于子节点值变换平滑音量特征树400继续该变换过程。下文将参考子例程600(图6)描述基于子节点值的平滑音量特征树400的变换。在完成变换之后,子例程300返回。
图5所示是依照本发明由计算机系统实现的基于父节点值的平滑音量特征树变换子例程500的流程图。更具体地,子例程500对应于自顶向下平滑音量特征树变换子例程。在块502,顶层级节点被设为当前节点用于处理。在块504,当前节点值被设为等于当前节点值和父节点值的乘积。在判别块506,执行测试来确定平滑音量特征树400的当前层级是否存在另外的节点。如果在当前层存在另外的节点,则在块508,将当前层级的下一节点设为当前节点,子例程500返回到块504。
如果在当前层级不存在另外的节点,则在判别块510,执行测试来确定平滑音量特征树400的下一层级是否存在另外的节点。如果在下一层级存在节点,则在块512,平滑音量特征树400的下一层级的第一节点被设为当前节点,子例程500返回到块504。可选地,如果平滑音量特征树400的下一层级不存在另外的节点,则子例程在块514返回。
图4B和4C所示是说明子例程500的两次迭代的平滑音量特征树400的框图。如图4B所示,节点404、406和408的值由该节点与其父节点402的值的乘积替换。参考图4C,在子例程500的第二次迭代中,节点410、412、414、416、418和420的值由该节点与其各自的父节点404、406和408的乘积替换。由于平滑音量特征树400中没有剩余的其它层级,子例程500返回。
图6所示是依照本发明由计算机系统实现的基于子节点值的平滑音量特征树变换子例程600的流程图。更具体地,子例程600对应于自底向上的平滑音量特征树变换子例程。在块602,将底层级节点设为当前节点用于处理。在块604,将当前节点值设为等于当前节点的所有子节点的最大值。在判别块406,执行测试来确定平滑音量特征树400的当前层级是否存在另外的节点。如果存在另外的节点,则在块608,将当前层级的下一节点设为当前节点,子例程600返回到块604。
如果当前层级不存在另外的节点,则在判别块610,执行测试来确定平滑音量特征树400的下一层级是否存在另外的节点。如果在下一层级存在节点,则在块612,将平滑音量特征树400的下一层级的第一节点设为当前节点,子例程600返回到块604。可选地,如果平滑音量特征树400的下一层级不存在另外的节点,子例程600在块614返回。
图4D和4E所示是说明子例程600的两次迭代的平滑音量特征树400的框图。如图4D所示,节点404的值由其子节点的最大值,即节点410的值替换。类似地,节点406和408的值由其子节点的最大值替换。参考图4E,在子例程600的第二次迭代中,节点402的值由其子节点的最大值,即节点404的值替换。由于没有另外的层级具有节点,子例程600返回。
返回到图2,一旦在块202生成并变换了平滑音量特征树400,每一软件应用的总输出音量可由平滑音量设定控制表示。在本发明的一个说明性实施例中,平滑音量设定对应于平滑音量特征树400(图4)中的每一叶节点的值。然而,由于平滑音量设定不直接对应于音频设置层次中的硬件/软件音频设置,因此在块204,基于平滑音量特征树生成新的音频层次设置值。
图7所示是依照本发明由计算机系统实现的平滑音量特征树到硬件音频设置层次变换子例程700。更具体地,子例程700对应于将平滑音量特征树节点值映射到音频设置层次的自顶向下的音频设置层次变换的子例程。在块702,将顶层级节点设置为当前节点用于处理。在块704,将当前节点值设为等于当前节点值和父节点值的商。在判别块706,执行测试来确定平滑音量特征树的当前层级是否存在另外的节点。如果当前层级存在另外的节点,则在块708,将当前层级的下一节点设为当前节点,子例程700返回到块704。
如果当前层级不存在另外的节点,则在块710,执行测试来确定平滑音量特征树的下一层级是否存在另外的节点。如果下一层级存在节点,则在块712,将平滑音量特征树的下一层级的第一节点设为当前节点,子例程700返回到块704。可选地,如果平滑音量特征树的下一层级不存在另外的节点,则子例程700在块714返回。
图4F和4G所示是说明子例程700的两次迭代的平滑音量特征树400的框图。如图4E所示,节点402的值被更改为“1”,因为它是顶节点且不具有父节点。另外,节点404、406和408的值由该节点与其父节点402的值的商替换。参考图4E,在子例程700的第二次迭代中,节点410、412、414、416、418和420的值由该节点与其各自的父节点404、406和408的商替换。由于平滑音量特征树400中没有剩余的其它层级,子例程700返回。
再次返回到图2,在块206,计算机系统生成表示软件应用的平滑音量控制的一个或多个用户界面。在本发明的一个说明性实施例中,软件应用的平滑音量控制对应于与该软件应用生成的音频信号的总输出音量相对应的单个音量设定控制。平滑音量控制不必对应于传统计算机音频设置层次上的任一音量设定。在本发明的一个实施例中,平滑音量控制可以包括在与软件应用关联的一个或多个屏幕显示内。平滑音量控制的位置可以类似于常规软件应用音量设定控制的位置。在本发明的另一实施例中,平滑音量控制可以位于用于控制多个软件应用的平滑音量设定的集中式音量控制显示中。
图8A所示是依照本发明包括由计算机系统生成的集中式音频控制显示800的框图。集中式音频控制显示800包括用于操纵多个软件应用的平滑音量控制设置的第一总软件应用音频设置控制802。在本发明的一个说明性实施例中,第一总软件应用音频设置控制802是可由用户操纵来增加或减少平滑音量控制设置的刻度的形式。如图8A所示,作为刻度,第一总软件应用音频设置控制802不指示任一特定的音量状态。集中式音频控制显示800还包括用于控制多个软件应用的所有平滑音量控制设置的静音功能的第二总软件应用音频设置控制804。在本发明的一个说明性实施例中,第二总软件应用音频设置控制804可对应于允许用户选择或取消选择该控制的任一用户界面。
集中式音频控制显示800还包括用于跟踪计算机系统上各种软件应用的平滑音量控制设置的多个另外的显示。软件应用可对应于例示的软件应用、最喜欢的软件应用、最近例示的软件应用和任一其它所选择的软件应用。如图8A所示,在集中式音频控制显示800上表示了用于三个软件应用的平滑音量设定控制。每一表示包括指示软件应用的平滑音量的可能范围的滑动条806、810和816以及软件应用的当前平滑音量设定的指示器808、812和814。相关领域的技术人员可以理解,可以以多种方式来表示平滑音量设定的当前状态。
再次返回到图2,一旦对各种软件应用的平滑音量设定建模并以用户界面表示,例程200进入重复的循环来检测平滑音量设定的更改并相应地调节硬件设置。如图2所示,在判别块208,执行测试来确定是否调节了平滑音量控制。在本发明的一个实施例中,个别的软件应用的平滑音量控制可由对应于特定软件的平滑音量滑动条的用户操作来调节。因此,多个软件应用的平滑音量控制可通过操作总软件应用音频设置控制802、804来调节,下文将更详细地描述。相关领域的技术人员可以理解,调节平滑音量指示器,如在下文描述的用户界面中,将导致对平滑音量特征树400中表示该特定软件应用的节点的值的更改。
如果没有检测到调节,例程200返回到判别块208。可选地,如果检测到平滑音量调节,则在块210,计算机系统依照检测到的调节来调节平滑音量特征树400。在本发明的一个说明性实施例中,平滑音量特征树400的调节可对应于如子例程500和子例程600所示的整个平滑音量特征树的优化。可选地,在本发明的另一实施例中,平滑音量特征树的调节可对应于由更改的平滑音量特征节点值影响的树的分支的部分处理。一旦调节了平滑音量特征树400,在块212,计算机系统依照调节的平滑音量特征树的值来调节音频设置层次。在本发明的一个说明性实施例中,可实现子例程700来确定任何新的音频设置层次值。子例程200然后返回到判别块210来确定任何新的平滑音量控制设置调节。
现在参考图8B和8C,将描述通过总软件应用音频设置控制802、804来调节多个软件应用平滑音量控制的实施例。参考图8B,为增大平滑音量控制设置,可以在对平滑音量控制设置中的正增加指示的方向上操纵第一总软件应用音频设置控制802。在本发明的一个说明性实施例中,用户可使用用户输入设备,如鼠标,来促使刻度沿一方向中旋转。刻度的旋转会促使刻度旋转一个预定距离,如多个步长。可选地,旋转可以是连续的。
在本发明的一个说明性实施例中,总软件应用音频设置控制802的旋转的距离使指示器808、812和816在同一方向上移动。指示器808、812和816的移动可对应于其各自的先前值的某一百分比。例如,刻度802的一个增量的移动可对应于对最高指示器-指示器808的等值的增量。如果指示器808的移动对应于系数X的增量,则其它指示器812和816将移动来表示同一系数X的增长。可选地,指示器808、812和816的移动可对应于比刻度802的移动大或小的某一不同的百分比。例如,刻度802的两个增量的移动/旋转可仅对应于指示器808、812、816的单个增量的移动。
在本发明的说明性实施例中,在总软件应用音频设置控制802的每一旋转中,所有指示器808、812、816相对彼此移动一个成比例的距离。例如,刻度802的移动可对应于指示器808的等量移动。如果指示器808的值增加了40%,则指示器812和816的值将增加40%。此外,在本发明的一个说明性实施例中,一旦指示器之一达到阈值,如最大值,则禁止由总软件应用音频设置控制802的旋转引起的指示器值的进一步增加,来维护软件应用指示器808、812和816之间的平滑音量设定的相对差。可选地,其它指示器可继续移动,直到它们个别地达到最大值。
参考图8C,为减小平滑音量控制设置,可以在沿平滑音量控制设置的负增加指示的方向上操纵第一总软件应用音频设置控制802。与图8B类似,在本发明的一个说明性实施例中,用户可操纵第一总软件应用音频设置控制802来促使每一平滑音量指示器808、812和816相应地减小。因此,用户可操纵第二总软件应用音频设置控制804来促使所有指示器808、812和816自动减小到零值。在本发明的一个说明性实施例中,第一总软件应用音频设置控制802可继续沿减小平滑音量控制设置的方向上转动,直到所有指示器达到零值。另外,在本发明的一个说明性实施例中,一旦所有的指示器808、812和816达到零值标记,可以更改第二总软件应用音频设置控制804来允许用户将该指示器值恢复到最后一个非零设置。
图9所示是用于操纵平滑音量控制的集中式音频控制显示900的一个替换实施例的框图。类似于集中式音频控制显示800,集中式音频控制显示900包括跟踪计算机系统上各种软件应用的平滑音量控制设置的多个显示。每一表示包括指示该软件应用的平滑音量的可能范围的滑动条906、910和916以及该软件应用的当前平滑音量设定的指示器908、912和914。另外,集中式音频控制显示900包括用于控制软件应用的平滑音量控制设置的第一和第二总软件应用音频设置控制902、904。在本发明的一个说明性实施例中,第一总软件应用音量设定控制902呈音量滑动条的形式。音量滑动条的指示器对应于集中式音频控制显示900中的所有指示器908、912和916的最大值。然而,如上所述,第一和第二总软件应用音频设置控制的操纵可导致各个的指示器908、912和916的调节。
图10A-10D所示是表示依照本发明的各个应用程序音量控制中的各种音量设定控制值的替换实施例的框图。依照该实施例,应用可在不支持平滑音量控制的操作系统中实现平滑音量实现。参考图10A,单个软件应用音量控制可在图形用户界面1000上表示为滑动控制1004。图形用户界面1000可对应于仅与软件应用关联的界面。可选地,该界面可对应于某一集中式控制。图形用户界面1000也可包括对应于主音频音量的一个水平的主音频音量指示器1006。如图10A所示,滑动控制1004大约在应用程序音量的最大值的40%处,而主音量指示器1006大约在最大系统音量的70%处。由此,图形用户界面1000向用户表示该应用程序音量层级以及它如何被主音量设定影响。
现在参考图10B和10C,在操纵滑动条1004达到主音频音量指示器1006的水平的情况下(图10B),滑动控制1004的另外的操纵增大了主音频音量指示器1006的水平(图10C)。在本发明的一个说明性实施例中,增大主音频音量指示器1006具有增大计算机系统上的主音频音量设定的效果。因此,如图10D所示,即使滑动控制1004被向下调节,主音频音量指示器1006保持在新的水平。由此,用户可操纵滑动控制1004来调节应用程序音量,只要滑动控制在主音频音量指示器1006之下。可选地,当用户向下拖动滑动控制1004时,主音频音量1006可减小。在滑动控制1004被调节到主音频指示器1006之上的情况下,主音频音量也被调节,并且其它应用程序的总音量水平可被影响。
现在参考图11和12,描述了用于实现平滑音量控制的替换用户界面。参考图11,替换用户界面1100可包括用于控制两个或多个属性的两个控制。依照本发明的一个说明性实施例,该控制可包括可用于以类似于总软件应用音频设置控制802(图8)的方式全局地调节多个应用的平滑音量控制的主音量控制1102。另外,该控制可包括对应于单个软件应用的个别平滑音量控制1104。依照该说明性实施例,可沿第一音频标尺调节主音频控制1102。另外,还可沿第二标尺以不影响主音频控制1102的方式调节平滑音量控制1104。可选地,一旦平滑音量控制1104达到最大点或最小点,平滑音量控制1104的进一步操纵将导致主音频控制1102的调节。尽管参考平滑音量控制模型描述了用户界面1100,相关领域的技术人员可以理解,该控制可对应于传统的音频音量控制和/或任一类型的属性控制。
参考图12,另一替换用户界面1200可包括用于控制两个或多个属性的两个控制。类似于用户界面1100(图11),该控制可包括可用于全局地调节多个应用的平滑音量控制的主音量控制1202。另外,该控制可包括对应于单个软件应用的个别平滑音量控制1204。依照该说明性实施例,主音量控制1202和平滑音量控制1204对应于类似于旋转刻度盘来调节的圆形控制器。可以不影响主音量控制1102的方式实现平滑音量控制1204的调节。可选地,一旦平滑音量控制1204达到最大点或最小点,平滑音量控制1204的进一步操纵将导致主音频控制1202的调节。尽管参考平滑音量控制模型描述了用户界面1200,相关领域的技术人员可以理解,该控制可对应于传统的音频音量控制和/或任一类型的属性控制。此外,可以通过机械地在第二刻度盘上放置第一刻度盘来构建另外的用户界面。
尽管说明并描述了本发明的说明性实施例,可以理解,可以在不脱离本发明的精神和范围的情况下作出各种变化。在一个方面,本发明可以结合其它基于分层的各种结构使用来方便通过全局变量控制来控制变量层次结构中的值。例如,本发明可以结合可视显示变量层次结构,如灰度系数变量校正层次结构(gammavariable correction hierarchy)的使用来通过操纵全局变量显示控制方便各种显示变量值的调节。此外,可以通过机械地在第二滑动条之上放置第一滑动条或在第二刻度盘之上放置第一刻度盘来构建另外的用户界面。另外,尽管说明某些用户界面具有有限数量的独立控制,如图11和12所示,相关领域的技术人员可以理解,可以在本发明中结合任何数量的独立控制。要求了独占的所有权或特权的本发明的实施例由权利要求书定义。