Rayverb Technology Whitepaper

rayverb-whitepaper-4

Prosoniq Rayverb Technology
Using a sampled impulse response to re-create an existing acoustic space through convolution is convenient and easy. But what if you wish to alter that room – have a sound source move about the scenery or change your listening position? Like with sampled instruments – once the impulse is sampled, its sound is written in stone – forever.
Prosoniq now has a new and unique technology to change all that: The Prosoniq Rayverb is the world’s first reverberation created using inverse raytracing.


What is “Raytracing”?
Raytracing is a way computers can model objects in a scene to create photo realistic computer generated images or animated sequences. In simple terms, this is accomplished by tracing back beams of light from the viewer of the scene to the objects in that scene to determine the colour of the pixel that should be rendered. This technique can also take into account various effects that take place in the physical world, most notably reflection, refraction, diffraction and dispersion. The interested reader is referred to a good physics textbook and the internet for more information about these effects. These effects are particularly important when light interacts with shiny or reflective surfaces or is travelling from one medium (like air) into another (like water).


How can Raytracing be used with sound?
When using the same technique to model the travelling of a sound wave within a room, several things have to be changed. Sound waves have a much longer wavelength than light, therefore, different rules apply to their propagation. Or more precisely, the same rules can be applied, however, most of the constants governing the operation of the raytracing system have to be changed.


Auralization and the present state-of-the art room simulation
Up until now, raytracing for acoustic room simulation has been too computationally demanding to be done in real time. A conventional raytracing simulation of an arbitrary shaped room takes hours to process on an average computer system. Therefore, most programs use a process called “auralization” to estimate the room response from model data.
Auralization has its primary application in the construction of buildings, to preview the effects of architecture and the various damping materials used in the process. In a sense, it uses very much the same simplifications a real-time 3D computer game uses to render its virtual worlds, versus a full-fledged raytracing program that is used to create photo-realistic images – it simplifies the model and leaves aside some of the physical effects.
In its simplest form, auralization is nothing more than an EQ reproducing the damping effects of a material blocking the sound waves that emanate from a sound source. The more advanced auralization techniques model a room response by applying both a damping EQ curve and calculating the first few reflections by simplifying the room shape to be rectangular (ie. to have parallel walls) and by leaving aside effects that are more complicated to model, such as dispersion.
The simplest form of auralization that can be rendered in real time is called the mirror-image-technique (sometimes also referred to as the image-source technique), which computes the reflection paths by considering virtual sources generated by mirroring the location of the audio source over each of the sides of the room. This technique is useful for modelling the first few reflections in a room, but is useful only for rectangular, non-reverberant spaces, such as for the design of loudspeaker enclosures. It fails for general, arbitrary room shapes or reverberant spaces, where many generations of reflections have to be calculated.


What is inverse raytracing?
Inverse raytracing algorithms are presently in use mostly in optics (laser and holography), seismology and astrophysics. They are useful to pinpoint the epicentre of an earthquake or to estimate the size of dust clouds in space. Recent inverse raytracing techniques make it possible to view sunspots on the far side of the sun by tracing back the waves that travel along the sun’s surface.
Inverse raytracing, as used in the context of audio signals, is a technique that tries to estimate the position of a sound source and the position and material of the reflecting walls from the sampled impulse response of a real room. Of course, there are many ambiguities involved in this process, and several parameters of the room model that is created out of the impulse response have to be found by “guessing”, since two channels of sampled audio do not contain enough information to fully describe a
“virtual acoustic scene”.

Rayverb chooses the type of room for you, either from the available presets or from your sampled impulse response. To do this efficiently and to ensure good sonic results, Rayverb uses an artificial neural networkthat has been trained with sampled room responses from known room models to pick a basic room topology and adapt its parameter accordingly, in order to reproduce the room most  faithfully.


Impossible room models
However, some of your sampled impulse responses might belong to room models that cannot exist in reality. Many of today’s reverb generation algorithms have nothing in common with the effects that take place when a sound wave interacts with a sonic space, so most of the impulse responses you might own that come from synthetic reverbs may actually lead to “physically impossible” room models. The same is true with sound files other than impulse responses, which can also be opened in Rayverb for analysis.

In this case, Rayverb selects a primary room model that matches your impulse response most closely, and reproduces the additional reflections by adding another acoustic space to the scene. This process is repeated until all of the early reflections are covered. In other words, Rayverb breaks up an impossible room model into as few simple room shapes as possible, which are then combined by superposition, weighted to recreate the original acoustic space. There is a maximum of 47 of such elementary room models that can be “stacked”, which usually suffices to reproduce the first 0,5-1 seconds of your room faithfully, until the reflections start to run “out of sync” and become random. Since the early reflections are the key elements to the perception of the room’s sonic properties, this suffices to recreate the sound of the original sonic space.

