Riviera: Basic controls tutorial

Here’s  a quick video about the controls in the Riviera plugin (turn on closed-captions for descriptions). The dry clip is a collection of transients typically used to stress-test reverb effects. Below is a cross-post of the readme contained within the plugin with some further elaborations.

-Fine-grain adjustments of knob are possible with the mouse wheel + holding down either shift or ctr on keyboard.
-Double-click a parameter will reset it to default.

Voom (N-Orthotope) panel:  Generalization of room into arbitrary dimensions.
5 faders, each with three knobs determine the characteristics of each dimension of the voom.

Size: The length of the dimension in meters. The sound-source is effectively placed at the center of this dimension. Enlarging this tends to increase RT60 and sense of “spaciousness” due to greater separation of early reflections.

Depth: Where you (the listener) is positioned in whole (integer) meters relative to the center of the room. 0 percent is coincident to the sound-source so there’s maximal delay between the direct sound and early reflections. 50 percent is coincident to the “wall” or boundary so the direct and early reflections are less distinguishable from reverb. Note that the IR is computed for depths that would map to whole meters so for a 6 meter dimension, there are only 4 positions the listener can be in (0, 1, 2, 3 meters from center).

Reflection: The dB loss incured per reflection between sound-source and boundary. Setting this to low values (e.g. 0.1 dB loss) will largely increase RT60 which got truncated to 5 seconds for performance reasons.

V1-V5 buttons: Enable/disable individual dimensions; enabling any combination of the N buttons generates an N-D room, disabling all dimensions will cause bypass. e.g. enabling (V1, V3, V5) generates a 3D room as does (V2, V3, V4). Note that in higher dimensional vooms, the reverb build-up creates a swell if you aren’t coincident to the sound-source so there’s hardly any distinction between direct, early, and late reflections. This motivates some time manipulation controls so that we may listen in these spaces.

Time panel: Manipulates geometry, distances between direct/early/late reflections, and more.

Stretch: A form of super-sampling of the underlying space which has the effect of spacing all the reflections out. This is geometrically equivalent to scaling your the voom and depth by a constant which will allow us to achieve long reverb tails.
1: no change
>1: Oversample geometry for longer IR
Note that freq. decay is applied after the fact so the reported RT60 will not scale proportionately.

Reverse: Mirrors the first % of the IR to create a pre-verb / pre-fading effect. 0% default gives no pre-verb where the first non-zero tap is the direct onset of the sound-source. 100% completely reverses the IR.

Linearity: A form of biasing the sampling in the geometry to either towards the earlier reflections as opposed to the later ones. In physical terms, this is modeling variable acceleration of the speed-of-sound without annoying Doppler effects. If late is oversampled (sound-velocty accelerates over time), the result is a long IR with distinct (well-separated) early reflections (more like echos). If early is oversampled (sound-velocity decelerates overtime), the result is a short IR with a very fast attack with a diminished reverb tail as all the earlier reflections have been compressed towards the direct sound-source.

Attenuation: This modifies the generalization of the inverse square law in higher-dimensions for sound-source energy loss. Low g causes less attenuation over distances (slow roll-off) which will emphasize the late-tail / reverb over the direct+early reflections without IR length. Large g causes more attenuation (fast roll-off) which will emphasize direct-early over reverb.
Delay: The direct sound-source normally has a non-zero time-of-arrival depending on the listener depth but for practical usage (mixing), a separate control was created for delaying the entire IR. By default, physical delay between source-listener is truncated to 0. Use this in conjunction with T0 (see below) and the mix knob to do pre-fading.

T0: Direct truncation of the early part of the IR. Use it to remove the direct sound-source onset, start the IR anywhere within the reverb tail,  or decrease pre-fading time and even gate the reverb tail with the reverse knob.

FFT: Controls the internal max-power block-size parameter without effecting latency (default latency is twice the latency set within the DAW due to some DAWs using variable block-sizes). Decreasing this will lower peak real-time processing at the cost of increase average real-time CPU usage. Increasing this will raise peak real-time processing but with decreased the average real-time CPU usage.

Frequency panel: All mediums (air, water, dry wall, glass) have frequency dependent absorption characteristics that will color the IR over time (see spectrogram). Two knobs are provided that parametrically fits a smooth function between 0 to pi radians in unnormalized frequency domain.

High/low decay or dampening: Increasing these will more quickly attenuate respective high and low frequencies from sampling_rate/2 Hz to 0 Hz over time; all freq. between have decay bounded between these two settings. Setting them equal to each other has the effect of applying frequency-independent dB loss (i.e. gain control).

Low cut Hz/Quality: Filter out low frequencies from 0 to f0 Hz with strength Q. Note that large Q will delay the signal a little (due to linear-phase) so watch the latency or use the T0 control to cut out the initial pre-ring.

Misc panel:
Your standard pan, stereo and mix (wet/dry) controls. These all have frame-buffer length latency and will not incur a recomputation of the IR.

Pan: Applies dB loss to either left or right channels.

Stereo: Applies low ms delay to either left or right channels.

Mix: Basic fader between original and processed signals.

Fast mode: Enable this so that non-voom parameter updates are faster at the expense of more memory usage.

IR normalization: If enabled, will normalize impulse response if sum of squared exceeds 1. Otherwise, beware of speakers if you start adjusting attenuation and reflection settings too aggressively.