Audio Representation for Variational Autoencoding

JP7640134B2Active Publication Date: 2025-03-05AIMI INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023517689
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-09-18
Filing Date
2021-09-16
Publication Date
2025-03-05
Estimated Expiration
2041-09-16

Smart Images

  • Figure 0007640134000021
    Figure 0007640134000021
  • Figure 0007640134000022
    Figure 0007640134000022
  • Figure 0007640134000023
    Figure 0007640134000023
Patent Text Reader

Abstract

Various methods for representing audio suitable for use in variational audio encoding are disclosed. The methods include maintaining, by a computing system, state information for a plurality of resonator models having different resonant frequencies. The methods further include repeatedly performing, by the computing system, several different operations for a plurality of respective samples in a set of time-domain audio samples. These operations include updating the state information for the plurality of resonator models based on the sample amplitudes. The operations also include determining a resonator amplitude and phase for each of the updated plurality of resonator models and storing the resonator amplitude and phase change information for each of the samples.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] TECHNICAL FIELD This disclosure relates to signal processing, and more particularly to the encoding and processing of audio signals. [Background technology]

[0002] Variational Auto Encoders (VAEs) provide a means to morph between different audio using deep learning, and have applications in generative music production and automatic remixing. The practical application of this method is complicated by the audio representation used. For musical outcomes, training is often done in the frequency domain, for example using a Fast Fourier Transform (FFT). In these implementations, resynthesis of the audio signal is sometimes done using an inverse FFT. Summary of the Invention

[0003] Various methods for representing audio suitable for use in variational audio encoding are disclosed. In one embodiment, the method includes maintaining, by a computing system, state information of a plurality of resonator models having different resonant frequencies. The method further includes iteratively performing, by the computing system, a number of different operations for a plurality of respective samples in a set of audio samples in the time domain. The operations include updating the state information of the plurality of resonator models based on the sample amplitudes. The operations also include determining a resonator amplitude and phase for each of the updated plurality of resonator models and storing the resonator amplitude and phase change information for each of the samples.

[0004] Various embodiments are possible and contemplated in which audio samples are resynthesized into an audio signal. Such embodiments include pitch shifting the audio signal. This is accomplished by determining a phase increment and pitch shifting various samples as a product of the phase increment and some multiplier value. These embodiments further contemplate combining the resynthesized audio signal with one or more additional audio signals (which may or may not be resynthesized signals from the methods disclosed herein). The resynthesis may be done automatically to generate a musical piece. [Brief description of the drawings]

[0005] The following detailed description refers to the accompanying drawings, which are briefly described herein.

[0006] [Figure 1] FIG. 1 illustrates one embodiment of a methodology for sampling a signal and updating a resonator model accordingly.

[0007] [Diagram 2] FIG. 1 illustrates one embodiment of a chain of resonators, showing the chain in its initial and excited states.

[0008] [Diagram 3] FIG. 2 is a flow diagram of an embodiment of a method for determining the position, velocity, and acceleration of a resonator for several audio samples.

[0009] [Figure 4] FIG. 2 is a flow diagram of an embodiment of a method for determining amplitude and phase shift increments for a number of audio samples.

[0010] [Diagram 5] FIG. 2 is a flow diagram of one embodiment of a method for sampling a signal and updating a resonator model accordingly.

[0011] [Figure 6]FIG. 13 illustrates one embodiment of a data structure with several different resonator amplitude and phase shift information across several audio samples.

[0012] [Figure 7] FIG. 1 is a block diagram illustrating an embodiment of a system for generating music using encoded audio files.

[0013] [Figure 8] FIG. 1 is a block diagram illustrating one embodiment of a computing device capable of executing the encoding and music generation applications disclosed herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Variational autoencoders (VAEs) provide a mechanism to morph between different audio using deep learning, and have applications in generative music production and automatic remixing. The practical application of this method is complicated by the audio representation used. For musical results, training may be optimally done in the frequency domain. However, resynthesizing arbitrary Fast Fourier Transform (FFT) data often results in poor quality audio, similar to low-bitrate audio files with poor fidelity to the original audio. Generally speaking, neither time nor frequency domain representations are sufficient to capture the information that allows for a representation of sound as perceived by the human ear.

[0015] One challenge in training a VAE using pure FFT data is that the phase topology is lost: the phase of the signal is periodic, but unknown to the VAE unless it is specifically modeled. Even if the phase is modeled, the audio resulting from FFT resynthesis can always be adversely affected by the inability to properly represent the unwinding phase.