How does Rayverb create its room simulation?
Rayverb’s powerful room model consists of two main ingredients to save processing power when rendering the room simulation: primary room model and an ambience model. The primary room model can be generic (ie. created by one of the off-the-shelf-models built into Rayverb) or analyzed from an impulse response that you provide. Rayverb can determine the principal shape of the room, its size and wall material characteristics from the main reflections within an Impulse Response.

The secondary (ambience) model is used much in a similar way ambience light is used in photography: a diffuse background reflection pattern that randomizes the late reflections in a way that sounds more natural than the relatively simple room shape can be alone.

Restrictions
Rayverb does one of the most demanding tasks that can be found on today’s desktop and workstation computers: real-time rendering of objects in a scene. Although the output is sound and not coloured pixels, the operations and complexity of the computations required is quite comparable. A highly optimized rendering engine allows doing this in real time, however, this comes with a price: Rayverb introduces a delay of 9417 sample frames into the processing chain. Usually, this is of minor concern since all professional audio software programs will automatically compensate for this delay.

PROSONIQ Rayverb – key features

  • Novel inverse raytracing algorithm models real room from a sampled
  • impulse response
  • Seamless change of position of the sound source
  • 12-node linear phase equalizer
  • Predefined room models for easy setup
  • Density adjustment
  • Export impulse response lets you re-use room models in other programs
  • Analyze your sampled impulse responses
  • Change room proportions for interesting effects
  • Mix, blend and morph two rooms to create a new model
  • Access to all parameters in real time
  • Import and analyze impulse responses as audio files

Parameters
The Prosoniq Rayverb has a number of parameters that affect its sound and operation. Please find these parameters explained below.

Ambience Size
Sets the size of the ambience room model. The ambience room model is a generic room model that is used to simulate late reflections that are not covered by the actual raytracing process. Since realtime calculation imposes some restrictions on the length of the “rays” and how often they can bounce off a surface, this model helps creating dense late reflections that sound natural and integrate smoothly into the room architecture. You
can think of ambience reflections as being the equivalent to “ambient light” used when rendering a visual scene.

Ambient Refl. Amount
Sets the basic amount of the late reflection intensity. Higher values yield longer decay times and a more dense reverb effect.

Refl. Persistence
Determines the length of the reverb tail that is produced by the ambience model. Higher values will yield a longer reverb tail and a longer decay time for a given room.

Iterations
Sets the number of iterations that are used to render the ambience reflections. Higher iterations will produce a room with higher reflectivity, ie. there will be more reflections and the room will generally sound brighter. This dial should generally be set to about the same setting as Refl. Persistence. If you set it higher, the room will sound more metallic, if you set it lower than this value, individual echoes might become audible.

Room Xfer Function
Determines the room’s frequency response. This can be looked at as a powerful, 12-node freeform equalizer that can be used to adapt the room’s sonic characteristics to your needs.

X/Y Location
This powerful control positions the sound source within the virtual rendered room. The position is perspective rendered – placing the yellow ball further in the room will do the same for your audio source. The two axes depicted in the middle of the display mark the “neutral” (middle) position of the sound source.

Note: The audio source is a stereo input. The left and right channels are sent into the virtual room at an angle of approximately 30° (degree) to the left and right of the viewing direction. You can change that angle with the “Separation” parameter described below.
Note: Depending on the input IR and the room that is generated from it, small positional deviations can occur that place the middle position of the source slightly off-center from the axes. Make sure you listen to the output via headphones for precise position adjustment.
Technical note: Updates to the rendering parameters are not done in the same thread in which the audio data are being rendered. This would impose too high a processor load on the system since both the actual rendering process and the parameter updates for the virtual room would compete with each other. Instead, parameter updates are done in parallel to the actual processing. On slower machines, it may take some time before changes on the user interface will have an effect on the audio signal. Since parameter updates generally happen at a slower rate than the audio is being processed, this is not a concern on faster machines. On slower machines, this has no negative side effects except that the automation may not be very effective.

Model Popup Menu
Selects one from the default room models that are available as built-in models within Rayverb. There are presently two different basic room models at various sizes available by default.

  1. is an ideal chamber created from a purely mathematical model. It offers a neutral sound while having very dense reflections and an all-flat frequency response. It is the ideal starting point to create any type of room.
  2. is an actual room model that has been created by averaging about 60 different “real” (sampled and subsequently analyzed) rooms. It offers a natural sound and is a ideal starting point for any sonic space that should end up sounding like a real room.

The various sizes adjust the room metrics. A more detailed size adjustment can be achieved with the “Dimension” parameter described below.

Note: Creating a room model by analyzing a sampled impulse response (IR) will switch this menu to “Custom”, indicating that an analyzed room is being used instead of the default models.

Analyze IR (left button)
This powerful function lets you load and analyze a sampled impulse response (IR) to create a virtual room model from via the process of inverse raytracing. Please see the above discussion of raytracing and inverse raytracing that is available in chapter 2.

