Grain scaling for granule synthesis
The weighted selection process in granular synthesis adapts neighborhood size and grain proximity to ensure natural sound progression, addressing spurious emissions and repetition, suitable for low-power devices.
Patent Information
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Current Assignee / Owner
- TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
- Filing Date
- 2024-03-13
- Publication Date
- 2026-07-14
AI Technical Summary
Existing granular synthesis systems face challenges in selecting the k nearest neighbors in the descriptor space, leading to spurious emissions and unnatural sound due to fixed neighborhood sizes, uniform grain selection, and repetition of grains, especially when user input is transient.
A weighted selection process is employed to choose grains based on adaptive neighborhood size and grain proximity, distance, temporal history, and descriptor trends, ensuring natural sound progression by assigning dynamic weights to grains.
The method achieves natural grain progressions and reduces computational complexity, enabling real-time responsive and reactive sound generation without delays, suitable for devices with low computing power.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
1 / 38 Grain scaling for granule synthesis TECHNICAL FIELD
[001] Modalities related to granular synthesis are disclosed. BACKGROUND
[002] Audio rendering is a process used to present audio, such as audio within an extended reality (XR) scene (e.g., a virtual reality (VR), augmented reality (AR), or mixed reality (MR) scene) in order to give the listener the impression that the sound is coming from physical sources within the scene at a certain position. The presentation can be done through headphone speakers or other loudspeakers. If the presentation is done via headphone speakers, the processing used is called binaural rendering and uses spatial cues from human spatial hearing that make it possible to determine from which direction the sounds are coming. The cues involve interaural time delay (ITD), interaural level difference (ILD), and / or spectral difference.
[003] Procedural audio refers to the creation of sound in real time as a response to live input. As an example, consider the sound of a car engine in a virtual space where the sound changes based on the car's speed or acceleration. This mechanism is commonly used in video games for a better user experience. It is believed that, for the use case of XR (e.g., AR or VR), there are many sounds that would benefit from being dynamically generated so that they can react to changes in the scene in real time. For example, the sound generated when a user touches a surface or operates a mechanism. In reference [1], the sounds of a virtual object, for example, a sword, an axe, or a wand, are simulated based on its position and orientation. There is a base tone and an overtone. Both are modulated to change the pitch, timbre, and amplitude to carry the speed of Petition 870250080620, dated 08 / 09 / 2025, pages 187 / 235 2 / 38 movement of the virtual object. Live input can come from a user via sensors, such as hand controllers or a headset, or it can be control data generated in real time by some software process, such as a physical simulation or predefined automation data. Regardless of how the input data was generated, the audio renderer needs to manipulate the received data and generate sound in response to that data in real time.
[004] There are many different methods for procedural audio (see, for example, reference [2]), including synthetic sound synthesis using audio processing modules, machine learning methods trained on real recordings, and concatenative synthesis methods that make use of original recordings and rearrange segments of those recordings to generate variations. Since the class of concatenative synthesis methods makes direct use of real recordings, the generated audio sounds very natural, thus improving the user experience.
[005] Granular synthesis is a type of concatenative synthesis in which a sound recording is divided into small fragments called “grains”. (See, for example, reference [3]). By carefully selecting the fragments (grains) at rendering time, it is possible to generate a plausible sound that changes dynamically.
[006] A granular synthesis process includes two main steps: (1) grain extraction and (2) grain synthesis. Grain extraction refers to the extraction of pertinent grains from the longer original recording. The extraction method depends on the type of sound source and the desired attributes to be extracted. Grain synthesis refers to the technique of selecting the appropriate grain order; this selection of the ordering can also be based on real-time user input. Petition 870250080620, dated 08 / 09 / 2025, pages 188 / 235 3 / 38
[007] Many sound design tools offer support for grain extraction and synthesis, such as Soundseed grain for Audiokinetic Wwise, Alchemy for Logic Pro, or AudioMotors for FMOD. These tools allow the sound designer to perform manual or semi-automated grain extraction and other simple manipulations. The designer can choose the grain length, amplitude envelope, or shape of each grain, among other controls. In the case of AudioMotors, a specialized automated grain extraction tool for engine sounds is provided.
[008] Grain extraction can be done manually by the sound designer or in a data-driven manner, identifying the relevant audio attributes for segmentation purposes. Relevant attributes include, for example, pitch period in the case of high-pitched sounds, spectral energy at a given frequency, mel cepstral frequency coefficients (MFCC), and local maximum amplitude of the envelope.
[009] There are also many methods for granular synthesis. A common method is to select grains randomly and perform the overlay and addition (OLA) operation. This method is not susceptible to all types of sound sources and does not capture the temporal correlation between adjacent grains.
[010] Corpus-based concatenative synthesis (CBCS) methods are based on selecting grains from a corpus of sound segments that are sampled from a database of heterogeneous sound sources. They use descriptors that are associated with sound segments to organize the corpus and perform searches within the descriptor space to collect the next grain. Note that the concept of a descriptor is not limited to the attributes of the audio signal (see, for example, reference [4]). A user can abbreviate the grains with perceptual descriptors when a direct mapping between the desired effect and the attribute in the audio signal is not possible. Petition 870250080620, dated 08 / 09 / 2025, pages 189 / 235 4 / 38
[011] The descriptor space is multidimensional, with the number of dimensions being equal to the number of descriptors. The search for the appropriate grain is performed in a computationally efficient manner, using the weighted Euclidean distance between a target descriptor location (e.g., point or area) in the descriptor space (hereinafter referred to as “target descriptor coordinate”) and grain locations in the descriptor space. Reference [5] proposes distortion functions for the distance measure to better select the set of grains and also to avoid repetitions of previously rendered grains.
[012] For an efficient search in the descriptor space, kD-tree search is used. The k-nearest neighbors of the target descriptor coordinate or grains that are within a radius 'r' of the target descriptor coordinate are chosen. In reference [6], the corpus is organized as zones so that grains from different zones are not collected consecutively when k-nearest neighbor search is used.
[013] The CATERPILLAR software (see Reference [7]) performs concatenative synthesis on an offline preparation where a sequence of target descriptors is given. The program uses the Viterbi algorithm to identify the sequence of grains that match the target descriptors. The cost function is a combination of the distance from the target descriptor coordinate and the concatenation cost, which is based on the similarity of consecutive grains.
[014] CataRT, on the other hand, is a real-time system and therefore chooses the subsequent grain randomly from a set of grains that are the k nearest neighbors or a ray with the target descriptor coordinate being the center (see, for example, reference [8]).
[015] For smoother transitions in granular synthesized sound, reference [9] uses attribute descriptors such as pitch, intensity, centroid Petition 870250080620, dated 09 / 08 / 2025, pp. 190 / 235 5 / 38 spectral, fundamental frequency, periodicity and autocorrelation coefficient in lag 1. Attribute descriptors are computed for each grain and the correlation between these attribute descriptors is captured using a Gaussian Mixture Model (GMM) from which the grains are sampled for synthesis. Reference
[10] discusses granular synthesis where the next grain is collected based on the attribute descriptors of the current grain for timbre continuity. A kD tree search is performed to select the candidate grains closest in Euclidean distance to the current grain in the attribute descriptor space.
[016] Granular synthesis is used in a different method, but in the context of rendering acoustic textures from extended sources in virtual scenes (see reference
[11] ). The described method numerically solves the wave / sound propagation equation for the entire virtual scene with sound source pulses distributed across the acoustic source, for example, a river, to compute the event intensity density (ELD). The ELD is obtained by deconvoluting the sound pressure at location x over several time intervals, using the source pulse to compute the aggregate impulse response at a given location. Then, the extracted time-varying impulse response is used to accumulate the ELD statistics, which is the peak intensity histogram in the impulse response. The desired grain density (e.g., grains per second) at a given listener position is obtained by scaling the total number of events at that position.Then the grain amplitude is extracted from the ELD as a distribution. This is done for all sound sources in each scene for a given listener position.
[017] Granular synthesis is also discussed in relation to haptics and gestures. A change in the user's gesture or touch is mapped to a change in the audio attribute, leading to interactive audio rendering. By Petition 870250080620, dated 08 / 09 / 2025, pp. 191 / 235 6 / 38 For example, in reference
[12] , the sound amplitude is manipulated based on user input. The haptic input strength and the audio signal energy are quadratically related. In reference
[13] , audio data is used as an input for haptic effects. SUMMARY
[018] Certain challenges currently exist. For example, in existing systems, the method of choosing the k nearest neighbors of a target descriptor coordinate in the descriptor space is fixed and not adaptive, and this can lead to spurious emissions when the neighborhood is not compact and the granular database consists of clusters that do not have similar sizes. Although in some systems (e.g., CataRT) a user can adaptively choose the neighborhood size, they are still limited to 3-D, beyond which visualization is not possible and therefore the user cannot adjust it. Furthermore, the grains in the neighborhood of the target descriptor coordinate are selected uniformly and randomly, without distinguishing between the grains most and least likely to be reproduced. Consequently, conventional systems may not produce a natural sound emission, especially when a user input does not remain long enough at a target descriptor coordinate.In this case, it is desirable to render the most representative grain closest to the target descriptor coordinate rather than choosing randomly. Additionally, although some systems (e.g., CATERPILLAR) use a Viterbi algorithm to find the next grain that minimizes a cost function describing the discontinuity introduced by the concatenation of the next grain, this optimization serves to minimize the discontinuity but does not avoid results that appear unnatural due to the repetition of the same grain or a grain pattern.
[019] Therefore, in one aspect, a method is provided for Petition 870250080620, dated 08 / 09 / 2025, pages 192 / 235 7 / 38 Render audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains. In one embodiment, the method includes obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0. The method also includes defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1. The method also includes assigning a final weight to each grain in the first set of candidate grains. The method also includes randomly selecting a grain from the first set of candidate grains based on the assigned final weights, such that the probability of a given grain in the first set of candidate grains being selected is a function of the final weight assigned to the given grain.The method additionally includes rendering the selected grain.
[020] In another embodiment, the method includes obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0, and defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises a first grain and a second grain. The method also includes assigning a final weight to each grain in the first set of candidate grains, wherein assigning a final weight to each grain in the first set of candidate grains comprises assigning a first final weight to the first grain and assigning a second final weight to the second grain. The method also includes selecting a grain from the first set of candidate grains based on the assigned final weights and rendering the selected grain. Petition 870250080620, dated 08 / 09 / 2025, pp. 193 / 235 8 / 38 where the first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain (e.g., a time difference indicating a difference between a timestamp for the first grain and a timestamp for the most recently rendered grain, assuming both grains were extracted from the same recording or the same segment).
[021] In another aspect, a computer program is provided comprising instructions that, when executed by the processing circuitry of an apparatus, cause the apparatus to perform any of the methods disclosed in the present invention. In one embodiment, a carrier containing the computer program is provided, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium. In another aspect, an apparatus is provided that is configured to perform the methods disclosed in the present invention. The apparatus may include memory and a processing circuitry coupled to the memory.
[022] One advantage of the embodiments disclosed in the present invention is that they facilitate granular synthesis that generates natural grain progressions by giving the target descriptive coordinates in real time as input. By using a weighted selection process (i.e., a selection process that uses the weights assigned to the grains to make the grain selection), a combination of precise control and natural sound variation can be achieved. The complexity of the solution is low, which enables the rendering of many sound sources. Petition 870250080620, dated 08 / 09 / 2025, pages 194 / 235 9 / 38 granular sounds are also available on devices with low computing power. The low real-time complexity also enables the solution to produce reactive and responsive sounds without delays. BRIEF DESCRIPTION OF THE DRAWINGS
[023] The attached drawings, which are incorporated into the present invention and form part of the descriptive report, illustrate various embodiments.
[024] FIG. 1 illustrates a system according to a modality.
[025] FIG. 2A illustrates an example of a two-dimensional descriptor space.
[026] FIG. 2B illustrates an example of a two-dimensional descriptor space.
[027] FIG. 3A illustrates an example of a two-dimensional descriptor space.
[028] FIG. 3B illustrates a process for determining an optimal k value for a given grain according to a particular embodiment.
[029] FIG. 4A illustrates an example of an audio signal.
[030] FIG. 4B illustrates an example of grain scaling.
[031] FIG. 4C illustrates an example of grain scaling according to a modality.
[032] FIG. 5 is a flowchart illustrating a process according to a modality.
[033] FIG. 6 is a flowchart illustrating a process according to a modality.
[034] FIGS. 7A and 7B demonstrate a system in accordance with some modalities.
[035] FIG. 8 is a block diagram of a device according to some embodiments. DETAILED DESCRIPTION
[036] FIG. 1 illustrates a system 100, according to some embodiments, for carrying out granular synthesis. The system 100 includes a Petition 870250080620, dated 09 / 08 / 2025, pp. 195 / 235 10 / 38 grain extraction unit 102 that extracts grains from an original audio recording 111. That is, the grain extraction unit divides the original audio recording into small fragments, called “grains”. The extracted grains are stored in a grain database 104 that is accessed at render time by a grain scheduling unit 106 (also known as a grain selection unit), which is a component of a granular rendering unit 108. In some embodiments, there is a grain database per procedural audio source, each of which is available to the rendering unit 108. Each grain stored in the grain database is associated with one or more vectors of one or more descriptor values, each vector corresponding to a specific descriptor.
[037] When creating a 104 grain database, an audio designer decides which aspects should be used as descriptors. In some cases, these may be attributes of the sound itself, such as pitch or intensity, but they may also be other aspects related to how the sound was generated, such as the speed of movement that generates a contact sound between two objects sliding against each other or the opening angle of a door that generates a screeching sound when opened and closed. The descriptors must be chosen so that the sound can be dynamically regenerated by the renderer, given a target descriptor coordinate or trajectory.
[038] As noted above, each grain stored in the grain database is associated with one or more descriptor values. Therefore, the grains of an original recording need to be annotated with the descriptor values. In the case of a descriptor being an audio attribute, the descriptor value may be measurable directly from the audio signal itself. In other cases, the descriptor values need to be provided in some way as extra metadata for the recordings. This can be done by Petition 870250080620, dated 08 / 09 / 2025, pp. 196 / 235 11 / 38 example, recording data from some sensors during recording and providing this data in supplementary files. In some cases, the annotation can be done manually by creating a data log that describes how a descriptor changes during recording, or it can be done manually for each extracted grain.
[039] When extracting grains from the original recording(s), the descriptor values are stored as metadata for each grain. Using the descriptor values, each grain can be positioned in a multidimensional descriptor space, where the value of each descriptor describes a position along an axis within that space. If only one descriptor is used, the descriptor space will be one-dimensional (1D), but if more descriptors are used, the dimensionality of the descriptor space will increase. An example of a two-dimensional (2D) descriptor space is shown in FIG. 2A, where each circle represents a grain. As shown in FIG. 2A, each grain has a location (e.g., a point or area) within the 2D descriptor space; this location is referred to as the grain coordinate.
[040] In one embodiment, the descriptor metadata for a grain sequence extracted from a recording describes a trajectory within the descriptor space, which corresponds to how the descriptors evolved during the original recording.
[041] At rendering time, grain scaling (i.e., the selection of grains to be rendered) is based on a target descriptor coordinate in the descriptor space. The target descriptor coordinate specifies which descriptor values the generated sound emission should have, meaning that grains near that coordinate in the descriptor space should be used more prominently. A target descriptor coordinate can come from many types of sources, such as a physics engine simulating the interaction of bodies. Petition 870250080620, dated 08 / 09 / 2025, pp. 197 / 235 12 / 38 virtual, live input parameters from manual controllers or other sensors, predefined automation parameters.
[042] An important aspect of granular synthesis rendering is that repeating the same grain often sounds very unreal and artificial. If the grains are short, less than 50 ms, repeating the same grain will result in a very metallic and static sound. If the grains are longer, the repetition will be heard as a repetitive pattern, which usually results in a sound that is not plausible.
[043] Grain scaling needs to avoid repeating the same grain, but at the same time select grains that are close to the target descriptor coordinate in the descriptor space. This disclosure, therefore, uses a weighted selection procedure (e.g., a weighted random selection) that will generate constantly evolving grain sequences (i.e., an ordered set of grains) that closely follow the target descriptor coordinates. An example of a grain sequence is: [grain-7, grain-6, grain-7, grain-9, grain-11, grain-10].
[044] Each grain can be assigned a preset weight, as well as a set of dynamic weights that can change over time. The preset weight can be useful in cases where a grain is atypical and should not be used too often, but can add realistic variation to the generated sound if used occasionally. Another use case is using preset weights to control the frequency of grains that represent, for example, birdsong, compared to grains that represent the background sound of a forest.
[045] An input (for example, a signal generated by a user interaction) that controls a procedural audio source is mapped to a target descriptor coordinate. Based on the target descriptor coordinate, one or Petition 870250080620, dated 08 / 09 / 2025, pages 198 / 235 13 / 38 more grains from a set of candidate grains are selected for rendering using a weighted selection (e.g., a weighted random selection or a selection where the grain with the highest weight is selected). The selected grains are rendered using standard granular synthesis methods, where metadata regarding overlap percentage and crossfade window are specified beforehand by the sound designer.
[046] The input that controls the procedural audio source can change in real time; consequently, the target descriptor coordinate can change over time as the input changes (the target descriptor coordinate can also change over time even if the input does not change).
[047] In one embodiment, the grain scheduling algorithm using weighted selection has the following steps.
[048] Step 1: Obtain a target descriptor coordinate (for example, map an input, such as a user input or other input, to a target descriptor coordinate in a descriptor space).
[049] Step 2: Determine the size of a neighborhood adaptively, for example, calculate a k value depending on the target descriptor coordinate or calculate a radius (r) value depending on the target descriptor coordinate. Alternatively, obtain a pre-calculated k or radius value from grain database metadata.
[050] Step 3: Select a set of candidate grains from the database using the k-value or the radius value. For example, select the grains from the database that are the k-nearest neighbors of the target descriptor coordinate. This search can be performed using computationally efficient and readily available algorithms such as kD tree search. As another example, include in the set of candidate grains each Petition 870250080620, dated 08 / 09 / 2025, pages 199 / 235 14 / 38 grain that has a grain coordinate that is within a distance of ra from the target descriptor coordinate.
[051] Step 4: Assign a final weight (also known as a probability value) to each of the grains in the set of candidate grains. The final weight assigned to a given grain can be based on: i) the distance of the grain's position in the descriptor space (i.e., the grain's coordinate) from the target descriptor coordinate in the descriptor space, ii) the difference in the trend of a grain's descriptors compared to the target descriptor trajectory, iii) the temporal history of previously used grains, iv) the difference in the time instant in the original recording between the grain and the previously used grain, if they are from the same recording, and / or (v) probability of a predefined grain weight in the database.
[052] Step 5: Perform a weighted selection of grains from the set of candidate grains using the final weights assigned in step 4. For example, perform a weighted random selection or, as another example, select the grain with the highest final weight or the lowest final weight. In this way, grains are selected based on the target descriptor coordinate and, additionally, based on the final weights assigned to the grains in the set of candidate grains.
[053] If the target descriptor coordinate changes, the steps will be repeated. Otherwise, the weighted grain selection continues (step 4 onwards) with changes made to the weights based on the temporal history of previous grains. Step 2 - Determining the value of k
[054] Conventionally, the value of k is a user-defined constant. However, it is not desirable to keep the value of k fixed all the time, Petition 870250080620, dated 08 / 09 / 2025, pages 200 / 235 15 / 38 because this can lead to the selection of too few or too many grains, which, in turn, can lead to the underutilization of grains or the ranking of grains that differ from the target descriptor value, respectively.
[055] Therefore, this disclosure provides, in one embodiment, an adaptive choice of k based on the density of grains available in an area around the target descriptor coordinate.
[056] An example of why different values of k should be used for different target descriptor coordinates is illustrated in FIG. 2A and 2B. In FIG. 2A, the target descriptor coordinate is near a cluster of 3 grains, while in FIG. 2B, the target descriptor coordinate is in the vicinity of more grains. In both scenarios, it is not optimal to use the same value of k. For the case of FIG. 2A, k=3 is appropriate. If k > 3, this will lead to the selection of grains that are not in the cluster and therefore lead to a discontinuity in the texture of the rendered sound. In FIG. 2B, if k = 3, then fewer grains are selected. A larger value here will lead to richer textures with fewer repetitions, since a variety of grains can be selected.
[057] The value of k must be chosen adaptively based on the target descriptor coordinate in the descriptor space. In one embodiment, each grain in the database is assigned an optimal k value. Then, for a target descriptor coordinate, the k value is prepared as equal to the optimal k value assigned to the grain that is closest to the target descriptor coordinate.
[058] The assignment of optimal k per grain in the database can be performed offline or during the construction of the grain database. All distances from grain i to other grains in the database are recorded, or there may be a threshold on the maximum number of neighbors to stop the distance computation.
[059] Distances are ranked from shortest to longest. The difference Petition 870250080620, dated 08 / 09 / 2025, pages 201 / 235 16 / 38 between distances for consecutive values of k will have a sudden jump at a value where the distance increases drastically. This is treated as a cutoff value for k, and k+1 is assigned to the grain. The addition of 1 serves to include the grain itself in the value of k.
[060] One criterion for determining the cutoff value would be to prepare an absolute threshold on the difference in ranked distances between consecutive neighbors or to use normalized percentage increases in consecutive ranked distances.
[061] Alternatively, the concept of adaptive radius can also be used to select the set of candidate grains. The current method in the literature involves using a fixed radius with the target descriptor coordinate as the center of a circle and selecting all grains within that fixed-radius circle to be included in the set of candidate grains. By the same reasoning above, it may be beneficial to adaptively change the radius based on the position of the target descriptor coordinate. There, instead of choosing different values of k, different values of radius would be used.
[062] FIG. 3A illustrates the computation of k for a certain grain 301 represented by the black circle. In FIG. 3A, grain 301 and its 6 corresponding neighbors are shown. In FIG. 3B, the ranked distances are shown for grain 301. Since the jump in distance values is observable for k=4, an optimal k value of 5 is assigned to grain 301. Step 3 - Weight assignments
[063] Each of the factors influencing the final weight assigned to a grain is described below. The target descriptor is denoted as ue, the weight (also known as probability) associated with grain i as pi. The descriptor index is denoted by j = 1,2, ...,D where D is the number of descriptors or dimensions of the descriptor space. The descriptor value of grain i in dimension j is given Petition 870250080620, dated 08 / 09 / 2025, pages 202 / 235 17 / 38 by X[jea of the target as Uj.
[064] The criteria below that influence the probability of choosing a grain are expressed as proportional relationships, since the final weight value is obtained after normalization, that is, ensuring that the weights corresponding to all k grains sum to 1. i) Distance from the target descriptor coordinate
[065] A distance metric is used to define the proximity between the target descriptor coordinate and other descriptor coordinates corresponding to the grains. An example of a distance metric is a weighted Euclidean distance, where the difference in coordinates in each dimension is weighted by the inverse of the standard deviation of the corresponding descriptor values, df= ^j(uj' *· / ) (Equation 1)
[066] The closer the descriptor coordinate of a grain is to the target descriptor coordinate, the greater the associated weight. Let dLser be the distance from grain i to the target descriptor coordinate. For example, the probability that grains i will be chosen can be inversely proportional to the distance. pi α 1 / d£. Therefore, one can set pt1= 1 / di.
[067] In some cases, the different descriptors should not have the same amount of influence on grain selection. For example, if one descriptor is the pitch of the sound and another is a descriptor that has a less strong effect on the perceptual character of the sound, the distance in the dimension corresponding to pitch may receive a greater weight than the distance in the dimension corresponding to the other descriptor. This can be achieved by adding an extra variable weight, mj, for each dimension when calculating the distance: dj = Zjmj(~^^^~ (Equation 2) Petition 870250080620, dated 08 / 09 / 2025, pages 203 / 235 18 / 38 ii) Difference in the trend of the trajectories of the target and original descriptor
[068] When performing grain extraction, the descriptive coordinates are used as the main selection criterion. But the trend of the original descriptive trajectory also gives important information about the grain. For example, if an engine sound is modeled with a granular database with a descriptor that denotes the engine's RPM (revolutions per minute), the descriptive trend corresponds to the acceleration or deceleration of the engine at the instant in the recording from which the grain was extracted. A grain that was extracted from a portion of the recording when the engine was accelerating will have a tone that is slightly lower at the beginning than at the end and will therefore fit better when the desired emission is the sound of an accelerating engine.
[069] In the more general case, where a multidimensional descriptor space is used, the descriptor trend is a vector that corresponds to the direction of the trajectory that describes how the descriptors were changing at the time of the original recording. Similarly, the target descriptor trajectory trend describes the direction in which the target descriptor coordinate is moving in the descriptor space.
[070] The trend describes both the direction and the rate of change. Referring again to the engine example, if the granular database includes grains that correspond to the same RPM but with different acceleration, the grains that correspond to an acceleration similar to that of the target descriptive trajectory should be preferred.
[071] FIG. 4A shows a descriptive trajectory of an original recording of an engine sound where the descriptor is the engine RPM. The recording is divided into 15 grains. FIG. 4B shows an example of how the grains can be selected to match a target descriptive trajectory, where the descriptive trend of the grains is not considered during grain selection. How can Petition 870250080620, dated 08 / 09 / 2025, pages 204 / 235 19 / 38 can be seen, grains with increasing and decreasing RPM are used in combination. The resulting descriptive trajectory shows an irregular behavior that can result in a degradation in perceived quality, especially if the descriptor represents the tone of the sound. In FIG. 4C, the grain selection also considers the descriptive trend, so that only grains with decreasing RPM are used, which would result in a smoother sound.
[072] Considering the descriptive tendency during grain scaling is extremely important for sound sources where the character is different for different tendencies. For example, an engine may sound different when accelerating compared to when decelerating. Ensuring that the descriptive tendency matches avoids problems where grains with different characters are used together.
[073] The descriptor trend of a grain can be calculated as the difference in the descriptor value at the end of the grain compared to the beginning of the grain, divided by the grain duration. In the case of a multidimensional descriptor space, the trend is a vector that describes the average rate of change in the descriptor coordinates during the grain in the original recording, for example, with three descriptors, the trend, tG, of a grain would be a three-dimensional vector: ίβ=(·U1FIM-UiINjCI0U2FIM-U2lNicIOU3FIM-U3INÍCIO Duration Duration Duration (Equation 3)
[074] By scaling grains in the rendering time, the trend of the target descriptor path can be calculated similarly to the difference in descriptor coordinates since the last update, divided by the time elapsed since the last update, Tu. / ίτ =(U1U1ÚLTIMOU2U2ÚLTIMOU3U3ÚLTIMO (Equation 4)
[075] The difference in trend can then be calculated as (Equation 5) Petition 870250080620, dated 08 / 09 / 2025, pages 205 / 235 20 / 38
[076] The weight assigned to a grain can then be calculated as a function of the tD norm, for example: pi2= max(1,0,-^), where m-τ is a |íd I variable that controls how the probability decreases with increasing difference in the descriptor trend. iii) Time history of grains used previously
[077] A history of previously rendered grains is maintained for a certain time window to avoid repeating them and to decrease the probability of choosing the grain if it has already been rendered. The decrease in probability is directly proportional to a function of the difference between the current time instant teo and the last time instant in which grain i was rendered tp. Pi3 * f(t - tp) (Equation 6)
[078] If grain i was not selected in the past or in a certain time window, the value of the last instant of time is prepared as zero, tp= 0. The function f can be linear, quadratic, logarithmic or any monotonically increasing function of the argument t — tp with non-negative emission. iv) Difference in the time instant in the original recording
[079] For some sound sources, the way the sound evolves may not be completely described by changes in descriptors. Sometimes, the sound evolves in a way that depends on what happened before. For example, the creaking sound of an old door may sound slightly different each time it is opened, even if the opening is done at the same speed, etc. In such cases, the sound of grains with similar descriptor values and descriptor tendencies may sound very different, and combining them may result in unnatural discontinuities that were not present in the original recording. One way to avoid these discontinuities is to assign a higher probability to grains that come from the same part of the original recording as the grain that was used previously. Grains originating from the Petition 870250080620, dated 09 / 08 / 2025, pp. 206 / 235 21 / 38 same part of the original recording are closely related and resemble each other in character and, therefore, are good candidates when selecting the next grain.
[080] In order to measure how close a grain from a specific recording is to another grain from the same recording, a time difference can be calculated that corresponds to the difference in the time instant in the recording from which the two grains were extracted. If the grains were close together, this time difference would be small. To calculate the time difference between two grains, metadata can be used that indicates from which original recording each grain was extracted and at what time instant. This metadata, therefore, provides a measure of proximity between the two grains. This metadata can be compactly specified as two values: a recording identifier assigned to the source recording and a timestamp that identifies the time instant in that recording where the grain can be found.
[081] A weight for a grain can then be calculated based on the differences in timestamps, so that a smaller difference offers a higher probability of choosing the evaluated grain. For example, the weight, pi, of grain i could be calculated as í / (tj — t0j , Ri = R0 ~Pw =lb,Ri*R0(Equation 7) where Ri is the recording identifier assigned to the recording from which grain i was extracted, Ro is the recording identifier assigned to the recording from which the previously rendered gain was extracted, ti and t0 are the respective timestamps for the two grains, and b is a design constant that defines the probability of using a grain that comes from another recording. The function f() takes the time instant difference as input and calculates a probability for the grain. In one embodiment, the function f decreases linearly with increasing time instant difference with a slope specified with a Petition 870250080620, dated 08 / 09 / 2025, pages 207 / 235 22 / 38 variable a: Pi4 = '1.0 - α|ί1- t0|) ,Ri = Ro and |t1 - t0| <1.0 bb ,Ri^Ro (Equation 8) This has the effect that the probability decreases from 1.0 to b as the difference between the respective timestamps increases, but it never falls below b.
[082] In one embodiment, the recording identifier Ri can also be defined to refer to segments of a recording, i.e., a recording can be divided into segments where each segment has its own index. This can be useful when a recording contains segments that should not be seen as related by the renderer. Final weight
[083] The final weight assigned to grain i (i.e., pi) is calculated by accumulating the weights assigned to grain ia from each stage, i.e., pi = pi1pi2pi3Pi4Pi5, where pi5 is the predetermined weight mentioned above. In some forms, not all five weights are required and can be skipped by setting the corresponding weight as 1.0 or excluding it completely from the calculation.
[084] In one modality, the different weights receive different levels of influence on the final weight, modifying the individual weights with a fractional exponent, such as, for example, Pi = Pii1 / 2Pi2Pi3Pi41 / 4Pi5, (Equation 9) where the weight pu of the first stage becomes less influential using a fractional exponent of ½ and the weight pi4 becomes even less influential using a fractional exponent of 1 / 4.
[085] After the weights have been calculated for all grains in the candidate grain set from the steps above, they need to be normalized, Petition 870250080620, dated 08 / 09 / 2025, pages 208 / 235 23 / 38, that is, each of them divided by the sum.
[086] Pi ^ -J-1—, where k is the size of the set of candidate grains. Li=iPí
[087] Next, the grains are selected based on their final weight (e.g., by sampling from the distribution). It is observed that the temporal history of a grain and the descriptor trend influence the final weight at each time instant when a grain is rendered when the target descriptor coordinate does not change. Therefore, as long as the target descriptor remains constant, if at time t t grain i is chosen, at time t+h, the final weight of that grain will be influenced by the temporal history and the descriptor trend. The final weight of grain i becomes Pi ^ Pi2Pi3 where t - tp= h in p^.
[088] To avoid repeating grain i in t + 1, we can define / (h) as / (h) = {°'h= 1 (Equation 10) however, due to the normalization operation, the probabilities of the other k — 1 grains also change.
[089] FIG. 5 is a flowchart illustrating a 500 process, according to one embodiment, for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains. The 500 process can start at step s502.
[090] Step s502 involves obtaining a first target descriptor coordinate, where the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0.
[091] Step s504 comprises the definition of a first set of candidate grains based on the first target descriptor coordinate, where the first set of candidate grains comprises k1 of the plurality of grains, Petition 870250080620, dated 08 / 09 / 2025, pages 209 / 235 24 / 38 where kl > 1.
[092] Step s506 involves assigning a final weight to each grain in the first set of candidate grains.
[093] Step s508 involves randomly selecting a grain from the first set of candidate grains based on the final weights assigned, such that the probability of a given grain in the first set of candidate grains being selected is a function of the final weight assigned to the given grain.
[094] Step s510 involves rendering the selected grain.
[095] FIG. 6 is a flowchart illustrating a process 600, according to one embodiment, for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains. The process 600 can start at step s602.
[096] Step s602 involves obtaining a first target descriptor coordinate, where the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0.
[097] Step s604 comprises the definition of a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises a first grain and a second grain.
[098] Step s606 involves assigning a final weight to each grain in the first set of candidate grains, wherein assigning a final weight to each grain in the first set of candidate grains involves assigning a first final weight to the first grain and assigning a second final weight to the second grain. The first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the Petition 870250080620, dated 08 / 09 / 2025, pages 210 / 235 25 / 38 amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain.
[099] Step s608 involves selecting a grain from the first set of candidate grains based on the final weights assigned.
[100] Step s610 involves rendering the selected grain. Example of a Use Case
[101] FIG. 7A illustrates an XR 700 system, according to one embodiment, in which the embodiments disclosed in the present invention can be applied. As shown in FIG. 7A, the XR 700 system comprises an XR headset 720 (e.g., XR goggles, XR glasses, XR headmounted display (HMD), etc.) that is configured for use by a user and that is operable to display to the user an XR scene (e.g., an XR scene in which the user is virtually immersed), speakers 734 and 735 to produce sound for the user, and an input device 750 to receive input from the user (in this example, the input device 750 is in the form of a joystick).
[102] FIG. 7B illustrates that the XR 720 headset may comprise an orientation sensor detection unit 721, a position sensor detection unit 722 and an XR rendering device 724. In this embodiment, the XR 724 rendering device includes an audio renderer which includes a grain database 104 and a granular rendering unit 108.
[103] The orientation sensor detection unit 721 is configured to detect a change in the user's orientation and provides information about the detected change to the XR rendering device 724. In Petition 870250080620, dated 08 / 09 / 2025, pages 211 / 235 26 / 38 In some embodiments, the XR 724 rendering device determines the absolute orientation (relative to some coordinate system) given the change detected in orientation detected by the orientation sensor detection unit 721. In some embodiments, the orientation sensor detection unit 721 may comprise one or more accelerometers and / or one or more gyroscopes.
[104] In addition to receiving input from sensor detection units 721 and 722, the XR rendering device 724 can also receive input from input device 750 and can also obtain XR scene configuration information (e.g., grain metadata). Based on these inputs and the XR scene configuration, the XR rendering device 724 renders an XR scene in real time for the user. That is, in real time, the XR rendering device produces XR content, including, for example, video data that is provided to a display driver 726 so that the display driver 726 displays on a display screen 727 images included in the XR scene, and audio data that is provided to the speaker driver 728 so that the speaker driver 728 plays audio to the speakers 734 and 735 in use (the audio data or portion thereof may be generated by the granular rendering unit 108).Although the XR 724 rendering device is shown as being inside the XR 720 headset in this embodiment, in other embodiments the XR 724 rendering device (or one or more components thereof, such as the grain database 104 and the granular rendering unit 108) are located remotely from the XR 720 headset, in which case the XR 720 headset and the XR 724 rendering device have means of communication (transmitter, receiver) to enable the XR 724 rendering device to transmit XR content to the headset. Petition 870250080620, dated 08 / 09 / 2025, pages 212 / 235 27 / 38 XR 720 headset (for example, the XR rendering device or its components can be implemented in the cloud).
[105] FIG. 8 is a block diagram of an XR 724 rendering device, according to some embodiments, for performing the methods disclosed in this disclosure. As shown in FIG. 8, the XR 724 rendering device may comprise: a processing circuit (PC) assembly 802, which may include one or more processors (P) 855 (for example, one or more general-purpose microprocessors and / or one or more other processors, such as an application-specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs) and the like), which processors may be colocated in a single housing or in a single data center or may be geographically distributed (i.e., the XR 724 rendering device may be a distributed computing apparatus);at least one network interface 848 (for example, a physical interface or an air interface) comprising a transmitter (Tx) 845 and a receiver (Rx) 847 to enable the XR 724 rendering device to transmit data and receive data from other nodes connected to a network 110 (for example, an Internet Protocol (IP) network) to which the network interface 848 is connected (physically or wirelessly) (for example, the network interface 848 may be coupled to an antenna array comprising one or more antennas to enable the XR 724 rendering device to transmit / receive data wirelessly);and a storage unit (also known as a “data storage system”) 808, which may include one or more non-volatile storage devices and / or one or more volatile storage devices (as illustrated in FIG. 8, the grain database (DB) may be stored in storage unit 808). In embodiments where the PC; Petition 870250080620, dated 08 / 09 / 2025, pages 213 / 235 28 / 38 802 includes a programmable processor, a computer-readable storage medium (CRSM) 842 may be provided. The CRSM 842 may store a computer program (CP) 843 comprising computer-readable instructions (CRI) 844. The CRSM 842 may be a non-transient computer-readable medium, such as magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory) and the like. In some embodiments, the CRI 844 of the computer program 843 is configured such that, when executed by the PC 802, the CRI causes the XR rendering device 724 to perform the steps described in the present invention (e.g., steps described in the present invention with reference to flowcharts). In other embodiments, the XR rendering device 724 may be configured to perform the steps described in the present invention without the need for code.That is, for example, PC 802 may consist of only one or more ASICs. Consequently, the attributes of the embodiments described in the present invention may be implemented in hardware and / or software. Summary of Various Modalities
[106] A1. A method for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains, the method comprising: obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1; assigning a final weight to each grain in the first set of candidate grains; randomly selecting a grain from the first set of candidate grains based on the assigned final weights, such that the Petition 870250080620, dated 08 / 09 / 2025, pages 214 / 235 29 / 38 The probability that a given grain in the first set of candidate grains will be selected is a function of the final weight assigned to the given grain; and rendering the selected grain.
[107] A2. The method of embodiment A1, in which each of the plurality of grains is associated with a grain coordinate (e.g., a set of one or more descriptor values) that identifies a grain location in the N-dimensional descriptor space, and the first set of candidate grains is defined based on the first target descriptor coordinate and the grain coordinates.
[108] A3. The A2 embodiment method, in which the definition of the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises the determination of a nearest neighbor set of grains consisting of k1 of the plurality of grains, wherein none of the plurality of grains that are not included in the nearest neighbor set of grains is closer to the first target descriptor coordinate than any of the grains included in the nearest neighbor set of grains, and the candidate set of candidate grains consists of the grains included in the nearest neighbor set of grains.
[109] A4. The method of embodiment A3, additionally comprising determining k1 based on the number of grains in the plurality of grains having a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
[110] A5. The method of embodiment A3, in which each grain included in the plurality of grains receives an optimum k value, and the method comprises preparing k1 equal to the optimum k value assigned to the grain within the plurality of grains that has a grain coordinate that is closest to the target descriptor coordinate.
[111] A6. The A2 modality method, in which the definition of the first Petition 870250080620, dated 09 / 08 / 2025, pp. 215 / 235 30 / 38 The set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises: determining a first radius value, r1; and including in the first set of candidate grains each of the plurality of grains that has a grain coordinate that is within a distance of r1 from the first target descriptor coordinate.
[112] A7. The method of embodiment A6, further comprising determining r1 based on the number of grains in the plurality of grains that have a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
[113] A8. The method of any of the embodiments A1-A7, in which the assignment of a final weight to each grain in the first set of candidate grains comprises: assigning a first weight to a first grain included in the set of candidate grains; determining a first final weight based on the first weight; and assigning the first final weight to the first grain.
[114] A9. The method of modality A8, in which the first weight is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, or a function of a measure of proximity between the first grain and the most recently rendered grain (e.g., a time difference indicating a timestamp difference for the first grain and a most recently rendered timestamp, assuming that both grains were extracted from the same recording or the same segment).
[115] A10. The method of any of the modalities A1-A9, further comprises: after randomly selecting a grain from the first set of candidate grains based on the final weights assigned, Petition 870250080620, dated 08 / 09 / 2025, pages 216 / 235 31 / 38 assign a new final weight to the rendered grain or remove the rendered grain from the first set of candidate grains; after assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains, randomly select another grain from the first set of candidate grains based on the currently assigned final weights; and render the other selected grain.
[116] A11. The method of any of the embodiments A1-A9, further comprising: after randomly selecting a grain from the first set of candidate grains, obtaining a second target descriptive coordinate; defining a second set of candidate grains based on the second target descriptive coordinate, wherein the second set of candidate grains comprises k2 of the plurality of grains, where k2 > 1; assigning a final weight to each grain in the second set of candidate grains; randomly selecting a grain from the second set of candidate grains based on the assigned final weights, such that the probability of a given grain from the second set of candidate grains being selected is a function of the final weight assigned to the given grain; and rendering the randomly selected grain from the second set of candidate grains.
[117] B1. A method for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains, the method comprising: obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises a first grain and a second grain; assigning a final weight to each grain in Petition 870250080620, dated 08 / 09 / 2025, pages 217 / 235 32 / 38 first set of candidate grains, where assigning a final weight to each grain in the first set of candidate grains comprises assigning a first final weight to the first grain and assigning a second final weight to the second grain; selecting a grain from the first set of candidate grains based on the assigned final weights; and rendering the selected grain, where the first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain.
[118] B2. The method of embodiment B1, in which each of the plurality of grains is associated with a grain coordinate (e.g., a set of one or more descriptor values) that identifies a grain location in the N-dimensional descriptor space, and the first set of candidate grains is defined based on the first target descriptor coordinate and the grain coordinates.
[119] B3. The B2 embodiment method, in which the definition of the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises the determination of a nearest neighbor set of grains consisting of k1 of the plurality of grains, wherein none of the plurality of grains that are not included in the nearest neighbor set of grains is closer to the first target descriptor coordinate than any of the grains included in the nearest neighbor set of grains, and the candidate set of candidate grains consists of the grains included in the nearest neighbor set of grains.
[120] B4. The method of embodiment B3, further comprising determining k1 based on the number of grains in the plurality of grains that have Petition 870250080620, dated 09 / 08 / 2025, pp. 218 / 235 33 / 38 is a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
[121] B5. The method of embodiment B3, in which each grain included in the plurality of grains receives an optimum k value, and the method comprises preparing k1 equal to the optimum k value assigned to the grain within the plurality of grains that has a grain coordinate that is closest to the target descriptor coordinate.
[122] B6. The B2 embodiment method, in which the definition of the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises: determining a first radius value, r1; and including in the first set of candidate grains each of the plurality of grains that has a grain coordinate that is within a distance of r1 from the first target descriptor coordinate.
[123] B7. The method of embodiment B6, additionally comprising determining r1 based on the number of grains in the plurality of grains having a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
[124] B8. The method of any of the embodiments B1-B7, further comprising: after selecting a grain from the first set of candidate grains based on the final weights assigned, assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains; after assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains, selecting another grain from the first set of candidate grains based on the currently assigned final weights; and rendering the other selected grain.
[125] B9. The method of any of the modalities B1-B8, Petition 870250080620, dated 08 / 09 / 2025, pages 219 / 235 34 / 38 further comprising: after selecting a grain from the first set of candidate grains, obtaining a second target descriptor coordinate; defining a second set of candidate grains based on the second target descriptor coordinate, wherein the second set of candidate grains comprises k2 of the plurality of grains, where k2 > 1; assigning a final weight to each grain in the second set of candidate grains; selecting a grain from the second set of candidate grains based on the assigned final weights; and rendering the randomly selected grain from the second set of candidate grains.
[126] C1. A computer program comprising instructions that, when executed by the processing circuitry of an XR rendering device, causes the XR rendering device to perform the method of either of claims A1-A11 or B1B10.
[127] C2. A carrier containing the computer program of the C1 mode, wherein the carrier is one of an electronic signal, an optical signal, a radio signal and a computer-readable storage medium.
[128] D1. An XR rendering device for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains, the XR rendering device comprising: memory; and a memory-coupled processing circuitry set, wherein the device is configured to perform a method comprising: obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1; assigning a final weight to each grain in the first set of candidate grains; Petition 870250080620, dated 08 / 09 / 2025, pages 220 / 235 35 / 38 randomly select a grain from the first set of candidate grains based on the final weights assigned, such that the probability that a given grain in the first set of candidate grains is selected is a function of the final weight assigned to the given grain; and render the selected grain.
[129] D2. The XR rendering device of embodiment D1, wherein the XR rendering device is additionally configured to perform the method of any of claims A2-A11.
[130] E1. An XR rendering device for rendering audio corresponding to an audio recording, wherein the audio recording is divided into a plurality of grains, the XR rendering device comprising: memory; and a memory-coupled processing circuitry set, wherein the device is configured to perform a method comprising: obtaining a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises a first grain and a second grain;assign a final weight to each grain in the first set of candidate grains, wherein assigning a final weight to each grain in the first set of candidate grains comprises assigning a first final weight to the first grain and assigning a second final weight to the second grain; selecting a grain from the first set of candidate grains based on the assigned final weights; and rendering the selected grain, wherein the first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a; Petition 870250080620, dated 08 / 09 / 2025, pages 221 / 235 36 / 38 trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain.
[131] E2. The XR rendering device of embodiment E1, wherein the XR rendering device is additionally configured to perform the method of any of claims B2-B10.
[132] Although several embodiments are described in the present invention, it should be understood that they have been presented only by way of example and not by way of limitation. Therefore, the breadth and scope of this disclosure should not be limited by any of the exemplary embodiments described above. Furthermore, any combination of the elements described above in all possible variations thereof is covered by the disclosure, unless otherwise indicated in the present invention or otherwise clearly contradicted by the context.
[133] Additionally, although the processes described above and illustrated in the drawings are shown as a sequence of steps, this has been done for illustrative purposes only. Therefore, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be rearranged, and some steps may be performed in parallel. Additionally, as used in the present invention, “a” means “at least one” or “one or more”. References [1] US20180068487A1: Systems and methods for simulating sounds of a virtual object using procedural audio (Disney Enterprises Inc.). [2] Farnell, Andy, An introduction to procedural audio and its application in computer games,” Audio mostly conference Vol. 23. 2007. [3] D. Gabor, “Communication Theory. Part 1: The Analysis of Petition 870250080620, dated 09 / 08 / 2025, pp. 222 / 235 37 / 38 information,” Journal of the Institution of Electrical Engineers-Part III: Radio and Communication Engineering, vol. 93, no. 26, pp. 429-441, 1946. [4] D. Schwarz, Corpus-Based Concatenative Synthesis, in IEEE Signal Processing Magazine, vol. 24, no. 2, pp. 92-104, Março, 2007, doi: 10.1109 / MSP.2007.323274. [5] D. Schwarz Distance mapping for corpus-based concatenative synthesis. Sound and Music Computing (SMC) 2011. [6] Aaron Einbond e Diemo Schwarz. Spatializing timbre with corpus-based concatenative synthesis. International Computer Music Conference Proceedings. Vol. 2010. International Computer Music Association, 2010. [7] D. Schwarz. A system for data-driven concatenative sound synthesis. Digital Audio Effects (DAFx). 2000. [8] D. Schwarz et al. Real-time corpus-based concatenative synthesis with catart. 9th International Conference on Digital Audio Effects (DAFx). 2006. [9] Diemo Schwarz and Norbert Schnell. Descriptor-based sound texture sampling. Sound and music computing (SMC) 2010.
[10] Diemo Schwarz e Sean O'Leary. Smooth granular sound texture synthesis by control of timbral similarity. Sound and Music Computing (SMC) 2015.
[11] Zechen Zhang, Nikunj Raghuvanshi, John Snyder e Steve Marschner. 2019. Acoustic texture rendering for extended sources in complex scenes. ACM Trans. Graph. 38, 6, Article 222 (Dezembro de 2019), 9 pages. https: / / doi.org / 10.1145 / 3355089.3356566.
[12] Barrass, Stephen, e Matt Adcock. Interactive granular synthesis of haptic contact sounds. Audio Engineering Society conference: 22nd international conference: virtual, synthetic, and entertainment audio. Audio Engineering Society, 2002. Petição 870250080620, de 08 / 09 / 2025, pág. 223 / 235 38 / 38
[13] US20190094975A1: Haptic Effect Conversion System Using Granular Synthesis: Immersion Corp. Petition 870250080620, dated 09 / 08 / 2025, pp. 224 / 235
Claims
1 / 11 CLAIMS 1.Method (500) for rendering audio corresponding to an audio recording characterized in that the audio recording is divided into a plurality of grains, the method comprising: obtaining (s502) a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining (s504) a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1; assigning (s506) a final weight to each grain in the first set of candidate grains; randomly selecting (s508) a grain from the first set of candidate grains based on the assigned final weights, such that the probability of a given grain from the first set of candidate grains being selected is a function of the final weight assigned to the given grain; and rendering (s510) the selected grain.
2. A method according to claim 1, characterized in that each of the plurality of grains is associated with a grain coordinate that identifies a grain location in the N-dimensional descriptor space, and the first set of candidate grains is defined based on the first target descriptor coordinate and the grain coordinates.
3. Method, according to claim 2, characterized in that the definition of the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises a determination of a set of nearest neighbor grains consisting of a plurality of grains, wherein none of the plurality of grains not included in the set of nearest neighbor grains is closer to the first target descriptor coordinate than any of the grains included in the set of nearest neighbor grains, and the candidate set of candidate grains consists of the grains included in the set of nearest neighbor grains.
4. Method, according to claim 3, characterized in that it further comprises the determination of k1 based on the number of grains in the plurality of grains that have a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
5. A method according to claim 3, characterized in that each grain included in the plurality of grains is assigned an optimal value k, and the method comprises preparing k1 equal to the optimal value of k assigned to the grain within the plurality of grains that has a grain coordinate that is closest to the first target descriptor coordinate.
6. A method according to claim 2, characterized in that defining the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises: determining a first radius value, r1; and including in the first set of candidate grains each of the plurality of grains that has a grain coordinate that is within a distance of r1 from the first target descriptor coordinate.
7. Method, according to claim 6, characterized in that it further comprises the determination of r1 based on the number of grains in the plurality of grains that have a grain coordinate that is within a threshold distance from the first target descriptor coordinate.
8. A method, according to any one of claims 1 to 7, characterized in that the assignment of a final weight to each grain in the first set of candidate grains comprises: assigning a first weight to a first grain included in the set of candidate grains; determining a first final weight based on the first weight; and assigning the first final weight to the first grain.
9. Method, according to claim 8, characterized in that the first weight is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, or a function of a measure of proximity between the first grain and the most recently rendered grain.
10. A method, according to any one of claims 1 to 9, characterized in that it further comprises: after randomly selecting a grain from the first set of candidate grains based on the assigned final weights, assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains; after assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains, randomly selecting another grain from the first set of candidate grains Petition 870250080620, dated 08 / 09 / 2025, pp. 227 / 235 4 / 11 based on the currently assigned final weights; and rendering the other selected grain.
11. A method according to any one of claims 1 to 9, characterized in that it further comprises: after randomly selecting a grain from the first set of candidate grains, obtaining a second target descriptive coordinate; defining a second set of candidate grains based on the second target descriptive coordinate, wherein the second set of candidate grains comprises k2 of the plurality of grains, where k2 > 1; assigning a final weight to each grain in the second set of candidate grains; randomly selecting a grain from the second set of candidate grains based on the assigned final weights, such that the probability of a given grain from the second set of candidate grains being selected is a function of the final weight assigned to the given grain; and rendering the randomly selected grain from the second set of candidate grains.
12. Method (600) for rendering audio corresponding to an audio recording characterized in that the audio recording is divided into a plurality of grains, the method comprising: obtaining (s602) a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, wherein N > 0; defining (s604) a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, wherein k1 > 1, and the first set of candidate grains comprises a first grain and a second grain; Petition 870250080620, dated 08 / 09 / 2025, p.228 / 235 5 / 11 assign (s606) a final weight to each grain in the first set of candidate grains, wherein the assignment of a final weight to each grain in the first set of candidate grains comprises the assignment of a first final weight to the first grain and the assignment of a second final weight to the second grain; select (s608) a grain from the first set of candidate grains based on the assigned final weights; and render (s610) from the selected grain, wherein the first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain.
13. Method, according to claim 12, characterized in that each of the plurality of grains is associated with a grain coordinate that identifies a grain location in the N-dimensional descriptor space, and the first set of candidate grains is defined based on the first target descriptor coordinate and the grain coordinates.
14. Method, according to claim 13, characterized in that the definition of the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises a determination of a nearest neighbor set of grains consisting of k1 of the plurality of grains, wherein none of the plurality of grains that are not included in the nearest neighbor set of grains is closer to the first target descriptor coordinate than any of the grains included in the nearest neighbor set of grains, and the candidate set of candidate grains consists of the grains included in the nearest neighbor set of grains.
15. Method, according to claim 14, characterized in that it further comprises the determination of k1 based on the number of grains in the plurality of grains that have a grain coordinate that is within a threshold distance of the first target descriptor coordinate.
16. A method according to claim 14, characterized in that each grain included in the plurality of grains is assigned an optimal value k, and the method comprises preparing k1 equal to the optimal value of k assigned to the grain within the plurality of grains that has a grain coordinate that is closest to the first target descriptor coordinate.
17. Method, according to claim 13, characterized in that defining the first set of candidate grains based on the first target descriptor coordinate and the grain coordinates comprises: determining a first radius value, r1; and including in the first set of candidate grains each of the plurality of grains that has a grain coordinate that is within a distance of r1 from the first target descriptor coordinate.
18. Method, according to claim 17, characterized in that it further comprises the determination of r1 based on the number of grains in the plurality of grains that have a grain coordinate that is within a threshold distance of the first target descriptor coordinate. Petition 870250080620, dated 08 / 09 / 2025, pp. 230 / 235 7 / 11 19. A method according to any one of claims 12 to 18, characterized in that it further comprises: after selecting a grain from the first set of candidate grains based on the assigned final weights, assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains; after assigning a new final weight to the rendered grain or removing the rendered grain from the first set of candidate grains, selecting another grain from the first set of candidate grains based on the currently assigned final weights; and rendering the other selected grain.
20. A method according to any one of claims 12 to 19, characterized in that it further comprises: after selecting a grain from the first set of candidate grains, obtaining a second target descriptive coordinate; defining a second set of candidate grains based on the second target descriptive coordinate, wherein the second set of candidate grains comprises k2 of the plurality of grains, where k2 > 1; assigning a final weight to each grain in the second set of candidate grains; selecting a grain from the second set of candidate grains based on the assigned final weights; and rendering the randomly selected grain from the second set of candidate grains.
21. Extended reality rendering device, XR, (724) for rendering audio corresponding to an audio recording characterized in that the audio recording is divided into a plurality of grains, Petition 870250080620, dated 08 / 09 / 2025, p. 231 / 235 8 / 11 XR rendering device comprising: memory (842); and a memory-coupled processing circuitry set (802), wherein the device is configured to perform a method (500) comprising: obtaining (s502) a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; defining (s505) a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1; assign (s506) a final weight to each grain in the first set of candidate grains;randomly select (s508) a grain from the first set of candidate grains based on the final weights assigned, such that the probability of a given grain from the first set of candidate grains being selected is a function of the final weight assigned to the given grain; and render (s510) the selected grain.
22. XR rendering device according to claim 21, characterized in that the XR rendering device is additionally configured to perform the method defined in any one of claims 2 to 11.
23. Extended reality rendering device, XR, (724) for rendering audio corresponding to an audio recording characterized in that the audio recording is divided into a plurality of grains, the XR rendering device comprising: memory (842); and Petition 870250080620, dated 08 / 09 / 2025, p. 232 / 235 9 / 11 memory-coupled processing circuitry (802), wherein the device is configured to perform a method (600) comprising: obtaining (s602) a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0; define (s604) a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises a first grain and a second grain;assign (s606) a final weight to each grain in the first set of candidate grains, wherein the assignment of a final weight to each grain in the first set of candidate grains comprises the assignment of a first final weight to the first grain and the assignment of a second final weight to the second grain; select (s608) a grain from the first set of candidate grains based on the assigned final weights; and render (s610) the selected grain, wherein the first final weight assigned to the first grain is: a function of the distance between the first target descriptor coordinate and the first grain, a function of the amount of time elapsed since the first grain was last rendered, a function of a trajectory associated with the first grain and a target trajectory, and / or a function of a measure of proximity between the first grain and the most recently rendered grain. Petition 870250080620, dated 08 / 09 / 2025, pp. 233 / 235 10 / 11; 24. XR rendering device according to claim 23, characterized in that the XR rendering device is additionally configured to perform the method defined in any one of claims 13 to 20.
25. Extended reality rendering device, XR, (724) for rendering audio corresponding to an audio recording characterized in that the audio recording is divided into a plurality of grains, the XR rendering device comprising: memory (842); and a memory-coupled processing circuitry set (802), wherein the device is configured to perform a method (600) comprising: obtaining (s602) a first target descriptor coordinate, wherein the first target descriptor coordinate identifies a first location in an N-dimensional descriptor space, where N > 0;and select (s608) a grain from the plurality of grains, wherein the selection is based on: i) a function of the distance between the first target descriptor coordinate and the first grain and / or a function of the amount of time elapsed since the first grain was last rendered, and ii) a function of a trajectory associated with the first grain and a target trajectory and / or a function of a measure of proximity between the first grain and a recently rendered grain.
26. XR rendering device, according to claim 25, characterized in that the method further comprises defining (s604) a first set of candidate grains based on the first target descriptor coordinate, wherein the first set of candidate grains comprises k1 of the plurality of grains, where k1 > 1, and the first set of candidate grains comprises the first grain and a second grain;and assign (s606) a final weight to each grain in the first set of candidate grains, wherein the assignment of a final weight to each grain in the first set of candidate grains comprises assigning a first final weight to the first grain and assigning a second final weight to the second grain, wherein selecting (s608) a grain from the plurality of grains comprises selecting a grain from the first set of candidate grains based on the assigned final weights, wherein the first final weight assigned to the first grain is: i) a function of the distance between the first target descriptor coordinate and the first grain and / or a function of the amount of time elapsed since the first grain was last rendered, and ii) a function of the trajectory associated with the first grain and the target trajectory and / or a function of the proximity measure between the first grain and a recently rendered grain.
27. Extended reality rendering device, XR, (724) characterized in that it is configured to perform the method defined in any one of claims 1 to 20.
28. Product, process, system, kit, means or use characterized by the fact that it comprises one or more elements described in the descriptive report, claims, drawings, sequence listing, or summary of this application, when applicable. Petition 870250080620, dated 08 / 09 / 2025, pp. 235 / 235