fix: Bug 2 mastering — chainSignature order-sensitive (reorder rebuild graph); applyMasteringSettings sig gom chain; limiter/compressor default neutral (limThreshold 0, compThreshold 0 ratio 1) — them module khong tu cat volume (T2)
This commit is contained in:
@@ -639,7 +639,7 @@ function applyMasteringSettings(s) {
|
||||
// Re-applying identical values in rapid bursts is "fast parameter automation"
|
||||
// and makes Chromium flag the biquad EQ filters as unstable ("state is bad").
|
||||
// Only touch the graph when a value actually changed.
|
||||
const sig = [s.masterConnected, s.isBypassed, s.eqActive, s.eqLowGain, s.eqMid1Gain, s.eqMid2Gain, s.eqHighGain, s.imagerActive, s.w1, s.w2, s.w3, s.w4, s.maximizerActive, s.maxGain, s.maxSoftClip, s.maxUpward, s.ceiling, s.compActive, s.compThreshold, s.compRatio, s.compMakeup, s.limActive, s.limThreshold, s.excActive, s.excDrive, s.rebalActive, s.rebalMid, s.rebalSide].join('|');
|
||||
const sig = [s.masterConnected, s.isBypassed, s.eqActive, s.eqLowGain, s.eqMid1Gain, s.eqMid2Gain, s.eqHighGain, s.imagerActive, s.w1, s.w2, s.w3, s.w4, s.maximizerActive, s.maxGain, s.maxSoftClip, s.maxUpward, s.ceiling, s.compActive, s.compThreshold, s.compRatio, s.compMakeup, s.limActive, s.limThreshold, s.excActive, s.excDrive, s.rebalActive, s.rebalMid, s.rebalSide, chainSignature(s.chain)].join('|');
|
||||
if (sig === _lastMasteringSig) return;
|
||||
_lastMasteringSig = sig;
|
||||
|
||||
@@ -1093,7 +1093,8 @@ const DEFAULT_MASTER_CHAIN = [
|
||||
];
|
||||
|
||||
function chainSignature(chainArray) {
|
||||
return (chainArray || []).map(m => (m.type || '') + (m.active ? '1' : '0')).join(',');
|
||||
// Order-sensitive: reorder phai lam doi signature -> rebuild graph dung thu tu.
|
||||
return (chainArray || []).map((m, i) => i + ':' + (m.type || '') + (m.active ? '1' : '0')).join(',');
|
||||
}
|
||||
|
||||
// ── Track FX module factory (mastering_expand.md §II.4) ──
|
||||
@@ -6446,8 +6447,8 @@ const ProfileModal = ({
|
||||
ceiling: -0.1,
|
||||
isBypassed: false,
|
||||
chain: DEFAULT_MASTER_CHAIN.map(m => ({ ...m })),
|
||||
compActive: false, compThreshold: -16, compRatio: 3, compMakeup: 0,
|
||||
limActive: false, limThreshold: -1.0,
|
||||
compActive: false, compThreshold: 0, compRatio: 1, compMakeup: 0, // neutral-then-apply: them module khong tu cat volume
|
||||
limActive: false, limThreshold: 0, // neutral: limiter khong tu clip -1dB khi bat
|
||||
excActive: false, excDrive: 40,
|
||||
rebalActive: false, rebalMid: 0, rebalSide: 0,
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user