[0016] The present disclosure is directed to a time-frequency representation of audio suitable for resynthesis from a VAE. Various methodologies disclosed herein may generate a sample-by-sample time-frequency representation of audio that omits windowing. The methodologies may further respect the topology of the phase space within the sampled audio signals. Additionally, the present disclosure enables pitch shifting of audio signals in the resynthesis, combining resynthesized audio signals, and automatic generation of music using the combined audio signals.

[0017] In some embodiments, the disclosed method utilizes a digital filter bank with a model of tuned, driven, and damped harmonic resonators. The resonators are modeled via the physical analogy of a damped mass-spring system by coupling the resonators in a one-dimensional filter bank. The input signal can be treated as an external force acting on each of the resonators in the filter bank (which may also be called a resonator chain). At any given time, the response of an individual resonator can be interpreted as a spectral coefficient at its resonant frequency. This response can be encoded as an amplitude and phase value.

[0018] In one embodiment, the computing system maintains state information for multiple resonator models, each model having a unique resonant frequency relative to the other models. An iterative process may be performed for each of a number of samples in a set of samples acquired in the time domain. The state information is updated for the sample amplitudes, and resonator amplitudes and phases are determined for the updated resonator models. Change-in-phase information is also determined and stored with the resonator amplitudes of the samples. This information may be used later to resynthesize the audio signal. Additionally, information such as a phase increment may be determined, which may be used to perform pitch shifting of the audio signal.

[0019] As mentioned above, the time-frequency representation may be generated on a sample-by-sample basis. Based on this time-domain aspect of the operation, the spectral coefficients of each resonator may be updated at each sample, rather than a window or block of samples. This allows the phase to meaningfully evolve within a sample, rather than in a windowed / blocked manner, where various techniques (e.g., overlap) may be required to avoid artifacts resulting from phase discontinuities. A time-coherent phase representation may allow for better fidelity in the representation of audio signals with non-stationary frequency components. For example, a "chirp" sound with moving frequencies may appear to be represented as a single line with continuous phase. This may further enhance the ability to detect true phase discontinuities in the original audio source.

[0020] The following discussion begins with a description of basic systems and methods for using a resonator model to sample an audio signal and perform various processing tasks based on the sampled information. Example resonator chains are then discussed, showing examples in both excited and initial (unexcited) states. Various method embodiments employed in processing the sampled audio signals are then described. Systems for audio signal resynthesis and automated music generation are then described, followed by a description of devices in which the various method embodiments described herein may be implemented.

[0021] SYSTEM AND METHOD FOR PROCESSING AUDIO USING A RESONATOR MODEL FIG. 1 illustrates an exemplary methodology for sampling a signal and updating a resonator model according to some embodiments. In the illustrated embodiment, an audio signal 5 is sampled over time, for example at t0, t1, t2, t3, and t4. Once these samples are taken, they are provided to a computing system 100. Several resonator models 20 are arranged to receive the samples as they are provided. Each resonator model 20 represents a resonator with a different resonant frequency. In terms of frequency, the resonator models 20 can be spaced in a manner suitable for receiving the audio signal. One way to view the resonator models 20 is as a bank of filters, such as bandpass filters, each of which is most responsive to a particular frequency. Another way to view the resonator models 20 is as a model of a physical damped mass-spring system as discussed above.

[0022] Samples of the audio signal 5 may be generated by analog to digital conversion using any suitable analog to digital converter (ADC, not shown). The digital information of the individual samples is applied to the resonator models 20. Each resonator model 20 may determine, for each frequency, amplitude and phase information of the current sample. This information is then stored in the storage 105 on a sample by sample basis. This is in contrast to various previous methodologies for processing audio data using windows, or blocks of samples instead of individual samples.

[0023] The time-frequency representation of an audio signal 5 describes the signal in terms of the energy contained in distinct frequency bands as a function of time. It is an alternative to the time-frequency representation commonly used for digital audio known as the discrete-time short-time Fourier transform (DT-STFT). The DT-STFT is a two-dimensional array of complex numbers that represents the amplitude and phase of the correlation between the signal and windowed sine waves of different frequencies over time. The calculation of the DT-STFT involves splitting the input signal into short windows in time and computing the FFT of each window (usually multiplying it by a window function). Corresponding resynthesis methods split the signal into overlapping windows and may further average the frequency response across the overlap to mitigate phase discontinuities that may appear as artifacts of the windowing procedure. This may lead to a loss of phase information. In particular, true phase discontinuities resulting from transients may be more difficult to detect using the DT-STFT method and may be less noticeable in the resynthesis.

[0024] The time-frequency representation disclosed herein and the method for calculating it can be performed without windowing of the audio signal. The representation can include the amplitude and unwrapped phase of a chain of harmonic resonators and is now described with reference to FIG.

