master strip: L/R volume + LINK + MUTE that, bo soloBtn
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user