Note: Rayverb analyzes any uncompressed stereo AIFF file that matches the following specs: The files can be of any word length (8, 16, 24 or 32bit integer format) but they have to be stereo interleaved AIFF files. Ideally they should be sampled at 44100 Hz, although other sample rates are also possible. Your results for sample rates other than 44.1kHz may vary.

Volume
Adjusts the volume of the primary room model.

Density
This parameter adjusts the density (number of reflections) of the virtual room. Higher values yield a more dense sounding room, lower values will result in more isolated reflections.

Material Popup Menu
There are several pre-defined material transfer and reflection characteristics available for your room model.

“Concrete” is set to be a neutral material with regards to reflection and transfer characteristics. “Wood” simulates a room with wooden tiles, “Glass” simulates reflective glass surfaces, “Carpet” models the absorption properties of curtains and carpets in a room and “Tin” simulates metal
plating.

Separation
Separation defines the amount of channel separation between the two reverb input channels in ° (degree). This separation is achieved by injecting the sound from the input channels at different angles into the room. See the below diagram for more details:

Rayverb Separation Parameter

Rayverb Separation Parameter

Dimension
Dimension controls the overall size of the room. Higher values will result in a larger room model, smaller values will reduce its size. You can change the size of any room from very small (about the size of a speaker cabinet) to very large (as large as the original room was).

Change in dimension

Change in dimension

Note that the fundamental resonance of the room changes by applying a dimensional change.

Air Absorption
This parameter adjusts how much high frequency content gets absorbed by the air as the sound waves travel through the room. Higher values yield a higher absorption rate than low values. This parameter is especially handy for long sounding rooms.

Silkiness
Silkiness is in a sense the opposite of the Air Absorption parameter. Silkiness defines the amount of random vibration of the air molecules as the sound waves travel through them. Higher values will yield a more “silky” sound, containing more high-frequency content than the original room had. This is not a “real” parameter, in that a “real” room would have no way how one could alter the physical behaviour of air molecules (maybe it is possible to fill the room with gases other than air that would
have this effect, but they would most likely also change the speed of sound in the room, and silkiness leaves that parameter unchanged). Since this parameter has proven to be both useful and good-sounding, we have chosen to keep it at your disposal.

Analyze IR (right button)
This powerful function lets you load and analyze a sampled impulse response (IR) to create a second virtual room model from via the process of inverse raytracing. Please see the above discussion of raytracing and inverse raytracing that is available in chapter 2. The right room model created by the right “Analyze IR” button is optional – you don’t have to load anything here to get sound out of Rayverb. However, you can use the second “Analyze IR” option to create a second virtual room model that can be combined with the primary model in various ways (s.b.).

You can add or combine two different models, or create a morph between them. See the below “Model Mode” parameter for more on this.

Note: Rayverb analyzes any uncompressed stereo AIFF file that matches the following specs: The files can be of any word length (8, 16, 24 or 32bit integer format) but they have to be stereo interleaved AIFF files. Ideally they should be sampled at 44100 Hz, although other sample rates are also possible. Your results for sample rates other than 44.1kHz may vary.

Model Mode
With this parameter you can choose how the two room models generated from the impulse responses (or the generic room models from the Model popup menu) interact. There are 4 different modi available:

  • Mix: Both room models are processing the audio signal and the results are simply added together. This gives good results if you have a perfect setting and just want to add a little bit of another room that you have in mind.
  • Combine: This creates a new room out of the two room models by geometrically matching both rooms until they occupy as much as the same space as possible. This usually produces a very wide stereo image and excellent localization.
  • Morph A>B: This changes the shape of the room as you move the sound source across the room. Room A is modelling the front side reflections, while room B is modelling the far side.
  • Morph B>A: Same as before but inverted

Volume
Sets the volume of the second room model

Amount
Determines the intensity of the influence of the second room model. If set to 0, the second room model has no effect on sound.

Export IR
This powerful function exports the current setting as sampled impulse response to a 16bit split stereo AIFF file for use in other programs. All processing is halted until this function has completed.

Dry/Wet Mix
Determines the overall dry/wet relation of the original signal versus the effects signal. Should be set to 100 if Rayverb is used as a send effect or in a pre-fader console setup.

Absorption
Defines the amount of late reflection absorption for the current setting. Higher values will cause a higher damping of the late reflections of the ambience model.

Jitter
Jitter determines the amount of random modulation that is added within the ambience model, to break up repeating reflection patterns in a room and make it sound “smooth”. Higher values might cause some audible pitch modulation so make sure you set this value carefully if you are working with natural instruments like a piano.

Out Volume
Determines the overall output volume of the Rayverb effect.

Contact us

http://www.prosoniq.com
Prosoniq Products Software GmbH
Gablonzer Str. 31
76185 Karlsruhe
Germany

Saturday 15 April 2000

---