[0025] FIG. 2 illustrates a portion of a resonator chain that may be modeled in various methodologies described herein. More specifically, FIG. 2 illustrates a resonator chain 200 in an initial (unexcited) state and in an excited state in response to a stimulus from a sampled audio signal. In the initial state, each resonator 211 has no displacement from the horizontal axis. In the excited state, the resonators 211 are displaced by various amounts along the corresponding vertical axis. As previously described, each resonator 211 may represent a digital filter based on the equation of a damped simple harmonic motion (e.g., a mass-spring system) in which a mass is displaced vertically and then pulled back to a neutral (unexcited) position by a restoring force.

[0026] In a mass-spring system, the restoring force is linearly proportional to the displacement and has the inverse sign, as expressed by the following equation: F = -ky, (Formula 1) where y is the vertical displacement of the resonator and k is the spring constant coefficient according to Hooke's law. In the absence of external forces, the equation of simple harmonic motion is given by: Combining this force law with Newton's second law F=ma to obtain the second order differential equation of motion.

number

number

number

[0027] When subjected to an external harmonic force, the resonator gains energy and starts to oscillate. The maximum response occurs when the external force changes the resonant frequency of the resonator. A digital model of this physical process therefore acts as a tuned bandpass filter, where the input signal is treated as an external force and the output signal is the vertical displacement of the resonator through time. In the absence of damping, the vibration of the resonator can increase without bound. Motivated by the physical model, a damping term proportional to the velocity of the resonator is therefore included. This results in the equation of motion being modified to:

number

[0028] Methods for determining amplitude and phase for each sample: The chain of damped resonators shown in Figure 2 can be thought of as a filter bank of tuned resonators by selecting the constants of each resonator according to the frequency bin of interest. The damping may slightly modify the resonant frequency of each resonator and determine the saturation amplitude in response to a particular amplitude of the drive signal. To recombine the signal with the same frequency equalization as the original, we take into account the different relative saturation amplitudes of the individual resonators. Thus, by writing Equation 3 for the undamped resonant frequency ω0 and the damping constant in terms of a dimensionless scalar multiple of the resonant frequency η, the equation of motion becomes:

number

number

number

number

[0029] To implement this model for digital input signals, Equation 5 needs to be converted into a difference equation, which can be solved by a simple forward iteration. The solution of this difference equation by forward iteration is shown below as Algorithm 1, and is also shown in the flow diagram in Figure 3. [Table 1]

[0030] A method 300 implementing Algorithm 1 above starts with sample[n] where n=1 (block 305) and resonator i where i=1 (block 310). The method further includes using the current sample information and the velocity and position from the previous sample to calculate the acceleration of resonator i, sample n using the equation shown (block 315). It is noted that the velocity and position values ​​may be zero for the first sample since there is no previous sample. The value of ω in the equation shown corresponds to the resonant (angular) frequency of resonator i. Next, the velocity of the current sample applied to resonator i (block 320) is calculated using the equation shown with the velocity of the previous sample, the acceleration of the current sample, and the inverse of the sample rate r as operands. Next, the position of the current sample applied to resonator i is calculated using the current velocity and the position of the previous sample (block 325). The resulting output is the acceleration, velocity, and position of the current sample applied to that resonator (block 330). If the condition i=L is not true (block 335, no), the value of i is incremented by 1 (block 340) and the method returns to block 315 to repeat the loop for the next resonator. If the condition i=L is true (block 335, yes) but the condition n=N is not true (block 345, no), n is incremented by 1 (block 350) and the method returns to block 310 to run through the next sample of different resonators. If n=N is true (block 345, yes), method 300 is complete.

[0031] In some embodiments, the update of a given resonator is based at least in part on the state of one or more neighboring resonators. For example, going back to Algorithm 1, some of the calculations are: when updating a given resonator, y i+1 [n],

number

[0032] After determining the position, velocity, and acceleration of the set of resonators for a given sample, a time-frequency representation can be determined. This involves calculating the amplitudes and phases of the different resonators for a given sample. Since the resonators may be updated every sample, the calculation of the phase can be explicitly updated assuming monotonically increasing. This results in a continuously evolving unwrapping phase (e.g., a continuous curve on a Reimann surface). Points on the surface are represented as an ordered pair Γ=(r,φ), where the phase φ is not constrained to [0,2π] but can take any real value.

[0033] To calculate the updated time-frequency coefficient Γ for each new input sample, we calculate the implicit instantaneous amplitude and phase of the associated resonator, assuming relatively slowly evolving amplitudes, based on the displacement and velocity terms being 90° out of phase with each other.

[0034] Assume the following:

number

number

number

number

number

[0035] The arctangent function (tan -1 ) is understood as selecting the branch of a multi-valued function that produces a minimum greater than the previous value of the phase. The total differential of the phase is

number

number

number

