admin
02ebf41e97
v17: Select Instrument modal highlight instrument dang load (SF preset + VST)
2026-08-26 17:17:21 +07:00
admin
a0f5f98209
v16b: revert EXPRESSION_CC 7 -> 11 (test CC7 xong, ve CC11 expression)
2026-08-26 17:04:31 +07:00
admin
0e555114f8
v16: persist cc11_global_curve qua save/load (item + sub_tabs) + commitCC11Curve dong bo subTab st.notes (CC11 realtime khi Play)
2026-08-26 16:58:44 +07:00
admin
ad3dfa5c47
v15b: rebuild plugin_host with CC7 fix (realtime sandbox VST3 path)
2026-08-26 16:46:00 +07:00
admin
24109f8bc4
v15b: fix CC7 to VSTi (legacy tag kHostMidiCC+cc + volume-param fallback), CC lane grid + 0/+- labels
2026-08-26 16:45:42 +07:00
admin
e54dec4010
Fix: persist expression_curve qua project save/load; TEST CC7 thay CC11
2026-08-26 16:29:54 +07:00
admin
f10f9873e9
Fix: carry expression_curve qua native track render + cache key
2026-08-26 16:20:53 +07:00
admin
5689536fb1
CC11: global curve from first to last note, manual node add/drag/remove
2026-08-26 16:15:47 +07:00
admin
56235623cd
v13: CC11 default dashed lien tuc tu note dau den note cuoi (khong per-note); node tao tren dashed
2026-08-26 16:06:08 +07:00
admin
e6b5e7f4d7
v12: CC11 default = flat bar at default automation pos (no auto nodes); click add node, drag move, right-click remove
2026-08-26 13:02:58 +07:00
admin
fd50d99250
v11: fix CC11 lane sync - engine serve precompiled stale; click=add node, drag=move, right-click=remove; shared mode when no selection
2026-08-26 12:48:39 +07:00
admin
b63e5b21d6
fix(cc11): replace auto-select (khong accumulate) + prefer selected note khi click lane (chord) + bump cache-buster v-param
2026-08-26 12:01:21 +07:00
admin
74dccaf54a
feat(cc11): lane header CC dropdown + graph thread (2 fixed end nodes, preview-draw drag fix flicker)
2026-08-26 11:48:13 +07:00
admin
a800834c89
fix(cc11): auto-select note on CC11 lane click so curve is visible
...
Draw branch renders expression curve only for selected notes, but
handleCC11MouseDown never selected the note -> anchors added but
invisible. Select the clicked note before adding the anchor.
2026-08-26 11:31:03 +07:00
admin
2c96a223af
feat: CC11 expression automation (spec midi_note_cc11_expression)
...
- MIDINote schema + expression_curve (position_ratio 0..1, value 0..127)
- Piano roll CC lane mode Expression (CC11): draw/move/del anchors
- Offline: _expression_events grid 64 samples -> job.events -> RenderJob.cpp sample-accurate CC
- Realtime: scheduleNoteExpressionCC11 grid 16ms via bridge pushEvent / SonicSF fallback, epoch-guarded, cleared on stop
- tests/test_cc11_expression.py 6/6 (unit interp/grid/clamp + integration energy follows curve)
- rebuild daw_vst_bridge (narrowing fix) + sync binaries/dist, babel rebuild + sync 5 copies
2026-08-26 11:14:56 +07:00
admin
c146d3eb14
fix(export): offline render VSTi qua engine khi chua play — fill midiCacheRef khong can play truoc
2026-08-26 07:51:08 +07:00
admin
26086cb331
fix(render): VSTi export lay preset dung bridge channel (midi_channel, khong phai track.id)
...
render_session_container da tinh midi_channel round-robin melodic giong
unifiedMidiRouter.allocateChannel, nhung VSTi branch truyen track.id vao
bridge_state_preset_b64 -> lay preset cua channel stale (VD track5 -> ch5
trong khi realtime choi ch2) -> export sai loai nhac cu. Dung midi_channel.
2026-08-25 21:33:33 +07:00
admin
57fa2e78fe
fix(export): carry bridge-captured VSTi preset into offline render
...
Offline render tao bridge moi khong co preset -> plugin load init patch
-> am khac realtime (user tuong fallback). Gio doc presetBase64 tu
bridge_state.json (channel == track.id, plugin_path khop basename) va
truyen vao render_offline khi track khong nhung preset_data.
2026-08-25 21:14:48 +07:00
admin
014d02283d
fix(engine): bundle daw_vst_bridge.exe vao frozen engine — VSTi export khong con fallback synth (native_bridge 501)
2026-08-25 20:11:50 +07:00
admin
ae7299d097
fix(render): GM-only track (instrumentProgram, khong soundfont_id) render qua default SF2 thay vi oscillator synth
2026-08-25 19:48:07 +07:00
admin
de4caefb50
fix(preview): download soundfont resolve plugin_dirs + fallback default GM (hết oscillator)
2026-08-25 17:54:39 +07:00
admin
6cee46d82a
fix: SF render bridge-first (không fallback synth qua pyfluidsynth gain nhỏ)
2026-08-25 12:01:17 +07:00
admin
ebf0828c55
fix(render): offline SF fallback tìm font GM có sẵn trong plugin_dirs user (Windows)
2026-08-25 09:45:08 +07:00
admin
51d948fdc9
fix(render): resolve VSTi offline qua plugin_dirs user + plugin_path schema
...
_resolve_instrument dùng PluginManager() chỉ scan VST_DIR mặc định -> VSTi
trong thư mục user (vd Steinberg\VSTPlugins\DUNE 3.dll) 404 -> render_engine
fallback oscillator synth -> bounce sai tiếng. Dùng get_plugin_manager()
(gộp plugin_dirs user) + resolve_plugin_path (lưới an toàn, chặn ext lạ).
render_offline nhận plugin_path từ schema synth_engine.plugin_path ưu tiên.
2026-08-25 09:24:55 +07:00
admin
dd17f87e4e
fix(bounce): offline render qua native bridge — bỏ gap realtime, thêm headroom, strip DIAG
2026-08-25 09:11:29 +07:00
admin
4037dbf40d
fix(bounce): declare _lastDiag — second ReferenceError in BridgeAudioNode
2026-08-25 08:51:46 +07:00
admin
ea3de8b53c
fix(bounce): declare _frames/_peak in BridgeAudioNode — ReferenceError killed audio sink
2026-08-25 08:42:52 +07:00
admin
cd63ae1901
debug(bounce): capture AUDIO_CB_ERR + BRIDGE_AUDIO_ENTER to find silent onAudio failure
2026-08-25 08:40:48 +07:00
admin
662383e538
debug(bounce): EVT_REG/BRIDGE_EVT_RX/WI_QUERY diag + fix PUSH_SENT typo
2026-08-25 08:11:02 +07:00
admin
8ef1935068
fix(midi): prefix _pushEnter/_pushSent/_pushOk/_pushFail with this. — ReferenceError blocked dispatchMidiEvent (v=202608250116)
2026-08-25 07:58:14 +07:00
admin
388da8b380
fix(midi): _pushEvt -> this._pushEvt — ReferenceError killed pushEvent before PUSH_ROUTE; ?v=202608250054
2026-08-25 07:55:11 +07:00
admin
109a8f5c5b
debug(midi): PUSH_CALL fingerprint + PUSH_EXC + ?v=202608250051 — isolate stale-JS vs pushEvent break
2026-08-25 07:52:59 +07:00
admin
60d1eee107
debug(midi): diag PUSH_ROUTE/PUSH_ENTER — pin pushEvent->dispatchMidiEvent break point
2026-08-25 07:36:20 +07:00
admin
a00c57d44f
fix(ui): black screen — isExportingRef.current = isExporting dat truoc khai bao isExporting (TDZ ReferenceError moi render); bo sync, bounce set true/false tuong minh
2026-08-25 07:31:34 +07:00
admin
fb59184dd2
fix(bounce): guardPlay drop het note-on — isPlayingRef bi render ghi de =false khi bounce setState; them isExportingRef vao guardPlay (bounce = dang phat that) + TMR_FIRE diag
2026-08-25 07:28:37 +07:00
admin
51891ac8b9
debug: HB heartbeat 250ms + DISPATCH_ON truoc pushEvent + PUSH_SENT/PUSH_MIDI_TIMEOUT (race 800ms) cho bounce silent — phan biet main-thread block vs Rust hang
2026-08-25 07:23:59 +07:00
admin
f8a500c050
debug: diag PUSH_MIDI ok/fail cho push_midi_event (nghi midi queue full — bridge khong nhan note trong bounce)
2026-08-25 07:05:41 +07:00
admin
f741e1e1f1
debug: DIAG bang overlay textarea co nut Copy thay cho window.alert (text khong copy duoc)
2026-08-25 07:01:38 +07:00
admin
ba7c03ca5e
fix: bounce silent — AudioRoutingEngine no longer full-tears-down sink on dest change
...
stopAllPlayback->updateSfRouting->startTrackPlayback reroutes bridge sink
twice during bounce; each dest change previously called this.disconnect()
= BridgeAudioNode teardown + async worklet reload, audio swallowed into
_preBuffer (bounded 64 blocks) forever if worklet never reactivates ->
silent WAV (only old reverb tail). Fix: rely on BridgeAudioNode.connect()
re-pointing _gainNode (already handles dest switch without teardown);
init() only when not ready. Add __sfDiag ROUTE + BRIDGE_AUDIO (frames/
peak/path per sec) to verify at bounce end.
2026-08-24 22:02:31 +07:00
admin
9cd6113086
debug: diag logs cho bounce silent — router/native path
2026-08-24 21:42:49 +07:00
admin
bf98038572
fix(bridge): soundfont track khong co trong thu vien (sf_generaluser_gs) fallback sang GM font co san -> bounce ra du track, het cam
2026-08-24 21:13:53 +07:00
admin
74bd6d849b
fix(export): offline render tu tai file ve exportDir sau khi hoan thanh
...
renderMasteringExport truoc day chi hien toast 'Tai ve' (phai click) ->
user tuong khong co file. Gio tu fetch res.url -> saveExportViaDialog
(ghi thang vao exportDir da chon hoac save-dialog), toast kem path.
2026-08-24 20:54:50 +07:00
admin
4b643883ff
fix(export): offline render dong export panel + hien progress timeline
...
renderMasteringExport khong tu dong export panel/progress (chi bounce cu
lam). triggerWavExport: nhanh offline render -> setShowExportPanel(false),
setShowExportProgress(true), setExportProgress(-1) truoc khi goi, reset
progress trong finally.
2026-08-24 20:51:13 +07:00
admin
1061a36626
fix(export): MIDI project WAV export qua server offline render thay vi bounce realtime
...
Bounce REALTIME race (note-on drop sau STOP / channel reload / watchdog
recovery) ra file chi 1 note roi cam hoac cam han. Offline render server
deterministic da xac nhan ra nhac day du (42.67s RMS ~0.24 moi giay).
triggerWavExport: project co MIDI + source=project + format=wav -> goi
renderMasteringExport (server /api/v1/plugins/render) thay vi bounce.
Bounce chi la fallback khi server disconnected va cache MIDI khong du.
2026-08-24 20:32:19 +07:00
admin
141fa4a141
fix(export): scale TPDF dither to 1 LSB — full-scale noise made bounce exports sound like white noise
2026-08-24 20:17:24 +07:00
admin
2b7c7cef2c
Fix export WAV khong mo duoc: default 32-bit float -> PCM 16 (client + server render + plugins.py)
2026-08-24 19:58:44 +07:00
admin
5b747606c7
Rebrand SonicForge Studio -> ScoreFX Studio: UI names, About logo, favicon + icons for all exe builds
2026-08-24 19:28:22 +07:00
admin
2bcc8369a5
fix(export): MIDI offline khong co am thanh - cache preview cam/khong du -> tu chuyen sang bounce REALTIME (capture masterBus.output) thay vi xuat file cam
2026-08-24 18:59:22 +07:00
admin
8639529ecd
fix(export): offline export nhan MIDI-only tracks qua midi cache - filter khong loai track khong co buffer
2026-08-24 18:51:14 +07:00
admin
43b68200aa
feat(export): modal tien trinh export rieng (khong dung statusbar) - dong modal settings ngay khi bam Export + bao loi that khi khong ghi duoc file
2026-08-24 18:43:50 +07:00