Simulated 3D room reverb
Place virtual speakers and microphones in a virtual 3D room.
Design the sound of the room and walls, and modulate them with CV.
Includes presets for various room types: Recording studio, club, bedroom, bathroom, basketball arena, and more.
VCV Sound Stage is a physically-accurate room reverb module that dynamically simulates the effect of audio being played through speakers (sources) in a room with microphones (destinations) to record the sound.
Sound Stage is not just a spatializer, since spatializers do not simulate wall reflections causing reverberation. This module is not a convolution reverb either, which simulates a static room with static sources and destinations. Unlike a convolution reverb, with Sound Stage you can manipulate the room dimensions, wall material, and source/destination positions in real-time.
Note: Due to Sound Stage using a physically-accurate room simulation algorithm, it requires 4-8% CPU per active destination.
Sound Stage is developed in collaboration with Dale Johnson of Valley Audio.
Sources & destinations
When an audio signal is patched into one of the four inputs labeled IN 1-4, a yellow source node appears in the virtual room display. Patching an output A-D causes a black destination node to appear. These are the locations of the virtual speakers and microphones in the room.
The room is viewed from the top-down, like a bird’s eye view. You can drag nodes to any X/Y position in the room and modulate the 2D position with each node’s X CV input (left/right) and Y CV input (up/down). Regardless of the size of the room, the CV range is always 10V peak-to-peak. For example, a node placed in the center of the room can be moved to the extreme left and right of the room with a -5V and 5V signal. Destination node positions cannot be CV modulated. This is because you can usually achieve an identical audio effect by modulating sources rather than nodes, and the simulation is more stable.
All source nodes are fixed at 1.5m from the ground (the approximate height of a standing speaker), and all destinations are at 1.2m (the approximate height of a sitting listener). This small height difference is to avoid an infinitely loud sound when a source and destination node are placed at the same position.A translucent halo around each source node shows the audio level emitted by the source. When the position of a source is CV modulated, the actual (post-CV) position appears as a "ghost" source node. To adjust the source node position with the mouse, make sure to drag the solid yellow node instead of the ghost node.
You can set the dimensions of the virtual room by adjusting the WIDTH, LENGTH, and HEIGHT parameters. Drag the values up/down, or right-click to enter exact values. As you change these values, you will see the room display change in size. The room dimensions can range from 1x1x2m, the size of a small shower stall, to 300x300x100m, the size of a sport stadium.
When sound reflects off of a wall, it is filtered as if you applied an EQ to the sound depending on the material of the wall. For example, marble and brick reflect all frequencies nearly equally. Glass mainly reflects high frequencies, so its “reflection filter” can modeled by a low-cut (high-pass) filter. Drywall reflects midrange frequencies, absorbing lows and highs, so it can be modeled by a low-cut and high-cut filter isolating the mid-range.
To control the material of the virtual wall, adjust the LO CUT and HI CUT parameters by dragging the numbers up or down. These cutoff frequencies can be modulated by patching a CV signal into the LO CUT and HI CUT CV inputs, following the 1V/octave standard.
You can control the amount of attenuation of all frequencies when sound reflects off the wall with the REFL parameter. With 0% reflectivity, no sound is reflected when it reaches a wall. This effectively turns Sound Stage into a spatializer module. With 100% reflectivity, LO CUT at the minimum 10 Hz, and HI CUT at the maximum 22 kHz, the sound is reflected perfectly and will reverberate forever. This parameter can be modulated by a CV signal, spanning the parameter range across 10Vpp.
The DIFF parameter specifies the diffusion, or roughness, of the wall surface. With 0% diffusion, sound reflects at equal angles, similar to a ping-pong ball. With 100% diffusion, sound reflects at random angles and time offsets. For consistent, periodic sounds like an oscillator, this effect is subtle. But for sharp transients such as percussion, this smooths the decay response of each transient. This smooths the decay of transients.
Use Sound Stage as a four-channel mixer, except instead of pan, volume level, and reverb dry/wet amount, simply arrange instruments on a virtual stage in front (or behind) a virtual listener. Position two destination nodes roughly 17 cm apart to represent the ears of the listener, and then route them to a stereo output. For best results, use headphones and close your eyes while imagining instruments around you.
In a very large room, patch an oscillator into a source input and modulate its X/Y position using two LFO sine waves offset by 90°. This will move the source in a circular motion around the room. Place a destination close to the path of the moving source. This will simulate the sound of a car racing around a circular racetrack, complete with the Doppler effect.
Send a one-time blip of sound into a source input with REFL set to 100% and no filtering (LO CUT set to 10 Hz and HI CUT set to 22 kHz). The sound will reverberate in the room forever as if you have stored the sound in the room’s “memory”. The effect is similar to granular synthesis, and you can adjust the diffusion, room size, and destination positions to manipulate the texture in real-time.
Patch a Destination output back into a Source input, creating screeching feedback you’re probably familiar with when a microphone is too close to a P.A. speaker.
Patch audio into Source 1, patch Destination 1 to Source 2, Destination 2 to Source 3, etc. Each feedback loop creates a sonic “portal” that teleports sound around the room instantaneously, creating bizarre sounds around the virtual listener.
- Fix DSP smoothing of input node positions.
- Initial release.