[0036] Knowing the equations for the amplitude r, phase φ, and phase difference, these values ​​can be calculated for each sample in each resonator, as shown in the flow diagram in Figure 4 and presented below as Algorithm 2. [Table 2]

[0037] The method 400 starts with sample[n], resonator i=1 (block 405). The change in position of the resonator is then calculated using the current position and the position of the previous sample of resonator[n] (block 410). The change in velocity is then calculated using the current velocity and the velocity from the previous sample of resonator[n] (block 415). Taking the change in position and the change in velocity, a phase increment is calculated (block 420). Taking the phase increment, a current phase is calculated (block 425), followed by a determination of the current amplitude (block 430). If the condition i=L is not true (block 435, no), the value of i is incremented (block 440) and the method returns to block 410 to repeat. If the condition i=L is true (block 435, yes) but the condition n=N is not true (block 445, no), n is incremented (block 450) and the method returns to block 405 to begin the process of the next sample. If the condition i=L is true (block 435, yes) and the condition n=N is also true (block 445, yes), the method is complete.

[0038] The time-frequency representation computed in the above manner may be used in several applications. Re-synthesis of the original signal from this representation is achieved via a form of "phase vocoding": using an oscillator function for each element of the resonant filter bank, the computed amplitude and phase r and φ can be used to drive the update of the oscillator rsinφ. Pitch shifting can be easily achieved by multiplying the phase increment df in the above algorithm by a constant scaling factor s. For example,

number

[0039] This may result in a resynthesized signal in which the oscillatory components have changed in pitch, but the overall playback speed has not changed. The continuity of phase and amplitude values ​​may reduce audio artifacts that can arise from traditional FFT-based phase vocoders. The continuity of phase and amplitude values ​​may also be useful for synthesizing sound using interpolated values ​​of this time-frequency representation, e.g., derived from a variational autoencoder trained on a corpus of signals in this representation.

[0040] It is noted that during processing, the execution of various portions of methods 300 and 400 may occur simultaneously with one another. For example, all or a portion of the resonator model may be updated in parallel for a given input sample, and all or a portion of the amplitude and phase differences may be calculated in parallel for all or a portion of the resonator model. It is further noted that a variety of mechanisms are contemplated for performing the various methods described herein. These methods include instructions embodied in a non-transitory computer-readable medium that may be executed by a processor of a computer system, a field programmable gate array (FPGA) programmed to perform these methods, hardwired circuitry, and the like. Generally speaking, the present disclosure contemplates a wide variety of suitable mechanisms for performing the methods disclosed herein, and any number of combinations of hardware and software.

[0041] 5 is a flow diagram of another embodiment of a method that may be performed in accordance with the present disclosure. In accordance with the above, it is noted that the various method steps performed by method 500 may be performed simultaneously with one another in various embodiments, for example, for multiple samples and / or multiple resonators.

[0042] The method 500 includes maintaining, by a computing system, state information of a plurality of resonator models having different resonant frequencies (block 505). The method further includes updating the state information of the plurality of resonator models based on the sample amplitudes (block 510), determining resonator amplitudes and phases of each of the updated plurality of resonator models (block 515), and storing the resonator amplitude and phase change information of each of the samples (block 520). The method may be performed by repeatedly executing blocks 510 through 520 by the computing system for a plurality of respective samples in a set of time-domain audio samples (block 525).

[0043] In various embodiments, updating the state information of the given one of the multiple resonator models includes determining a current acceleration of the given one of the multiple resonator models.

[0044] Updating the state information also includes determining a current velocity of the given one of the multiple resonator models and determining a current position of the given one of the multiple resonator models. In determining these various values, various embodiments of the method may also include determining a current acceleration for the given one of the multiple resonator models based on the current sample, a previous velocity, and a previous position, determining a current velocity for the given one of the multiple resonator models based on the previous velocity and the current acceleration, and determining a current position for the given one of the multiple resonator models based on the current velocity and the previous position.

[0045] Further contemplated are embodiments of the method, in which for a given one of the multiple resonator models, determining the resonator amplitude and phase includes calculating a current phase of the current sample based on a phase of a previous sample and a phase increment, and calculating the current resonator amplitude based on a position. In such an embodiment, for a given one of the multiple resonator models, determining the resonator amplitude and phase includes determining, for the given one of the multiple resonator models, a change in position caused by the current sample relative to a position of a previous sample, and determining, for the given one of the multiple resonator models, a change in velocity caused by the current sample relative to a velocity of a previous sample. The method then continues with calculating a phase increment based on the change in position and the change in velocity.

[0046] Some embodiments of the method include performing the updates and decisions on a sample-by-sample basis without windowing over multiple samples.

