Bass management for object-based audio
10425764 ยท 2019-09-24
Assignee
Inventors
Cpc classification
H04S2400/11
ELECTRICITY
H04S2400/07
ELECTRICITY
International classification
Abstract
A bass management system and method for mitigating bass management errors by using explicit information available in the object audio rendering process and deriving the correct subwoofer contribution for each audio object. Embodiments of the bass management system and method are used to maintain the correct balance of the bass reproduced by the subwoofer relative to the sound coming out of the other speakers. The system and method are useful for a variety of different speaker configurations, including speaker configurations having different speaker sub-zones. Power-normalized gain coefficients for each speaker are combined and the power of the combined gain coefficients is computed and used to obtain a power-preserving subwoofer contribution coefficient. This subwoofer contribution coefficient is applied to the bass portion of the audio signal and audio objects to determine the contribution of a particular subwoofer.
Claims
1. A method for processing an audio signal, comprising: defining a speaker zone within an audio environment that contains a plurality of speakers and a subwoofer; inputting from a renderer speaker gain coefficients from each of the plurality of speakers in the speaker zone; combining the speaker gain coefficients from each of the plurality of speakers in the speaker zone to obtain combined speaker gain coefficients; computing a power of the combined speaker gain coefficients to obtain a power-preserving subwoofer contribution coefficient that preserves the power of the combined gain coefficients; applying the subwoofer contribution coefficient to a subwoofer audio signal to obtain a gain-modified subwoofer audio signal that feeds the subwoofer; playing back in the audio environment the gain-modified subwoofer audio signal through the subwoofer to ensure that an amount of bass signal is applied to the subwoofer avoids bass management error; wherein the audio signal contains an audio object and associated rendering information.
2. The method of claim 1, further comprising defining multiple speaker zones, each of the speaker zones containing a plurality of different speakers and subwoofers and each of the speaker zones containing a different number of speakers and subwoofers as compared to other speaker zones.
3. The method of claim 2, further comprising computing a subwoofer contribution coefficient for each subwoofer in each of the multiple speaker zones.
4. A method for processing an audio signal containing an audio object and associated rendering information, comprising: defining, in an audio environment, a speaker zone containing a plurality of speakers and a subwoofer; inputting from a renderer speaker gain coefficients from each of the plurality of speakers in the speaker zone; combining the speaker gain coefficients from each of the plurality of speakers in the speaker zone to obtain combined speaker gain coefficients; computing a power of the combined speaker gain coefficients to obtain a power-preserving subwoofer contribution coefficient that preserves the power of the combined gain coefficients, wherein computing the power of the combined speaker gain coefficients further comprises: squaring each of the individual speaker gain coefficients to obtain squared gain coefficients; summing the squared gain coefficients to obtain a sum of squares; and obtaining the subwoofer contribution coefficient for the subwoofer by taking the square root of the sum of squares; applying the subwoofer contribution coefficient to a subwoofer audio signal to obtain a gain-modified subwoofer audio signal that feeds the subwoofer; and playing back in the audio environment the gain-modified subwoofer audio signal through the subwoofer to ensure that an amount of bass signal is applied to the subwoofer avoids bass management error.
5. The method of claim 4, wherein computing the power of the combined speaker gain coefficients to obtain the subwoofer contribution coefficient further comprises using the equation:
subwoofer contribution coefficient=waveform {square root over (g.sub.4.sup.2+g.sub.5.sup.2 . . . +g.sub.n.sup.2)} wherein n is a number of speakers in the audio environment, g is the speaker gain coefficient for a respective speaker in the audio environment, and waveform is the subwoofer audio signal.
6. A method for processing an audio signal containing a multiple audio objects, comprising: using a low-pass filter to strip away a bass frequency portion from each of the multiple audio objects before the multiple audio objects are rendered by a renderer to obtain stripped bass portions; summing the stripped bass portions and mixing with a Low-Frequency Effects (LFE) signal to obtain a low-frequency signal; and rendering the low-frequency signal and then playing back the low-frequency signal in an audio environment.
7. The method of claim 6, wherein the audio environment contains multiple speakers and single subwoofer.
8. The method of claim 7, further comprising processing the audio signal using a surround processor to perform spatial rendering of the multiple audio objects in the audio environment, and wherein a number of the multiple speakers is such that they form a surround sound configuration in the audio environment.
9. The method of claim 6, further comprising applying a rendering exception parameter to the low-frequency signal to reflect changes in a gain of rendered multiple audio objects.
10. A bass management system for determining an amount of subwoofer audio signal to play through a subwoofer for an audio object in an audio signal, the system comprising: a speaker zone within an audio environment containing a plurality of speakers and a subwoofer; a renderer that generates speaker gain coefficients for each of the plurality of speakers in the speaker zone; a subwoofer contribution coefficient generator that computes a power of each of the speaker gain coefficients by squaring each of the speaker gain coefficients, summing the squares, and then taking the square root of the sum to generate a power-preserving subwoofer contribution coefficient for the subwoofer that preserves the power of the speaker gain coefficients; and a coefficient applicator that applies the subwoofer contribution coefficient to a portion of the audio signal being sent to the subwoofer to obtain a gain-modified subwoofer audio signal.
11. The bass management system of claim 10, further comprising multiple speaker zones each containing a variety of different types and number of speakers and subwoofers and wherein a unique subwoofer contribution coefficient is computed for each of the multiple speaker zones.
12. The bass management system of claim 10, further comprising a smoothing function applied to the subwoofer contribution coefficient to prevent audible artifacts as the gain coefficients change over time.
13. A method for processing an object-based audio signal containing multiple audio objects along with associated rendering information and a plurality of audio signals for each of the multiple audio objects, comprising: determining a number of speakers in a speaker zone within an audio environment over which the object-based audio signal will be played back; using a renderer to generate speaker gain coefficients for the speakers for each of the plurality of audio signals; squaring each of the speaker gain coefficients for each of the plurality of audio signal to obtain squared speaker gain coefficients; summing the squared speaker gain coefficients to obtain a sum of squares; taking the square root of the sum of squares to obtain a power-preserving subwoofer contribution coefficient that preserves a power of a combination of the speaker gain coefficients; applying the subwoofer contribution coefficient to each of the plurality of audio signals to obtain gain-modified audio signals; summing together each of the gain-modified audio signals corresponding to each of the plurality of audio signals within the speaker zone to obtain a summed audio signal; stripping a bass frequency portion of the summed audio signal to obtain a gain-modified subwoofer audio signal that feeds a subwoofer; and spatially rendering the plurality of audio signals in the audio environment based on the rendering information and the gain-modified subwoofer audio signal such that a subwoofer contribution is correct for each of the multiple audio objects and avoids or mitigates any bass management errors.
14. The method of claim 13, further comprising: defining multiple speaker zones for the speakers in the audio environment such that each speaker is a part of only one of the multiple speaker zones and each of the multiple speaker zones has a subwoofer; and determining a subwoofer contribution coefficient for each subwoofer in each of the multiple speaker zones.
15. The method of claim 14, wherein each of the multiple speaker zones contains a different number of speakers as compared to other speaker zones.
Description
DRAWINGS DESCRIPTION
(1) Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) In the following description of embodiments of a bass management system and method reference is made to the accompanying drawings. These drawings shown by way of illustration specific examples of how embodiments of the bass management system and method may be practiced. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the claimed subject matter.
I. Terminology
(11) Following are some basic terms and concepts used in this document. Note that some of these terms and concepts may have slightly different meanings than they do when used with other audio technologies.
(12) This document discusses both channel-based audio and object-based audio. Music or soundtracks traditionally are created by mixing a number of different sounds together in a recording studio, deciding where those sounds should be heard, and creating output channels to be played on each individual speaker in a speaker system. In this channel-based audio, the channels are meant for a defined, standard speaker configuration. If a different speaker configuration is used, the sounds may not end up where they are intended to go or at the correct playback level.
(13) In object-based audio, all of the different sounds are combined with information or metadata describing how the sound should be reproduced, including its position in a three-dimensional (3D) space. It is then up to the playback system to render the object for the given speaker system so that the object is reproduced as intended and placed at the correct position. With object-based audio, the music or soundtrack should sound essentially the same on systems with different numbers of speakers or with speakers in different positions relative to the listener. This methodology helps preserve the true intent of the artist.
(14)
(15) The phrase gain coefficient is an amount by which the level of an audio signal is adjusted to increase or decrease its volume. The term rendering indicates a process to transform a given audio distribution format to the particular playback speaker configuration being used. Rendering attempts to recreate the playback spatial acoustical space as closely to the original spatial acoustical space as possible given the parameters and limitations of the playback system and environment.
(16) When either surround or elevated speakers are missing from the speaker layout in the playback environment, then audio objects that were meant for these missing speakers may be remapped to other speakers that are physically present in the playback environment. In order to enable this functionality, virtual speakers can be defined that are used in the playback environment but are not directly associated with an output channel. Instead, their signal is rerouted to physical speaker channels by using a downmix map.
(17)
(18) Subwoofers are a common way to extend the bass response in home audio systems. Subwoofers in the home allow the main speakers to be smaller, less expensive, and more easily replaced. This is especially useful in surround sound systems that include 5, 7, or more speakers. In these systems, bass management techniques apply crossover filters (complementary low-pass and high-pass filters) to redirect the bass frequencies from the main channels, add them together, and present the combined signal to the subwoofer.
(19)
(20) Historically, cinemas have used subwoofers for many decades, driven from a specific LFE channel in the soundtrack. However, bass management typically was not used. Current 5.1 cinemas have multiple surround speakers distributing the surround channels around the audience. There may be 5, 10 or more speakers in a surround array all carrying the same signal and thus sharing the load.
(21) With the advent of object-based audio for film sound, such as multi-dimensional audio (MDA), each speaker is driven individually. Thus, each speaker may carry unique signals or play in isolation. There is now a desire to improve the sound quality of the surround speakers to better match the screen channels. This means as sounds are panned around the cinema the perceived quality remains more consistent. Bass management is seen as an effective means to improve the bass capability and power handling of the surround speakers. This requires every surround speaker's signal to be included in the bass management system and method.
(22)
(23) However, one problem with the arrangement shown in
(24) When two identical signals are electrically summed the result is 6 dB stronger. In contrast, when those two signals are played in separate speakers in a cinema, the acoustic summation will be only 3 dB stronger. That means the subwoofer level with traditional bass management summing will be 3 dB too high. If there were four source signals the error would increase to 6 dB. A modern immersive cinema may have some 30-50 speakers in total, with almost half of them feeding a bass management system. The excessive bass buildup will be significant. Because the positioning and allocation of the audio signals among the speakers changes dynamically, there is no fixed gain offset that can correctly compensate for the error buildup problem. Moreover, with an object-based system the final rendering configuration is unknown. Therefore, when applying bass management to an object-based system, the bass management system must be more intelligent as compared to standard bass management systems.
II. System and Operational Details
(25) Embodiments of the bass management system and method mitigate bass management error by using explicit information available in the object audio rendering process to derive the correct subwoofer contribution for each audio object. Embodiments of the system and method are suitable for use in commercial cinema processors, or in non-real time pre-rendering process that may run in in a cinema media block (server). In addition, this process may prove useful in object-based consumer surround processors.
(26)
(27) The speaker configuration shown in
(28) The cinema environment 500 also includes a Top-Surround Right (Tsr) array of n number of speakers including speakers Tsr1 to Tsr(n). Similarly, on the left side of the cinema is a Top-Surround Left (Tsl) array of n number of speakers including speakers Tsl1 to Tsl(n). Once again for clarity and to avoid clutter in the drawing the individual speakers in the Tsl array are not shown in
(29)
(30) For pedagogical purposes and to avoid clutter,
(31) The system and method shown in
(32) The system renderer uses a mathematical process to determine exactly how much of any given sound is going to any given speaker. This information is used to determine how much bass is being duplicated into different speakers. The computation takes all the different gain coefficients, sums them together, and uses that to modulate the amount of bass that is going out from that signal to a subwoofer.
(33) In
(34) In order to determine a subwoofer contribution coefficient for a subwoofer, the gain coefficients of the gain coefficient array 610 are processed based on the subwoofer zones of which they are a part. As explained in detail below, the processing to obtain the subwoofer contribution coefficient includes computing the power of the gain coefficients to compute the power-preserving subwoofer contribution coefficient for each subwoofer. The gain coefficients may change dynamically as the soundtrack changes. In some embodiments a smoothing function is used to mitigate audible artifacts as the computed subwoofer contribution coefficients modulate the audio feeding the subwoofer.
(35) The gain coefficients are applied to the waveform dependent on whether the signal destination is a regular speaker or a subwoofer in the coefficient applicator section of the system 600 and method (box 620). If the destination is a regular speaker the gain coefficient is applied to the waveform and gain-modified signal is sent to the speaker output busses (box 630). Crossover filters are applied (box 640) and the processed audio signal is played back on the respective speakers (box 650).
(36) If the destination is a subwoofer for the speaker zone then the system 600 and method computes a subwoofer contribution coefficient for the subwoofer. The derivation of the subwoofer contribution coefficient for one object feeding the Rs Sub zone subwoofer is shown box 660 of
(37) The same process applies to all objects in the soundtrack, with their outputs merged in the speaker output busses, and then fed to the bass management high-pass and low-pass crossover filters. Embodiments of the system 600 and method make use of the rendering information, which includes how much of the audio object is going to each speaker (including subwoofers).
(38) It should be noted that the manner in which the gain coefficients are determined is completely irrelevant to the renderer algorithm. The bass management system 600 and method described herein are not just for VBAP, MDA, or specific to any one type of renderer. In fact it is independent of the renderer. All the rendering is performed upstream of embodiments of the bass management system 600 and method described herein. It simply makes no difference which rendering algorithm is used.
(39) Each of the gain coefficients represents a scale factor, in terms of amplitude of sound. So the powers of all those gain coefficients are summed together to represent a final gain coefficient. In effect it is the root mean square (RMS) of the gain coefficients. This is represented by Equation (1) set forth below.
(40) It is desirable to use the power of the signal and not just the sum of the gain coefficients. This is because if the gain coefficients are summed only the result is the intensity of the sound, rather than the power of the sound. The acoustic representation that should be used is represented by the power of those contributions. When rendering sound across numerous speakers and it is desirable to maintain the same subjective loudness across the speakers and then maintain the same electrical power. That is why the electrical power term is the relative metric here for the bass.
(41) Moreover, that is what is violated when all the signals together are simply added together. When adding all the signals together it no longer represents the power, but the intensity. Acoustically this is where the disparity arises.
(42) In an object-based system, the playback system's renderer is the mechanism that controls the allocation of audio signals among the available speakers. Multiple rendering functions may operate in parallel on a given audio object, such as VBAP, Divergence, or Aperture. Each function determines the appropriate allocation of the waveform across the relevant speakers. The allocations are controlled by gain coefficients for each speaker. When multiple functions are operating in parallel on the waveform feeding a single speaker, the gain coefficients are first multiplied together to obtain a final gain coefficient before being applied to the waveform.
(43) Each final gain coefficient represents a direct measure of the signal level of the waveform feeding each speaker. This explicit knowledge has never been available to a playback system before, and it allows the bass management system 600 to accurately calculate the acoustic power of the object's waveform across every speaker involved in bass management. That resulting power value represents the desired amount of bass signal to be fed to the subwoofer. The final gain coefficients for each speaker are shown as g.sub.1 through g.sub.n in
(44) In the embodiment shown in
subwoofer contribution coefficient=waveform{square root over (g.sub.4.sup.2+g.sub.5.sup.2 . . . +g.sub.n.sup.2)}(1).
Equation (1) is used to compute a subwoofer contribution coefficient for the audio object.
(45) The general operation of embodiments of the bass management system 600 and method shown in
III. Alternate Embodiments and Exemplary Operating Environment
(46) Alternate embodiments are possible where all speakers are uniformly bass managed to a common subwoofer, as may be the case in smaller scale installations, either commercial or consumer oriented. These alternate embodiments do not require any calculation of coefficients. This is possible because the audio feeding the subwoofer is taken prior to the rendering operation, thereby avoiding the summation of multiple copies of the audio.
(47) The embodiments shown in
(48)
(49) The embodiments of
(50) As shown in
(51) The Objects are rendered and main processing 740 is applied to the Objects and subs processing 750 is applied to the low-frequency signal. Both the processed main object signal and the processed low-frequency signal are played back in an audio environment 760. In some embodiments the processed main object signal is run through a surround processor (not shown) that spreads it between surround sound speaker (typically 5, 7, or 11 speakers. The surround processor performs spatial rendering of the multiple audio objects in the audio environment over the surround sound speakers such that they form a surround sound configuration in the audio environment. The processed low-frequency bass can either be put back in or sent through a subwoofer.
(52) Some embodiments of the bass management system and method include a metadata parameter called a Rendering Exception parameter. The Rendering Exception parameter allows any gain changes to be made in the renderer an when there is a renderer exception. This occurs after the bass from all the objects has been corrected and it is desirable to change how much of that object is represented in a speaker further downstream. If the level of the object is changing then it is also prudent to change how much of its bass is represented.
(53)
(54) Specifically, in
(55) The Objects are rendered in accordance with any gain changes made in the OBAE renderers. Main processing 845 is applied to the Objects and subs processing 850 is applied to the low-frequency signal. Both the processed main object signal and the processed low-frequency signal are played back in an audio environment 860. Similar to the embodiments shown in
(56) Embodiments of the bass management system and method shown in
(57) Many other variations than those described herein will be apparent from this document. For example, depending on the embodiment, certain acts, events, or functions of any of the methods and algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (such that not all described acts or events are necessary for the practice of the methods and algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, such as through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and computing systems that can function together.
(58) The various illustrative logical blocks, modules, methods, and algorithm processes and sequences described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and process actions have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of this document.
(59) The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a general purpose processor, a processing device, a computing device having one or more processing devices, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor and processing device can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
(60) Embodiments of the bass management system and method described herein are operational within numerous types of general purpose or special purpose computing system environments or configurations. In general, a computing environment can include any type of computer system, including, but not limited to, a computer system based on one or more microprocessors, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, a computational engine within an appliance, a mobile phone, a desktop computer, a mobile computer, a tablet computer, a smartphone, and appliances with an embedded computer, to name a few.
(61) Such computing devices can be typically be found in devices having at least some minimum computational capability, including, but not limited to, personal computers, server computers, hand-held computing devices, laptop or mobile computers, communications devices such as cell phones and PDA's, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, audio or video media players, and so forth. In some embodiments the computing devices will include one or more processors. Each processor may be a specialized microprocessor, such as a digital signal processor (DSP), a very long instruction word (VLIW), or other microcontroller, or can be conventional central processing units (CPUs) having one or more processing cores, including specialized graphics processing unit (GPU)-based cores in a multi-core CPU.
(62) The process actions of a method, process, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in any combination of the two. The software module can be contained in computer-readable media that can be accessed by a computing device. The computer-readable media includes both volatile and nonvolatile media that is either removable, non-removable, or some combination thereof. The computer-readable media is used to store information such as computer-readable or computer-executable instructions, data structures, program modules, or other data. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media.
(63) Computer storage media includes, but is not limited to, computer or machine readable media or storage devices such as Bluray discs (BD), digital versatile discs (DVDs), compact discs (CDs), floppy disks, tape drives, hard drives, optical drives, solid state memory devices, RAM memory, ROM memory, EPROM memory, EEPROM memory, flash memory or other memory technology, magnetic cassettes, magnetic tapes, magnetic disk storage, or other magnetic storage devices, or any other device which can be used to store the desired information and which can be accessed by one or more computing devices.
(64) A software module can reside in the RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, media, or physical computer storage known in the art. An exemplary storage medium can be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an application specific integrated circuit (ASIC). The ASIC can reside in a user terminal. Alternatively, the processor and the storage medium can reside as discrete components in a user terminal.
(65) The phrase non-transitory as used in this document means enduring or long-lived. The phrase non-transitory computer-readable media includes any and all computer-readable media, with the sole exception of a transitory, propagating signal. This includes, by way of example and not limitation, non-transitory computer-readable media such as register memory, processor cache and random-access memory (RAM).
(66) The phrase audio signal is a signal that is representative of a physical sound.
(67) Retention of information such as computer-readable or computer-executable instructions, data structures, program modules, and so forth, can also be accomplished by using a variety of the communication media to encode one or more modulated data signals, electromagnetic waves (such as carrier waves), or other transport mechanisms or communications protocols, and includes any wired or wireless information delivery mechanism. In general, these communication media refer to a signal that has one or more of its characteristics set or changed in such a manner as to encode information or instructions in the signal. For example, communication media includes wired media such as a wired network or direct-wired connection carrying one or more modulated data signals, and wireless media such as acoustic, radio frequency (RF), infrared, laser, and other wireless media for transmitting, receiving, or both, one or more modulated data signals or electromagnetic waves. Combinations of the any of the above should also be included within the scope of communication media.
(68) Further, one or any combination of software, programs, computer program products that embody some or all of the various embodiments of the bass management system and method described herein, or portions thereof, may be stored, received, transmitted, or read from any desired combination of computer or machine readable media or storage devices and communication media in the form of computer executable instructions or other data structures.
(69) Embodiments of the bass management system and method described herein may be further described in the general context of computer-executable instructions, such as program modules, being executed by a computing device. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The embodiments described herein may also be practiced in distributed computing environments where tasks are performed by one or more remote processing devices, or within a cloud of one or more devices, that are linked through one or more communications networks. In a distributed computing environment, program modules may be located in both local and remote computer storage media including media storage devices. Still further, the aforementioned instructions may be implemented, in part or in whole, as hardware logic circuits, which may or may not include a processor.
(70) Conditional language used herein, such as, among others, can, might, may, e.g., and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or states. Thus, such conditional language is not generally intended to imply that features, elements and/or states are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and/or states are included or are to be performed in any particular embodiment. The terms comprising, including, having, and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term or is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term or means one, some, or all of the elements in the list.
(71) While the above detailed description has shown, described, and pointed out novel features as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure. As will be recognized, certain embodiments of the inventions described herein can be embodied within a form that does not provide all of the features and benefits set forth herein, as some features can be used or practiced separately from others.
(72) Moreover, although the subject matter has been described in language specific to structural features and methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.