Commit Graph

22 Commits

Author SHA1 Message Date
Xiaohan-Tian 4f11fe8e25 feat: added region color customization feature 2026-07-01 22:31:35 -07:00
Xiaohan-Tian cd4d5847eb feat: allow user to drag-n-drop audio clip into audio tracks; added m4a support 2026-05-28 17:25:08 -07:00
Xiaohan-Tian c4e4470182 feat: added waveform view for audio regions 2026-05-26 23:23:01 -07:00
Xiaohan-Tian 8aa36d2368 feat: added global chord region to MIDI region conversion feature 2026-05-25 16:25:43 -07:00
Xiaohan-Tian 742b2fecf3 fix: restore main content global track updates after refactor 2026-05-25 15:41:00 -07:00
Xiaohan-Tian 1f330818d8 feat: enhance multi-region selection feature to support both shift and cmd/ctrl 2026-05-25 13:50:28 -07:00
Xiaohan-Tian 7d275802c9 feat: implemented global tempo (bpm) track 2026-05-23 23:18:47 -07:00
Xiaohan-Tian b865064d65 fix: stabilize the preview canvas inside of the region during resizing 2026-05-19 17:57:21 -07:00
Xiaohan-Tian 4b5b5c8d76 feat: preview all the notes/regions during resizing/moving multiple notes and regions 2026-05-19 17:35:09 -07:00
Xiaohan-Tian 64dda5bb01 fix: few minor UI and behavior adjustments 2026-05-11 23:23:11 -07:00
Xiaohan-Tian 490cd19f68 feat: added audio recording feature 2026-05-09 15:57:46 -07:00
Xiaohan-Tian 31e02b4149 feat: implemented track level automation 2026-05-08 15:44:07 -07:00
Xiaohan-Tian 01a3f886d6 feat: allow user to bulk resize and move regions 2026-05-04 18:15:34 -07:00
Xiaohan-Tian 6d952b5b0b feat: allow user to multi-select regions. 2026-05-04 17:59:35 -07:00
Xiaohan-Tian d59ad68f72 feat: added fine tune region position feature 2026-05-01 23:07:44 -07:00
Xiaohan-Tian d5795c5281 fix: random not able to exit piano roll hybrid mode issue when switching between different MIDI regions (introduced a region dragging start threshold) 2026-05-01 20:34:21 -07:00
Xiaohan-Tian 83034455cc feat: implemented piano roll hybrid mode to allow user edit MIDI notes while observing spectrogram as reference 2026-05-01 18:28:45 -07:00
Xiaohan-Tian eafb3a4937 feat: added audio track spectrogram visualization feature 2026-05-01 17:44:29 -07:00
Xiaohan-Tian 7b82572d5c feat: implemented drag-n-drop to import KGOne generated audio/MIDI file feature 2026-04-15 22:40:47 -07:00
Xiaohan-Tian d94b53dcf5 feat: add snap-to-grid toggle for track grid regions and playhead 2026-04-10 20:57:34 -07:00
Xiaohan-Tian fc84edfc59 feat: add audio track support with WAV/MP3 playback and looping
Introduce KGAudioTrack and KGAudioRegion as new track/region types
alongside existing MIDI tracks. Users can import WAV, MP3, OGG, FLAC,
and AAC files into audio tracks with full playback, looping, and
solo/mute/volume support.

New core models:
- KGAudioTrack (extends KGTrack with TrackType.Wave)
- KGAudioRegion (extends KGRegion with audio file reference)
- KGAudioPlayerBus (Tone.Gain + ToneBufferSource-based playback)
- KGAudioFileStorage (OPFS media/ directory for binary audio files)

New commands:
- AddAudioTrackCommand (create audio track with player bus)
- ImportAudioCommand (import audio file, create region at playhead,
auto-expand maxBars)

Playback features:
- Audio regions scheduled via Tone.Transport alongside MIDI events
- Loop support with duration capping at loop boundaries
- Resume safety offset to prevent ToneBufferSource timing misses
- Cross-track buffer copy when moving audio regions between tracks
- Proper buffer cleanup on track deletion and project switch

UI changes:
- Separate "+ MIDI" and "+ Audio" buttons in top-left spacer
- Audio track shows upload button instead of instrument selector
- FileImportModal reused for audio file drag-and-drop upload
- Real waveform rendering on audio region canvas
- Green color scheme for audio regions (vs blue for MIDI)
- Pencil icon and resize handles hidden for audio regions
- Cross-type region moves blocked (MIDI ↔ Audio)
- Piano roll blocked for audio regions
- Audio region deletion support

Infrastructure:
- Project structure version bumped to 4 (no-op migration)
- class-transformer discriminators updated for new subtypes
- RemoveTrackCommand updated to clean up audio player buses
2026-04-09 21:54:54 -07:00
Xiaohan-Tian de51967b49 initial public release. 2025-08-11 18:37:21 -07:00