[0047] Further possible and contemplated are embodiments that include resynthesizing the audio signal, which includes providing the stored resonator amplitude and phase change information of the updated multiple resonator model to the oscillator function. In these embodiments, resynthesizing the audio signal further includes pitch shifting each one of the set of audio samples, where the pitch shifting includes shifting the phase of each one of the set of audio samples by a product of the phase increment and the scaling factor.

[0048] The present disclosure also contemplates methods that include resynthesizing an audio signal from stored resonator amplitude and phase change information, and automatically combining the audio signal with one or more additional audio signals to form a musical piece.

[0049] Examples of data structures and systems: 6 illustrates one embodiment of a data structure that may be generated by a system implementing embodiments of the method described above. In the embodiment shown, the data structure 600 includes amplitudes R and phase change values ​​φ for a total of L distinct resonators of the resonator chain as previously described. Furthermore, since the present disclosure contemplates generating this information on a sample-by-sample basis without windowing, the data structure includes amplitudes R and phase values ​​φ for each of the N distinct samples of each of the L resonators.

[0050] 7 is a block diagram illustrating one embodiment of a system for generating music using encoded audio files. As previously mentioned, the various algorithms / methodologies described herein can be used for the automated generation of music using, for example, artificial intelligence (AI). In the embodiment shown, system 700 is configured to receive encoded audio files 711 and 712, the former of which is received from an encoding application 701 configured to execute the algorithm / method embodiments described above. It is noted that audio file 712 may be encoded in the same manner (using encoding application 701) as audio file 711. However, it is not necessary that all audio files of system 700 be encoded in this particular manner.

[0051] The encoded audio files 711 and 712 are provided to a music application 702. Among the various operations that may be performed in the music application are combining, resynthesizing, and pitch shifting as described above, where the phase increments or differences are multiplied by some scaling factor to shift the pitch of the various audio signals generated from the audio files. For example, both audio files 711 and 712 may contain different musical arrangements, which results in a musical key of one arrangement being incompatible with the other if the original pitch is to be preserved. Accordingly, using various AIs that may be implemented in, for example, the music application 702, the audio file 711 may be pitch shifted to a musical key compatible with that of the audio file 712.

[0052] After performing any desired pitch shifting, combining, and resynthesis, the resulting song 613 may be played back, for example, through a smartphone speaker, computer speakers, or any other device that may utilize the music application 702.

[0053] In one embodiment, the operations described above with reference to Figures 1-6 and incorporated into encoding application 701 may be performed separately from music application 702. However, embodiments in which encoding application 701 is incorporated into a common application with music application 702 are also possible and contemplated.

[0054] 8 is a block diagram of one embodiment of a computing device that may be used to perform the various operations described above. In the embodiment shown, the computing device 800 includes a non-transitory computer readable medium (CRM) 811 on which are stored embodiments of the encoding application 701 and the music application 702. The CRM 811 may be implemented using any mechanism suitable for persistent storage, such as flash memory, disk storage, random access memory (RAM), static random access memory (SRAM), etc.

[0055] The processor 810 of the computing device 800 is configured to execute the instructions of the encoding application 701 and the music application 702 using appropriate input data, which may include audio files. The computing device 800 may be configured to sample an analog audio signal and generate a corresponding audio file based thereon.

[0056] Computing device 800 may be one of several different types of computers. For example, computing device 800 may be a smartphone, a desktop computer, a laptop computer, etc. Generally speaking, computing device 800 may be any type of computing device capable of performing the various methods described above for encoding audio files, performing pitch shifting, resynthesizing audio files, combining audio files, and automatically generating musical compositions using audio files.

[0057] The present disclosure includes references to "embodiments" or groups of "embodiments" (e.g., "some embodiments" or "various embodiments"). Embodiments are different implementations or instances of the disclosed concepts. References to "an embodiment," "one embodiment," "a particular embodiment," etc. do not necessarily refer to the same embodiment. In addition to those specifically disclosed, numerous possible embodiments are contemplated, including modifications or substitutions that are within the spirit or scope of the present disclosure.

[0058] This disclosure may describe potential advantages that may result from the disclosed embodiments. Not all implementations of these embodiments necessarily manifest any or all of the potential advantages. Whether advantages are realized for a particular implementation depends on many factors, some of which are outside the scope of this disclosure. Indeed, there are several reasons why an implementation within the scope of the claims may not exhibit some or all of the disclosed advantages. For example, a particular implementation may include other circuitry outside the scope of this disclosure that, in combination with one of the disclosed embodiments, negates or reduces one or more of the disclosed advantages. Furthermore, suboptimal design practices of a particular implementation (e.g., implementation techniques or tools) may also negate or reduce the disclosed advantages. Even assuming a skilled implementation, realization of advantages may still depend on other factors, such as the environmental conditions in which the implementation is deployed. For example, inputs provided to a particular implementation may prevent one or more of the issues addressed in this disclosure from arising on a particular occasion, such that the benefits of its solution may not be realized. Given the existence of possible factors external to this disclosure, it is expressly intended that the potential advantages described herein should not be construed as limitations on the scope of the claims that must be satisfied in order to prove infringement. Rather, the identification of such potential advantages is intended to illustrate the types of improvements available to a designer having the benefit of this disclosure. The fact that such advantages have been liberally described (e.g., stating that a particular advantage "may result") is not intended to convey any doubt as to whether such advantages can actually be realized, but rather to acknowledge the technological reality that the realization of such advantages often depends on additional factors.

