Commit Graph

660 Commits

Author SHA1 Message Date
Skyler Lehmkuhl 5d84522a74 add clear node graph button 2025-11-12 11:23:46 -05:00
Skyler Lehmkuhl 30aa639460 Add looped instrument samples and auto-detection of loop points 2025-11-12 08:53:08 -05:00
Skyler Lehmkuhl 3296d3ab6e work on tests 2025-11-12 08:52:16 -05:00
Skyler Lehmkuhl a1e2368468 test improvements 2025-11-08 10:03:51 -05:00
Skyler Lehmkuhl 7ec69ce950 Merge branch 'new_timeline' of github.com:skykooler/Lightningbeam into new_timeline 2025-11-06 23:42:50 -05:00
Skyler Lehmkuhl b82d2b7278 codify new timeline 2025-11-06 23:42:45 -05:00
Skyler Lehmkuhl 47e1954efe try to improve performance 2025-11-06 22:36:02 -05:00
Skyler Lehmkuhl 430ecb0ae6 use native player to speed up playback 2025-11-06 11:36:56 -05:00
Skyler Lehmkuhl e51a6b803d Add metronome 2025-11-06 10:59:25 -05:00
Skyler Lehmkuhl e97dc5695f draw midi input indicator 2025-11-06 09:12:48 -05:00
Skyler Lehmkuhl 09426e21f4 use channel and jpeg compression to speed up playback 2025-11-06 06:42:12 -05:00
Skyler Lehmkuhl 3c5a24e0b6 video backend 2025-11-06 06:04:39 -05:00
Skyler Lehmkuhl 07dc7efbe4 Rename Layer to VectorLayer 2025-11-05 19:18:11 -05:00
Skyler Lehmkuhl 5320e14745 midi hotplug 2025-11-03 09:48:38 -05:00
Skyler Lehmkuhl 06314dbf57 Add MIDI input 2025-11-03 06:16:17 -05:00
Skyler Lehmkuhl f6a91abccd shift virtual keyboard 2025-11-03 05:08:34 -05:00
Skyler Lehmkuhl 3b0e5b7ada fix save/load bugs 2025-11-03 04:38:31 -05:00
Skyler Lehmkuhl 1ee86af94d File save/load for audio projects 2025-11-03 02:46:43 -05:00
Skyler Lehmkuhl 9702a501bd add BPM detection 2025-11-02 09:53:34 -05:00
Skyler Lehmkuhl 66c4746767 use nodes for audio tracks 2025-11-02 06:33:10 -05:00
Skyler Lehmkuhl 988bbfd1a9 Add automation and drag nodes into connections in the graph 2025-11-02 01:27:22 -05:00
Skyler Lehmkuhl 0ae168cbca Add bit crusher, constant, math, envelope follower, phaser, ring modulator, sample and hold, and vocoder nodes 2025-10-29 03:14:01 -04:00
Skyler Lehmkuhl dc32fc4200 MIDI recording 2025-10-29 01:50:45 -04:00
Skyler Lehmkuhl 6e7e90fe57 Lay out preset instruments better 2025-10-28 21:00:27 -04:00
Skyler Lehmkuhl d496d796dd Add CV visualizer to oscilloscope node 2025-10-28 20:19:25 -04:00
Skyler Lehmkuhl d7dc423fe3 Remove old SimpleSynth and effect system 2025-10-28 20:19:08 -04:00
Skyler Lehmkuhl 2cdde33e37 Add minimap and node search to node graph 2025-10-28 10:27:54 -04:00
Skyler Lehmkuhl a379266f99 Add undo/redo support for node graph editor 2025-10-28 09:53:57 -04:00
Skyler Lehmkuhl 9d6eaa5bba Node graph improvements and fixes 2025-10-28 08:51:53 -04:00
Skyler Lehmkuhl d2354e4864 Fix sampled instrument loading 2025-10-28 05:50:44 -04:00
Skyler Lehmkuhl e426da0f5b Update README 2025-10-28 04:19:20 -04:00
Skyler Lehmkuhl 8e6ea82f92 Load factory preset instruments 2025-10-28 04:19:05 -04:00
Skyler Lehmkuhl f1bcf16ddc Add preset instruments 2025-10-28 04:18:18 -04:00
Skyler Lehmkuhl 2e9699b524 Add sampler nodes and startup screen 2025-10-28 01:32:51 -04:00
Skyler Lehmkuhl e57ae51397 Fix preset loading, add LFO, noise, pan and splitter nodes 2025-10-25 07:29:14 -04:00
Skyler Lehmkuhl 139946fb75 Add presets and make graph follow selected layer/track 2025-10-25 05:31:18 -04:00
Skyler Lehmkuhl 16f4a2a359 Add audio node graph editing 2025-10-25 03:29:54 -04:00
Skyler Lehmkuhl 19e99fa8bf Update piano roll icon 2025-10-24 01:37:21 -04:00
Skyler Lehmkuhl 6b8679fa87 fix pane split/join menu 2025-10-24 00:28:24 -04:00
Skyler Lehmkuhl 4b1d9dc851 Fix UI selection when dragging pane borders 2025-10-23 23:25:22 -04:00
Skyler Lehmkuhl 976b41cb83 Add piano roll track editing 2025-10-23 23:10:56 -04:00
Skyler Lehmkuhl 3de1b05fb3 Add custom layouts, piano pane, midi file import 2025-10-23 21:15:17 -04:00
Skyler Lehmkuhl c46c28c9bb Add timestamp window 2025-10-23 06:21:02 -04:00
Skyler Lehmkuhl 9649fe173b Rename views to keyframe, curve and segment and update defaults 2025-10-23 05:38:10 -04:00
Skyler Lehmkuhl 5e1a30d812 add timeline markings 2025-10-23 05:00:13 -04:00
Skyler Lehmkuhl 8be10b8213 send playback events from backend to use as time reference 2025-10-23 04:30:52 -04:00
Skyler Lehmkuhl d2fa167179 use tauri events instead of polling to fix race condition in recording stop 2025-10-23 03:59:01 -04:00
Skyler Lehmkuhl 20c3b820a3 Record audio tracks 2025-10-23 01:08:45 -04:00
Skyler Lehmkuhl 48ec738027 add recording and reset function 2025-10-22 20:06:02 -04:00
Skyler Lehmkuhl 9699e1e1ea Migrate from frame-centric to AnimationData system
Replaces legacy Frame-based object positioning and shape management with
AnimationData curves throughout the codebase. This enables time-based
animation instead of discrete frame indices, providing smoother playback
and more flexible keyframe editing.

Key changes:
- Remove currentFrame getter and frame.keys lookups
- Replace setFrameNum() with setTime() for continuous time navigation
- Add Layer.addShape()/removeShape() with AnimationData integration
- Migrate actions (move, group, delete, z-order) to use animation curves
- Update keyboard shortcuts and drag operations to modify curves directly
- Leave "holes" in shapeIndex values for proper undo/redo support

Rendering now fully driven by AnimationData curves (exists, zOrder,
shapeIndex for shapes; x, y, rotation, scale for objects).
2025-10-20 01:56:53 -04:00