3dtours
5eb0c26ce4
debug: add detailed tracing logs for entire SF download→SpessaSynth flow
2026-07-26 20:05:34 +07:00
3dtours
5096c618b4
fix: SF3 download prefers SF2, cache invalidation on parse error
...
- Download endpoint reverses extension priority: .sf2 > .sf3
- loadSoundFont adds ?t= cache-buster, invalidates IndexedDB on error
- Retry logic: delete corrupted cache entry, allow re-download
2026-07-26 18:37:46 +07:00
3dtours
e843f55483
fix: strip null synth_engine from project JSON
...
- Frontend serialize: use undefined instead of null for synth_engine
- Backend validate: strip None synth_engine from tracks before schema validation
- Prevents 'None is not of type object' schema error
2026-07-26 18:22:35 +07:00
3dtours
7af0e61fb0
fix: add project_id fallback for schema validation
...
- validate_project_data injects missing project_id with temp_legacy_ prefix
- Prevents 400 error when old frontend data lacks project_id
2026-07-26 18:13:15 +07:00
3dtours
e51b7fd355
feat: SF3 conversion + SpessaSynth client player
...
Server:
- soundfont_converter.py: Python SF2->SF3 via ffmpeg Ogg compression
- batch_convert_all runs on startup (daemon thread)
- GET /soundfonts/download/{sf_id} serves SF3 with SF2 fallback
- Dockerfile: add fluidsynth, vorbis-tools
Client:
- soundfontStorage.js: IndexedDB cache for SF3 buffers
- soundfontPlayer.js: dual-mode (SpessaSynth + oscillator fallback)
- app.jsx: init SpessaSynth, loadSF on instrument select
- index.html: SpessaSynth CDN import + storage script tag
Compression: DSK 11M->1.1M (90%), SGM 529M->18M (97%)
2026-07-26 17:51:37 +07:00
3dtours
89c7237379
feat: add SoundFont inspection engine + AI instrument schema
...
- SoundFontInspector (sf2utils) scans .sf2, generates full/condensed catalog
- GET /api/v1/plugins/soundfonts/catalog with lazy init + cache invalidation
- AI tool generate_multitrack_midi now requires soundfont_id/bank/program
- Condensed catalog auto-injected into AI system prompt with bank rules
- Server render: FluidSynth program_select uses bank/program + channel routing (drums→ch9)
- VST3 pedalboard path inserts CC0 bank select + program change before notes
- DecentSamplerManager loads .dspreset with CWD fix for relative sample paths
- Pianobook render branch in render_engine.py
- Client SonicSF: controllerChange, programChange, applyAITrackInstrument
- Post-AI track creation applies instrument via applyAITrackInstrument
- Background cache rescan on .sf2 upload, frontend re-fetches catalog
- libcurl4 + VST3 dirs in Dockerfile
2026-07-26 12:36:48 +07:00
3dtours
6a17e7036c
fix: nhãn của soundfont hiển thị sai và không load được instrument
2026-07-23 22:32:19 +07:00
3dtours
1a28ebabee
fix: piano roll và main session play
2026-07-23 21:05:26 +07:00
3dtours
dac661e6c6
fix: piano roll tab có thể play với soundfont
2026-07-23 20:34:52 +07:00
3dtours
a21266736c
fix: synth để gắn soundfont cho midi
2026-07-23 19:26:26 +07:00
3dtours
055f351a17
fix: sửa lỗi cho AI thực hiện tạo MIDI
2026-07-23 18:19:12 +07:00
3dtours
225f23516f
feat: thêm soundfont và VSTi cho MIDI
2026-07-23 17:47:46 +07:00
3dtours
0e44e44ecb
feat: bổ sung MIDI
2026-07-23 08:32:23 +07:00
3dtours
0155abd0da
feat: bổ sung phần profile của user
2026-07-22 18:55:25 +07:00
3dtours
9bf9f38864
feat: thêm tính năng lưu dự án bằng modal, Lưu dưới tên khác (Save As) và quản trị dự án/tệp tin trong Hồ sơ cá nhân
2026-07-22 18:42:14 +07:00
3dtours
6f0fac9f2d
fix: sửa lỗi Ai prompt multi
2026-07-22 18:37:52 +07:00
3dtours
b78193dfad
fix: sửa UI của bars và lưu thông tin vào profile
2026-07-22 10:54:24 +07:00
3dtours
108943ae81
fix: thêm và sửa các tools của AI
2026-07-22 09:51:27 +07:00
3dtours
e0b849fdf2
fix: đã sửa lỗi AI gửi prompt
2026-07-22 08:52:34 +07:00
3dtours
85a8dc6d17
fix: time selection click and shiftclick
2026-07-20 19:44:23 +07:00
3dtours
2a44b81cf5
fix: cannot login with default password
2026-07-20 11:50:07 +07:00
3dtours
c8ebdb50b0
fix: refactor
2026-07-20 10:39:07 +07:00
3dtours
a34b01a035
First commit
2026-07-18 15:09:05 +07:00