master strip: L/R volume + LINK + MUTE that, bo soloBtn

This commit is contained in:
2026-08-22 21:41:54 +07:00
parent 4ae2f06c57
commit 2a5e2af04a
5 changed files with 290 additions and 74 deletions
+19 -4
View File
@@ -829,10 +829,25 @@ class PythonRenderEngine:
else:
logger.warning("[RenderEngine] Masterbus FX cần RENDER_ENGINE=bridge — bỏ qua")
# Master bus volume (spec §2 Step 4: master gain stage after chain)
master_vol_db = master.get("volume_db", 0.0)
if master_vol_db:
master_buffer *= 10 ** (master_vol_db / 20.0)
# Master bus volume (spec §2 Step 4: master gain stage after chain).
# Per-channel L/R faders: volumeL_db/volumeR_db (link_lr -> R theo L);
# MUTE zeroes output; fallback volume_db cho project cu.
if master.get("muted") or master.get("mute"):
master_buffer *= 0.0
else:
vol_l = master.get("volumeL_db", master.get("volume_db", 0.0))
if master.get("link_lr"):
vol_r = vol_l
else:
vol_r = master.get("volumeR_db", vol_l)
if master_buffer.shape[0] >= 2:
if vol_l:
master_buffer[0] *= 10 ** (vol_l / 20.0)
if vol_r:
master_buffer[1] *= 10 ** (vol_r / 20.0)
else:
if vol_l:
master_buffer *= 10 ** (vol_l / 20.0)
# Normalization to prevent clipping
max_peak = np.max(np.abs(master_buffer))