[0059] Unless otherwise specified, the embodiments are non-limiting. That is, the disclosed embodiments are not intended to limit the scope of the claims that are drafted based on this disclosure, even if only a single example of a particular feature is described. The disclosed embodiments are intended to be illustrative, not limiting, unless otherwise stated in the disclosure. As such, it is intended that the claims be able to cover the disclosed embodiments, as well as such alternatives, modifications, and equivalents that would be apparent to one of ordinary skill in the art having the benefit of this disclosure.

[0060] For example, features in this application may be combined in any suitable manner. Accordingly, during prosecution of this application (or an application claiming priority), new claims may be formulated to such combinations of features. In particular, with reference to the appended claims, features from dependent claims may be combined, as appropriate, with features of other dependent claims, including claims that are dependent on other independent claims. Similarly, features from each independent claim may be combined, as appropriate.

[0061] Thus, although the appended dependent claims may be drafted such that each is dependent on one other claim, additional dependencies are also contemplated. Any combination of features in the dependent claims consistent with this disclosure is contemplated and may be claimed in this or another application. In other words, combinations are not limited to those specifically recited in the appended claims.

[0062] Where appropriate, claims drafted in one form or statutory type (e.g., apparatus) are intended to support corresponding claims in another form or statutory type (e.g., method). It is possible that there are.

[0063] Because this disclosure is a legal document, various terms and phrases may be subject to administrative and judicial interpretation. It is hereby announced that the definitions provided in the following paragraphs and throughout this disclosure should be used to determine how any claims drafted based on this disclosure should be interpreted.

[0064] Reference to a singular item (i.e., a noun or noun phrase preceded by "a," "an," or "the") is intended to mean "one or more" unless the context clearly indicates otherwise. Thus, a reference to "an item" in a claim does not exclude additional instances of that item without attendant context. A "plurality" of an item refers to a collection of two or more items.

[0065] The term "may" is used herein in its permissive sense (i.e., having the possibility, being possible) and not in its mandatory sense (i.e., absolute).

[0066] The words "having" and "including" and their equivalents are open ended and mean "including, but not limited to."

[0067] In this disclosure, when the term "or" is used in connection with a list of alternatives, it is generally understood to be used in an inclusive sense unless otherwise specified. Thus, a description of "x or y" is equivalent to "x or y or both," and thus covers 1) x but not y, 2) y but not x, and 3) both x and y. On the other hand, a phrase such as "either x or y, but not both" makes it clear that "or" is used in an exclusive sense.

[0068] The phrases "w, x, y, or z, or combinations thereof" or "at least one of w, x, y, and z" are intended to cover all possibilities, including a single element in the set, up to the total number of elements. For example, if we consider the set [w, x, y, z], these phrases cover any single element of the set (e.g., w but not x, y, z), any two elements (e.g., w and x but not y or z), any three elements (e.g., w, x, and y but not z), and all four elements. Thus, the phrase "at least one of w, x, y, and z" refers to at least one element in the set [w, x, y, z], and therefore covers all possible combinations in the list of elements. This phrase does not require that there is at least one instance of w, at least one instance of x, at least one instance of y, and at least one instance of z.

[0069] In this disclosure, nouns or noun phrases may be preceded by various "labels." Unless otherwise specified, different labels used for a feature (e.g., "first circuit," "second circuit," "particular circuit," "given circuit," etc.) refer to different instances of the feature. In addition, labels such as "first," "second," and "third," when applied to features, do not imply any kind of ordering (e.g., spatial, temporal, logical, etc.) unless otherwise specified.

[0070] The term "based on" is used to describe one or more factors that influence the decision. This term does not exclude the possibility that additional factors may influence the decision. That is, the decision may be based only on the identified factors or may be based on the identified factors plus other unspecified factors. Consider the phrase "determining A based on B." This phrase specifies that B may be a factor used to determine A or that influences the decision of A. This phrase does not exclude that the decision of A may also be based on other factors, such as C. This phrase is also intended to cover embodiments in which A is determined solely based on B. As used herein, the term "based on" is synonymous with the term "based at least in part on."

