admin
845823a9df
V45.12: fix SF preset wrong sau reopen (race C++ restore async ghi de program JS vua gui) - retry FORCE CC0/CC32/PROGRAM sau 1.5s/4s/8s qua cua so restore, bo dedupe v=202608311035
2026-08-31 10:35:59 +07:00
admin
f6104a43d5
V45.11: fix SF preset wrong after reopen - preload SF2 gui program change (C++ loadSoundFontFile reset bank/program 0 moi lan load, JS khong gui lai) v=202608300815
2026-08-30 08:15:51 +07:00
admin
e57b9fade2
V45.10: fix seek lag solo track - skip sink re-point on seek restart v=202608300814
2026-08-30 08:14:42 +07:00
admin
6b18d25520
V45.9: fix solo/un-solo khi play -> soundfont delay/wobble/crackle - updateSfRouting re-point bridge sink (AudioRoutingEngine.connect -> disconnect/reconnect gainNode FluidSynth) giua main play khi midiAudible count doi (2->1) = glitch ngay; skip sink re-point khi isPlayingRef (main/session), mute/solo da xu ly bang CC7 + track gain, routing set lai khi STOP; v=202608300750
2026-08-30 07:51:18 +07:00
admin
4c0987733e
V45.8: fix Qin VST2 loop wrap crackle - wrap release them NOTE_OFF per-pitch (timelinePitchesRef) vi CC123 khong an voi VST2 (Qin bo qua all-notes-off CC) -> note cu ring qua seam re-trigger cung pitch = giat; per-note OFF da chung minh an (panic 128 noteOff o STOP, D18c); v=202608292315
2026-08-29 22:42:02 +07:00
admin
85fdcb16e2
V45.7b: fix TCP loading loop — _notifyStatus chi fire cb khi connected doi (poller queryStatus 400ms tung reset map + reload track -> LOAD skip vo han)
2026-08-29 22:11:00 +07:00
admin
c0fbf29d41
V45.7: fix SF2 load fail fallback — catch bridgeLoad 404 so GM fallback runs
2026-08-29 22:04:37 +07:00
admin
945e63918d
V45.6 fix solo Q3: bo stopAllPlayback+restart 60ms khi solo main-session (track solo giu nguyen tieng, het wobble re-attack); GIU timelinePitchesRef qua stop - kill branch NOTE_OFF tung pitch (Qin im khi solo track khac, truoc day tset=0); C++ allNotesOff sandbox VST2 qua control 7 (child panic local CC64/CC123+128 noteOff) thay 128 note-off flood queue 64-cap (Qin het treo sau STOP); IPC toggleSolo tu applyAllTrackMuteSolo (ref patch + kill); v=202608292138
2026-08-29 21:39:59 +07:00
admin
72ae22f865
V45.5 instrument solo path (Q3 debug): dbg log solo_toggle/solo_apply/solo_kill/solo_guard/play_tracks - lan test toi thay ro trang thai ref + note bi block; C++ [Vst2Sandbox] ON/OFF/CC log trong SandboxVst2Host (Qin chay sandbox, truoc day midi vao Qin hoan toan mu trong bridge.log - chi VST3 log [midi]), v=202608291806
2026-08-29 18:09:16 +07:00
admin
82796417c1
V45.4 fix SF loop wrap gap: worklet KEEP 4->16 (85ms che stall 68-82ms, het underrun wrap dien hinh) + wrap underrun bo flush (D17 da skip engine flush; worklet flush pha gap seam) + resumeFill 8 (~43ms) thay FILL 24 (~128ms) - gap wrap ~110-235ms giam con vai chuc ms, v=202608291752
2026-08-29 17:54:36 +07:00
admin
a7630f0e6d
chore: bo target/ root (artifact lan) khoi index + gitignore
2026-08-29 17:50:45 +07:00
admin
788a371f72
V45.3 fix Qin tremolo khi solo track khac: activeTracksRef luon ghi state da patch (bo restore STALE) - D18b guard/scheduler thay solo-out ngay, v=202608291749
2026-08-29 17:50:12 +07:00
admin
f3fd0109a7
V45.2 fix Qin silence (20s audio-thread stall) + SF loop downbeat delay
...
- SandboxVst2Host::loadSerializedState: queuePreset non-blocking (byte-identical
echo never matched -> waitApply always burned 20s TIMEOUT on the audio thread;
VST2 restore runs via runOnMain so every startup silenced ALL audio ~20s = Qin
'failed that su'). Bridge now holds reloading + defers saveStateJob until the
child republishes a different chunk (clobber protection, no audio block).
- sf-fx-realtime clear_queue('loop'): truncate old tail to KEEP=4 blocks
(~21ms) instead of keeping FILL 24 (~128ms) -> wrap downbeat no longer ~110ms
late; skipFade crossfade masks the truncation jump, seam crossfade recount.
- bump ?v= 202608291721 (app.jsx x2, index.html x2); deploy 3 _internal + dist.
2026-08-29 17:25:32 +07:00
admin
6b26d5db0e
V45.1: fix load VSTi loi ReferenceError instrumentSelectorData (module scope) - guard typeof undefined, v=202608290945
2026-08-29 16:46:05 +07:00
admin
c084ac8ba7
V45: D17 seamless loop wrap + D18 stop solo note-off (Qin) + D18b/c guard + engine VST load fixes
...
- D17: wrap_info/wrap-skip, fx wrap xfade, playhead-derived scheduling
- D18: solo stop -> NOTE_OFF all sounding timeline pitches + CC123/CC120
- D18b: track audible gain guard, tracksRef fallback
- D18c: timelinePitchesRef per-track Set, kill at applyAllTrackMuteSolo
- bridge ring _MAX 16, index v=202608290928
- plugins.py/vst_engine.py/fx_realtime.py/JuceFxEngine.cpp: VSTi load + Qin fixes (uncommitted 12:18)
2026-08-29 16:39:02 +07:00
admin
2afa828c8f
V44: fix crackle - uu tien audio thread bridge (HIGHEST) + FILL 24 (cushion ~90ms) PDC 7936
2026-08-28 17:22:50 +07:00
admin
8990f04357
V43: tang FILL 8->16 chong underrun crackle (cushion 3-8 -> 11-16) + PDC 5888
2026-08-28 16:36:13 +07:00
admin
bf74a0be4f
G3 deploy: mac dinh dung JUCE bridge + bundle juce_fx_bridge vao engine
2026-08-28 16:21:12 +07:00
admin
6cbdbd8e9c
G3: 1 clock - PDC latency that + playhead engine-derived
2026-08-28 15:51:19 +07:00
admin
c72362e088
G2: JUCE VST3 hosting + latency that qua FxLatReport - probe pureComp 2108
2026-08-28 15:28:06 +07:00
admin
091abe5a91
G1: them G1_RESULTS.md
2026-08-28 12:35:59 +07:00
admin
9c0d35def4
G1: JUCE engine SHM chain rong POC - probe pass, khong lag them
2026-08-28 12:35:37 +07:00
admin
d7dd626dd5
G0: dich chinh - khong co drift bridge (run2 drained=True, recv=sent=10000), rut de xuat bu drift
2026-08-28 12:15:27 +07:00
admin
d78af9304f
G0: baseline latency do xong - gate G2 mo, drift bridge -0.5% phat hien
2026-08-28 12:03:13 +07:00
admin
ebe17d902b
docs: plan JUCE - phan bien V2: xoa risk buffer toan track (Option B leftover), param queue lock-free SPSC, validate sampleRate/blockSize doi giua chung
2026-08-28 11:49:54 +07:00
admin
a10f679c0d
docs: plan JUCE - phan bien split-brain (1 master clock, Option A), param pump GUI->JUCE, do jitter sigma G0
2026-08-28 11:45:46 +07:00
admin
51bac2770d
docs: JUCE latency plan - thay heuristic PDC bang AudioProcessorGraph (G0-G5)
2026-08-28 11:38:46 +07:00
admin
fa61712ecc
V42+V42A: fix seam click khi loop master FX — worklet wrap crossfade (tail->head) + native WebAudio loop cho bypass (het click beat 0); dip bypass 5ms; PDC playhead freeze/snap
2026-08-28 11:35:32 +07:00
admin
9ccc28d211
fix: use 127.0.0.1 for WebSocket when host is localhost/::1 to avoid IPv6 fallback delay (~300ms)
2026-08-26 22:45:56 +07:00
admin
fa01ef02f7
V25: fix wobble khi play - re-buffer FILL sau flush (het loop underrun-flush)
2026-08-26 21:37:06 +07:00
admin
f38e500326
V24: fix master-chain crackle, 1s lag, solo bypass
...
- worklet: FILL 48->24 (PDC 7936 dung), flush protocol khi resume sau interruption
(clear queue + fade-in/crossfade chi voi block moi), drop block stale
- engine fx_realtime: _flush_input_locked NO-DROP (ring day -> giu pending, cap 2048),
flush_all() dong bo in/out khi worklet resume
- app.jsx: WS flush_done + flushing guard, fallback timer 500ms
- plugins.py: xu ly {cmd:flush} -> flush_done
- index.html: bump v param
2026-08-26 20:15:13 +07:00
admin
28a06134f9
V23: fix crackle master FX - underrun fade-out tu mau cuoi + crossfade 64 mau o cap-drop/resume
2026-08-26 19:45:36 +07:00
admin
2e996af102
fix(cc11): unmute realtime dung effective list thay vi ref stale
2026-08-26 18:40:15 +07:00
admin
b95c63e7db
V21: keep master FX session warm on user stop - no 4s VST reload on replay
...
- stopAllPlayback(fade=true) giữ master FX session (không teardown) → play
kế tiếp FX xử lý ngay, hết cửa sổ dry ~4s khi reload VST
- per-track FX vẫn teardown khi user stop (VSTi nhiều track nặng CPU)
- idle timeout 120s (FX_RT_WARM_IDLE_MS): ngừng chơi lâu → teardown giải
phóng CPU/VST
- fxRtStart/fxRtStop/startSubTabPlayback hủy idle timer khi play
2026-08-26 18:31:25 +07:00
admin
3e6080603c
v20: fix CC11 piano roll (epoch check _cc11Epoch - v19 con so _nativePlayEpoch) + SF program change khi play piano roll (bridge)
2026-08-26 18:18:20 +07:00
admin
1f78a834a8
v19: fix CC11 piano roll (epoch rieng cho CC11 timers) + Synth/GUI piano roll cho section subtrack
2026-08-26 18:07:26 +07:00
admin
e53a31b525
v18: CC11 expression realtime khi play main timeline + section subTrack + local loop (dong bo voi export native_render)
2026-08-26 17:46:44 +07:00
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