@@ -46,7 +46,7 @@ SpatialRenderer::SpatialRenderer(const SpeakerLayoutData &layout,
4646 // converts to radians using toRad() which assumes degree input
4747 // Without this conversion you get speaker positions at completely wrong angles
4848 // like -77.7 radians instead of -77.7 degrees which is way outside valid range
49- // This caused VBAP to fail silently and produce zero output
49+ // This caused spatialization to fail silently and produce zero output
5050 //
5151 // CRITICAL FIX 2: AlloSphere hardware uses non-consecutive channel numbers 1-60 with gaps
5252 // but spatializers need consecutive 0-based indices for AudioIOData buffer access
@@ -130,9 +130,7 @@ SpatialRenderer::SpatialRenderer(const SpeakerLayoutData &layout,
130130
131131 // Create spatializers using unique_ptr (LBAP has broken copy semantics in AlloLib)
132132
133- // VBAP removed from offline engine - requires 3D speaker arrangements for triangulation
134133 // Use DBAP (default) or LBAP for 2D layouts
135- std::cout << " VBAP removed from offline engine (requires 3D layouts)\n " ;
136134
137135 // DBAP - distance-based amplitude panning
138136 // Note: DBAP doesn't need compile() - it uses distance-based calculations
@@ -349,8 +347,7 @@ al::Vec3f SpatialRenderer::nearestSpeakerDir(const al::Vec3f& dir) {
349347 }
350348 }
351349
352- // Return direction 90% toward the speaker to stay inside hull
353- // This ensures VBAP can still find a valid triplet
350+ // Return direction 90% toward the nearest speaker for a robust fallback.
354351 al::Vec3f spkDir = mSpeakerDirs [bestIdx];
355352 al::Vec3f blended = dir * 0 .1f + spkDir * 0 .9f ;
356353 return safeNormalize (blended);
@@ -818,11 +815,11 @@ MultiWavData SpatialRenderer::render(const RenderConfig &config) {
818815 if (config.renderResolution == " block" ) {
819816 renderPerBlock (out, config, startSample, endSample);
820817 } else if (config.renderResolution == " sample" ) {
821- std::cerr << " ERROR: 'sample' mode is DISABLED (VBAP removed) . Use 'block' mode instead.\n " ;
818+ std::cerr << " ERROR: 'sample' mode is DISABLED. Use 'block' mode instead.\n " ;
822819 std::cerr << " For per-sample accuracy, use 'block' mode with --block_size 1.\n " ;
823820 return {}; // Return empty result
824821 } else if (config.renderResolution == " smooth" ) {
825- std::cerr << " ERROR: 'smooth' mode is DISABLED (VBAP removed) . Use 'block' mode instead.\n " ;
822+ std::cerr << " ERROR: 'smooth' mode is DISABLED. Use 'block' mode instead.\n " ;
826823 std::cerr << " For smooth interpolation, use 'block' mode with small --block_size.\n " ;
827824 return {}; // Return empty result
828825 } else {
@@ -1029,7 +1026,7 @@ void SpatialRenderer::renderPerBlock(MultiWavData &out, const RenderConfig &conf
10291026 al::Vec3f rawDirSub = safeDirForSource (name, kfs, tSub);
10301027 al::Vec3f dirSub = sanitizeDirForLayout (rawDirSub, config.elevationMode );
10311028
1032- // Convert direction to position for DBAP, use direction for VBAP/ LBAP
1029+ // Convert direction to position for DBAP, use direction for LBAP
10331030 al::Vec3f posOrDir = (mActivePannerType == PannerType::DBAP )
10341031 ? directionToDBAPPosition (dirSub) : dirSub;
10351032
@@ -1151,17 +1148,15 @@ void SpatialRenderer::renderPerBlock(MultiWavData &out, const RenderConfig &conf
11511148}
11521149
11531150// renderSmooth: Direction interpolated within each block using SLERP
1154- // Note: This mode is DEPRECATED. Only VBAP gains interpolation is implemented .
1151+ // Note: This mode is DEPRECATED and intentionally disabled .
11551152void SpatialRenderer::renderSmooth (MultiWavData &out, const RenderConfig &config,
11561153 size_t startSample, size_t endSample) {
11571154 int sr = mSpatial .sampleRate ;
11581155 int numSpeakers = mLayout .speakers .size ();
11591156 int bufferSize = config.blockSize ;
11601157 size_t renderSamples = endSample - startSample;
11611158
1162- // For smooth mode, we need per-sample gain interpolation
1163- // We compute VBAP gains at block start and end, then interpolate
1164- // NOTE: This only works properly with VBAP, other panners use block mode internally
1159+ // Smooth mode is retained only as disabled historical implementation context.
11651160 std::vector<float > gainsStart (numSpeakers);
11661161 std::vector<float > gainsEnd (numSpeakers);
11671162 std::vector<float > gainsInterp (numSpeakers);
@@ -1197,9 +1192,7 @@ void SpatialRenderer::renderSmooth(MultiWavData &out, const RenderConfig &config
11971192 al::Vec3f dirStart = sanitizeDirForLayout (rawDirStart, config.elevationMode );
11981193 al::Vec3f dirEnd = sanitizeDirForLayout (rawDirEnd, config.elevationMode );
11991194
1200- // Compute gains at both ends (VBAP removed - smooth mode disabled)
1201- // computeVBAPGains(dirStart, gainsStart);
1202- // computeVBAPGains(dirEnd, gainsEnd);
1195+ // Smooth mode is disabled; retained code path is intentionally inert.
12031196 // Smooth mode is disabled, so this code should not be reached
12041197 assert (false && " Smooth mode should be disabled" );
12051198
@@ -1265,8 +1258,7 @@ void SpatialRenderer::renderPerSample(MultiWavData &out, const RenderConfig &con
12651258 // Sanitize direction to fit within speaker layout's representable range
12661259 al::Vec3f dir = sanitizeDirForLayout (rawDir, config.elevationMode );
12671260
1268- // For per-sample mode, always use VBAP gains (most accurate per-sample)
1269- // computeVBAPGains(dir, gains);
1261+ // Sample mode is disabled; retained code path is intentionally inert.
12701262 // Sample mode is disabled, so this code should not be reached
12711263 assert (false && " Sample mode should be disabled" );
12721264
0 commit comments