RAVE's discrete mode quantizes latent vectors using Residual Vector Quantization
The discrete RAVE config replaces the variational encoder with a DiscreteEncoder that applies Residual Vector Quantization (RVQ). RVQ stacks multiple codebook layers: each layer quantizes the residual error from the previous layer’s codebook lookup, using Euclidean distance. The process yields integer codes rather than continuous latent vectors. This produces better reconstruction fidelity (similar to EnCodec/SoundStream) but eliminates smooth latent interpolation — you cannot slide a knob through latent space, only swap discrete codes. The codebook vectors are initialized with k-means and updated via exponential moving average. Dead codes (unused centroids) are replaced with random batch samples to prevent codebook collapse.
Examples
Export: rave train --config discrete .... In the VST/nn~, you receive integer-valued signals instead of continuous floats.
Assessment
Compare controlling a v2 (variational) RAVE model versus a discrete RAVE model via MIDI: what is different about how you interact with the latent space in each case?