[0071] The phrases "in response to" and "in reaction to" describe one or more factors that cause an effect. This does not exclude the possibility that additional factors may affect or otherwise cause the effect, either jointly with or independently of the specified factors. That is, the effect may be responsive only to those factors or to other unspecified factors in addition to the specified factors. Consider the phrase "doing A in response to B." This phrase specifies that B is the factor that causes the performance of A or that causes a particular outcome of A. This phrase does not exclude that doing A may also be in response to other factors, such as C. This phrase does not preclude that doing A may also be in reaction to B and C jointly. This phrase is also intended to cover embodiments in which A is done only in response to B. As used herein, the phrase "in response to" is synonymous with the phrase "at least partially in reaction to." Similarly, the phrase "in response to" is synonymous with the phrase "at least partially in response to."

[0072] Within this disclosure, different entities (which may be variously referred to as "units," "circuits," other components, etc.) may be described or claimed as being "configured" to perform one or more tasks or operations. The formula "entity configured to perform one or more tasks" is used herein to refer to a structure (i.e., something physical). More specifically, this formula is used to indicate that such a structure is arranged to perform one or more tasks during operation. A structure may be said to be "configured" to perform a task even if it is not currently operating. Thus, an entity described or claimed as being "configured" to perform a task represents something physical, such as a device, circuit, system, etc., having a processor unit and a memory that stores executable instructions to perform the task. This expression is not used herein to represent something intangible.

[0073] In some cases, various units / circuits / components may be described herein as performing a series of tasks or operations, and it will be understood that these entities are "configured" to perform these tasks / operations, even if not specifically stated otherwise.

[0074] The term "configured" is not intended to mean "configurable." For example, an unprogrammed FPGA is not considered to be "configured" to perform a particular function. However, this unprogrammed FPGA may be "configurable" to perform that function. After appropriate programming, the FPGA can be said to be "configured" to perform that particular function.

[0075] For purposes of filing a U.S. patent application based on this disclosure, a statement in the accompanying claims that a structure is "configured to" perform one or more tasks is expressly not intended to invoke 35 U.S.C. 112(f) with respect to the recited element. Thus, if an applicant wishes to invoke 35 U.S.C. 112(f) during prosecution of a U.S. patent application based on this disclosure, the claim element will be recited with a "means for" [performing a function].

[0076] Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated, and it is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims

1. maintaining, by a computing system, state information of a plurality of resonator models having different resonant frequencies; repeatedly performing, by the computing system, for each of a plurality of samples in a set of time-domain audio samples; updating the state information of the plurality of resonator models based on sampled amplitudes, where updating a given resonator is based, at least in part, on states of one or more adjacent resonators of the plurality of resonator models; determining a resonator amplitude and a phase of each of the updated resonator models, the updating and determining being performed on a sample-by-sample basis without windowing the samples; and storing resonator amplitude and phase change information for each of said samples; method.

2. Updating the state information of a given one of the plurality of resonator models includes: determining a current acceleration of the given one of the plurality of resonator models; determining a current speed of the given one of the plurality of resonator models; and determining a current position of the given one of the plurality of resonator models; The method of claim 1.

3. determining the current acceleration based on a current sample of the given one of the plurality of resonator models, a previous velocity, and a previous position; determining the current velocity based on the previous velocity and the current acceleration of the given one of the plurality of resonator models; and determining the current position based on the current velocity and the previous position of the given one of the plurality of resonator models; The method of claim 2.

4. Determining resonator amplitudes and phases for a current sample of a given one of the multiple resonator models includes: calculating a current phase of the current sample based on a phase of a previous sample and a phase increment; and calculating a current resonator amplitude based on the position of the current sample; The method of claim 1.

5. Determining resonator amplitudes and phases for the current sample of the given one of the plurality of resonator models further includes: determining a change in position caused by the current sample relative to a position of the previous sample of the given one of the multiple resonator models; determining a change in velocity caused by the current sample relative to a velocity of the previous sample of the given one of the multiple resonator models; and calculating the phase increment based on the change in position and the change in velocity. The method according to claim 4.

6. and resynthesizing the audio signal, the resynthesizing the audio signal including providing the stored resonator amplitude and phase change information of the updated plurality of resonator models to an oscillator function. The method of claim 1.

7. Re-synthesizing the audio signal further comprises: pitch shifting each one of the set of audio samples, the pitch shifting comprising shifting a phase of each one of the set of audio samples by a product of a phase increment and a scaling factor. The method according to claim 6.

8. resynthesizing an audio signal from said stored resonator amplitude and phase change information; and automatically combining the audio signal with one or more additional audio signals to form a musical piece. The method of claim 1.

