FIX: ensureMasteringRouting gọi getAudioContext() trước — preview đầu tiên cũng sync mastering routing
This commit is contained in:
@@ -20867,7 +20867,11 @@ const App = () => {
|
||||
const ensureMasteringRouting = () => {
|
||||
try {
|
||||
const _s = window.currentMasteringSettings;
|
||||
if (!_s || !masterBus || !audioCtx) return;
|
||||
if (!_s) return;
|
||||
// Đảm bảo audioCtx + masterBus đã tồn tại trước khi sync (lần preview
|
||||
// đầu tiên audio chưa init → getAudioContext tạo ngay)
|
||||
getAudioContext();
|
||||
if (!masterBus || !audioCtx) return;
|
||||
toggleMasteringOnMaster(!!_s.masterConnected, !!_s.isBypassed);
|
||||
applyMasteringSettings(_s);
|
||||
updateSfRouting();
|
||||
|
||||
@@ -1290,7 +1290,9 @@ const _b=effMidiBypass(t);node.sfRouteGain.gain.value=_b?0:1;node.sfDryGain.gain
|
||||
// chạy khi bắt đầu preview. Hàm này ép đồng bộ 3 lớp (graph theo trạng thái
|
||||
// hiện tại — early-return nếu đã đúng; tham số module; route SF + route
|
||||
// gains) — gọi tại mọi điểm preview → âm preview LUÔN qua mastering khi bật.
|
||||
const ensureMasteringRouting=()=>{try{const _s=window.currentMasteringSettings;if(!_s||!masterBus||!audioCtx)return;toggleMasteringOnMaster(!!_s.masterConnected,!!_s.isBypassed);applyMasteringSettings(_s);updateSfRouting();}catch(e){console.warn('ensureMasteringRouting error:',e);}};const ensureMasteringRoutingRef=useRef(null);ensureMasteringRoutingRef.current=ensureMasteringRouting;window.__ensureMasteringRouting=ensureMasteringRouting;// ── MIDI preview cache (bounce nhanh offline) ──
|
||||
const ensureMasteringRouting=()=>{try{const _s=window.currentMasteringSettings;if(!_s)return;// Đảm bảo audioCtx + masterBus đã tồn tại trước khi sync (lần preview
|
||||
// đầu tiên audio chưa init → getAudioContext tạo ngay)
|
||||
getAudioContext();if(!masterBus||!audioCtx)return;toggleMasteringOnMaster(!!_s.masterConnected,!!_s.isBypassed);applyMasteringSettings(_s);updateSfRouting();}catch(e){console.warn('ensureMasteringRouting error:',e);}};const ensureMasteringRoutingRef=useRef(null);ensureMasteringRoutingRef.current=ensureMasteringRouting;window.__ensureMasteringRouting=ensureMasteringRouting;// ── MIDI preview cache (bounce nhanh offline) ──
|
||||
// Khi preview: capture tiếng đàn (SF output — pre track-FX) vào cache theo
|
||||
// track. Khi export: nếu cache đủ độ dài → render OFFLINE NHANH bằng cache
|
||||
// (qua FX Rack + Mastering như playback) — không cần chờ bounce realtime.
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<script src="https://unpkg.com/react@18.3.1/umd/react.production.min.js"></script>
|
||||
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js"></script>
|
||||
<script src="/static/js/services/fluidsynthLoader.js?v=202607271245"></script>
|
||||
<script src="/static/js/services/runtime.js?v=202608101400"></script>
|
||||
<script src="/static/js/services/api.js?v=202608101400"></script>
|
||||
<script src="/static/js/services/runtime.js?v=202608101500"></script>
|
||||
<script src="/static/js/services/api.js?v=202608101500"></script>
|
||||
<script src="/static/js/services/audioEngine.js?v=202607271016"></script>
|
||||
<script src="/static/js/services/storage.js?v=202608038200"></script>
|
||||
<script src="/static/js/services/soundfontStorage.js?v=202607271016"></script>
|
||||
<script src="/static/js/services/soundfontPlayer.js?v=202608101400"></script>
|
||||
<script src="/static/js/services/soundfontPlayer.js?v=202608101500"></script>
|
||||
<script src="/static/js/services/aiGateway.js?v=202608037200"></script>
|
||||
<script src="/static/js/services/dawCommandDispatcher.js?v=202607271016"></script>
|
||||
<script src="/static/js/services/pianoRollTabService.js?v=202607272044"></script>
|
||||
@@ -44,7 +44,7 @@
|
||||
<script src="/static/js/services/midiExtractor.js?v=202607281052"></script>
|
||||
<script src="/static/js/services/promptTemplateManager.js?v=202607281039"></script>
|
||||
<script src="/static/js/services/undoRedoEngine.js?v=202607290941"></script>
|
||||
<script src="/static/js/app.precompiled.js?v=202608101400" defer></script>
|
||||
<script src="/static/js/app.precompiled.js?v=202608101500" defer></script>
|
||||
<link rel="stylesheet" href="/static/css/styles.css?v=202607271016">
|
||||
<style>
|
||||
:root {
|
||||
|
||||
Reference in New Issue
Block a user