feat(build): Phase 7 — verify 10 mục + fix export MIDI thiếu delta-time + fix WAV float32
This commit is contained in:
@@ -11479,7 +11479,7 @@ const MasteringKnob = ({ param, min, max, value, unit, label, color, onChange, s
|
||||
};
|
||||
|
||||
// ──────────────────────────────────────────────
|
||||
// UNIFIED FX RACK PANEL (unified_fx_rack_panel.md) — một panel dùng chung,
|
||||
// UNIFIED FX RACK (unified_fx_rack_panel.md) — một panel dùng chung,
|
||||
// bind động vào track khi bấm [FX]; mọi thay đổi rebuild graph RIÊNG của track.
|
||||
// ──────────────────────────────────────────────
|
||||
const TRACK_FX_META = {
|
||||
@@ -27337,7 +27337,8 @@ const App = () => {
|
||||
showToast("Đang trộn âm thanh đa kênh (Offline Mixdown)...", "info");
|
||||
try {
|
||||
const targetRate = parseInt(exportSettings.sampleRate);
|
||||
const bitDepth = parseInt(exportSettings.bitDepth);
|
||||
const isFloatWav = exportSettings.bitDepth === 'float';
|
||||
const bitDepth = isFloatWav ? 32 : parseInt(exportSettings.bitDepth);
|
||||
// MAIN SESSION end time (items trên track main — sections theo bounds) —
|
||||
// offline render không cắt sớm; MIDI cache (preview) giữ max với cache.
|
||||
// LOOP export: độ dài chính xác = loopDur (không kéo đuôi, không fade)
|
||||
@@ -27426,7 +27427,7 @@ const App = () => {
|
||||
writeString(8, 'WAVE');
|
||||
writeString(12, 'fmt ');
|
||||
view.setUint32(16, 16, true);
|
||||
view.setUint16(20, 1, true);
|
||||
view.setUint16(20, isFloatWav ? 3 : 1, true);
|
||||
view.setUint16(22, numExportCh, true);
|
||||
view.setUint32(24, targetRate, true);
|
||||
view.setUint32(28, targetRate * bytesPerSample * numExportCh, true);
|
||||
@@ -27448,6 +27449,8 @@ const App = () => {
|
||||
view.setUint8(offset, val24 & 0xFF);
|
||||
view.setUint8(offset + 1, val24 >> 8 & 0xFF);
|
||||
view.setUint8(offset + 2, val24 >> 16 & 0xFF);
|
||||
} else if (isFloatWav) {
|
||||
view.setFloat32(offset, sample, true);
|
||||
}
|
||||
offset += bytesPerSample;
|
||||
}
|
||||
|
||||
+2155
-2155
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user