9. A non-transitory computer-readable medium storing instructions that, when executed by a processor, perform: generating a plurality of respective audio samples in a time domain; updating state information of a plurality of resonator models based on sample amplitudes of the plurality of audio samples, the plurality of resonator models having different resonant frequencies from one another, and updating a given resonator based, at least in part, on states of one or more adjacent resonators of the plurality of resonator models; determining a resonator amplitude and a phase of each of the updated resonator models for each of the audio samples, wherein the updating and determining are performed on a sample-by-sample basis without windowing the samples; and storing, for each of the plurality of samples, respective resonator amplitude and phase change information for each resonator model; Performing actions including Non-transitory computer-readable medium.

10. The operations further include resynthesizing an audio signal using the plurality of audio samples, where resynthesizing the audio signal includes: providing the resonator amplitudes and the phase changes of the updated multiple resonator models to an oscillator function; and pitch shifting each one of the plurality of audio samples, wherein pitch shifting each one of the plurality of audio samples comprises applying a product of a phase increment and a scaling factor to the phase of the plurality of resonator models; 10. The computer readable medium of claim 9.

11. The operations further include automatically generating a piece of music using the resynthesized audio signal and one or more additional audio signals. The computer-readable medium of claim 10.

12. Updating state information of a given one of the plurality of resonator models includes: calculating a current acceleration of the given one of the plurality of resonator models based on a previous velocity and a previous position of the given one of the plurality of resonator models; calculating a current velocity of the given one of the plurality of resonator models based on the previous velocity and the current acceleration of the given one of the plurality of resonator models; and calculating a current position of the given one of the plurality of resonator models based on the previous velocity and the current acceleration of the given one of the plurality of resonator models; 10. The computer readable medium of claim 9.

13. Determining the resonator amplitude and phase of a given one of the multiple resonator models includes: determining a change in position and a change in velocity of a current sample relative to a previous sample of the given one of the multiple resonator models; calculating a phase increment for the current sample based on the change in position and the change in velocity; calculating a current phase of the current sample based on a phase of a previous sample and the phase increment; and calculating a current resonator amplitude based on the position of the current sample; 10. The computer readable medium of claim 9.

14. the operations further include performing the storing on a sample-by-sample basis without windowing.

10. The computer readable medium of claim 9.

15. A processor; A non-transitory computer-readable medium storing instructions that, when executed by the processor, perform: Maintaining state information of a plurality of resonator models having mutually different resonant frequencies; For each of multiple audio samples in the set of time-domain audio samples, for each sample: updating the state information of the multiple resonator models based on an amplitude of a current sample, where updating a given resonator is based, at least in part, on states of one or more adjacent resonators of the multiple resonator models; determining a resonator amplitude and a phase of each of the updated resonator models, the updating and determining being performed on a sample-by-sample basis without windowing the samples; and performing operations including: storing, for each resonator model, respective resonator amplitude and phase change information for the current sample; and a non-transitory computer readable medium for performing operations including: Device.

16. The operations further include: resynthesizing the audio signal by providing the resonator amplitudes and the phase changes of the updated plurality of resonator models to an oscillator function, where resynthesizing the audio signal further comprises pitch shifting each one of the audio samples of the set of audio samples by applying a product of a phase increment and a scaling factor to the audio sample; automatically generating a piece of music using the audio signal and at least one additional audio signal; and effecting playback of the song through a speaker of the device; 16. The apparatus of claim 15.

17. The non-transitory computer-readable medium, when executed by the processor, calculating a current acceleration of a given one of the plurality of resonator models based on a previous velocity and a previous position of the given one of the plurality of resonator models; calculating a current velocity of the given one of the plurality of resonator models based on the previous velocity and the current acceleration of the given one of the plurality of resonator models; and calculating a current position of the given one of the plurality of resonator models based on the previous velocity and the current acceleration of the given one of the plurality of resonator models; storing instructions for performing operations including 16. The apparatus of claim 15.

18. The non-transitory computer-readable medium, when executed by the processor, determining a change in position and a change in velocity of a current sample relative to a previous sample of a given one of the multiple resonator models; calculating a phase increment for the current sample based on the change in position and the change in velocity; calculating a current phase of the current sample based on a phase of a previous sample and the phase increment; and calculating a current resonator amplitude based on a position of the current sample; storing instructions for performing operations including 16. The apparatus of claim 15.

Citation Information

Patent Citations

  • Method and system for converting time domain signals into frequency domain signals

    CN104050147A

  • Waveform reproduction apparatus

    JP2000181452A

  • A method for eliminating aliasing in a waveform table type synthesizer.

    JP2004527005A

  • Sound signal analysis method and sound signal synthesis method

    JP2007249009A