Skyler Lehmkuhl
3d7cff9ad0
Stream audio & video from .beam container; waveform LOD pyramid + persistence
...
Migrate the .beam container to SQLite and stream media from it instead of
decoding whole files into RAM on import/load.
Container & large files:
- SQLite .beam container (beam_archive) with in-place transactional saves and an
incremental BlobReader; supports both packed (chunked blobs) and referenced
(external path) media, with a user preference + first-import prompt for files
over the large-media threshold.
Audio streaming:
- Stream packed compressed audio on load via an inversion-of-control blob factory
(AudioBlobSourceFactory): daw-backend defines the trait, core implements it
over BlobReader, so the audio engine stays container-agnostic.
- Bulk-activate disk streaming for all loaded clips after SetProject.
- Sample-accurate compressed seek (SeekMode::Accurate; Coarse mislands on VBR).
Video:
- Video frames decoded/streamed on demand; thumbnails generated asynchronously
on a dedicated decoder so import/load never blocks the UI.
- The video's audio track is streamed on demand via an ffmpeg VideoAudioReader
as a separate editable AudioClip (no /tmp WAV extraction).
Waveform overview:
- Streaming min/max LOD pyramid (waveform_pyramid), bounded memory, configurable
floor B; serialized into the container and restored on load (or generated in
the background from the packed blob when absent), so no re-decode on reload.
- GPU min/max upload path; integer-LOD textureLoad fixes zoom-dependent wobble.
2026-06-17 13:52:38 -04:00
Skyler Lehmkuhl
318720f89d
Fix gamma handling and improve brush canvas performance
...
Color correctness:
- Unpremultiply before the sRGB OETF on the display and export blits;
encoding premultiplied color corrupted antialiased/transparent edges.
- Tag exported video as full-range BT.709 (matrix/primaries/transfer).
- Run perception effects (invert, brightness/contrast, hue/saturation)
in gamma space to match standard editors.
- Interpolate gradients in gamma space across the raster and vector paths.
- Render effect thumbnails in the same linear space as the live pipeline.
Brush performance:
- Store the raster canvas as Rgba16Float (no shadow banding from 8-bit
linear), with an incremental per-tile ping-pong sync replacing the
per-frame full-canvas copy.
- Do the linear->sRGB readback conversion on the GPU and reuse a cached
scratch texture, dropping a ~110ms-per-stroke CPU decode.
Cleanup:
- Single COLOR_WGSL prelude and shared CPU sRGB scalars instead of ~8
duplicated copies of the transfer functions.
- Shared compute-pipeline builder; smudge folded onto the tile-sync path.
2026-06-16 08:32:39 -04:00
Skyler Lehmkuhl
54d5764bd0
Make beats canonical representation rather than seconds
2026-06-02 13:06:36 -04:00
Skyler Lehmkuhl
f372a84313
Massive tempo refactor - make beats canonical time rep and allow them to be non constant
2026-04-02 10:26:01 -04:00
Skyler Lehmkuhl
ae146533d9
Update automation lanes too
2026-04-01 10:17:52 -04:00
Skyler Lehmkuhl
cfb8e4462b
All events now have three time references for seconds, measures/beats, frames
2026-03-30 10:15:55 -04:00
Skyler Lehmkuhl
65a550d8f4
Add piano roll note snapping
2026-03-24 19:24:24 -04:00
Skyler Lehmkuhl
fa40173562
Add automatable volume and pan control to default instruments
2026-03-23 23:27:05 -04:00
Skyler Lehmkuhl
434b488a4c
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-03-22 18:16:25 -04:00
Skyler Lehmkuhl
f16e651610
work on vector graph
2026-03-22 18:16:17 -04:00
Skyler Lehmkuhl
0d7f15853c
Set default timeline mode based on activity
2026-03-20 21:05:00 -04:00
Skyler Lehmkuhl
6b6ae230a1
Add pitch bend support
2026-03-18 23:11:24 -04:00
Skyler Lehmkuhl
4f3da810d0
Add automation inputs for audio graphs
2026-03-18 11:25:48 -04:00
Skyler Lehmkuhl
8acac71d86
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-03-13 18:53:37 -04:00
Skyler Lehmkuhl
c9a9c2c5f0
rewrite vector backend again
2026-03-13 18:53:33 -04:00
Skyler Lehmkuhl
d7a29ee1dc
Double CPU performance by using tiny-skia instead of vello CPU
2026-03-13 18:52:37 -04:00
Skyler Lehmkuhl
3bc980d08d
Use audio engine as source of truth for audio tracks
2026-03-11 12:37:31 -04:00
Skyler Lehmkuhl
ce7ed2586f
Support Vello CPU fallback on systems with older GPUs
2026-03-10 21:39:01 -04:00
Skyler Lehmkuhl
26f06da5bf
Add gradient support to vector graphics
2026-03-10 00:57:47 -04:00
Skyler Lehmkuhl
8bd65e5904
Address Mac build failures
2026-03-09 22:03:51 -04:00
Skyler Lehmkuhl
0ae97f9562
Address Mac build failures
2026-03-09 14:36:54 -04:00
Skyler Lehmkuhl
0066dffc81
Address Mac and Windows build failures
2026-03-09 14:15:08 -04:00
Skyler Lehmkuhl
06973d185c
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-03-09 13:41:48 -04:00
Skyler Lehmkuhl
dc93f78dc7
More work on DCEL correctness
2026-03-09 13:41:45 -04:00
Skyler Lehmkuhl
78e296ffde
Improve export performance
2026-03-09 13:39:56 -04:00
Skyler Lehmkuhl
a18a335c60
Export images
2026-03-09 11:22:51 -04:00
Skyler Lehmkuhl
09856ab52c
Refactor tools and fix bugs
2026-03-08 18:44:32 -04:00
Skyler Lehmkuhl
0d2609c064
work on raster tools
2026-03-07 16:55:38 -05:00
Skyler Lehmkuhl
a628d8af37
Shape tools
2026-03-07 07:27:45 -05:00
Skyler Lehmkuhl
1900792fa9
Magic wand selection
2026-03-07 03:39:09 -05:00
Skyler Lehmkuhl
1e80b1bc77
Paint bucket
2026-03-07 02:53:47 -05:00
Skyler Lehmkuhl
e7641edd0d
Add blur/sharpen tool
2026-03-06 11:47:10 -05:00
Skyler Lehmkuhl
922e8f78b6
Refactor tools
2026-03-06 10:07:24 -05:00
Skyler Lehmkuhl
901aa04246
Add sponge tool
2026-03-06 09:17:35 -05:00
Skyler Lehmkuhl
6590b249d1
Add dodge/burn tool
2026-03-06 09:05:14 -05:00
Skyler Lehmkuhl
7d55443b2a
Add pattern stamp tool
2026-03-06 08:40:17 -05:00
Skyler Lehmkuhl
1d9d702a59
Add healing brush
2026-03-06 08:25:12 -05:00
Skyler Lehmkuhl
de24622f02
Add clone stamp tool
2026-03-06 08:05:45 -05:00
Skyler Lehmkuhl
2c9d8c1589
Add tool skeletons
2026-03-06 07:22:50 -05:00
Skyler Lehmkuhl
d1f47d7164
Merge branch 'rust-ui' of /home/skyler/Dev/Lightningbeam-2/. into rust-ui
2026-03-06 06:19:48 -05:00
Skyler Lehmkuhl
bff3d660d6
Improve smudge tool
2026-03-06 06:03:33 -05:00
Skyler Lehmkuhl
bc7d997cff
More region select fixes
2026-03-06 05:52:20 -05:00
Skyler Lehmkuhl
f2c15d7f0d
brush fixes and improvements
2026-03-05 20:24:38 -05:00
Skyler Lehmkuhl
f97e61751f
Fix DCEL selection bugs
2026-03-05 19:55:39 -05:00
Skyler Lehmkuhl
292328bf87
add brush library
2026-03-04 16:42:43 -05:00
Skyler Lehmkuhl
63a8080e60
improve painting performance
2026-03-04 15:20:39 -05:00
Skyler Lehmkuhl
16b0d822e3
painting fixes
2026-03-04 14:40:08 -05:00
Skyler Lehmkuhl
885c52c02a
organize raster buffers better
2026-03-02 11:24:12 -05:00
Skyler Lehmkuhl
73ef9e3b9c
fix double paste and make selections always floating
2026-03-02 09:19:55 -05:00
Skyler Lehmkuhl
c1266c0377
remove legacy path that was still dumping into text clipboard
2026-03-02 07:54:14 -05:00
Skyler Lehmkuhl
75e35b0ac6
Don't dump json into text clipboard
2026-03-02 07:30:09 -05:00
Skyler Lehmkuhl
a45d674ed7
Merge branch 'rust-ui' of /home/skyler/Dev/Lightningbeam-2/. into rust-ui
2026-03-02 00:01:35 -05:00
Skyler Lehmkuhl
87815fe379
Cut/copy/paste raster data
2026-03-02 00:01:18 -05:00
Skyler Lehmkuhl
6162adfa9f
Add transparent bg and make raster and vector tools use same colors
2026-03-01 23:38:20 -05:00
Skyler Lehmkuhl
1c3f794958
Merge remote and fix color space
2026-03-01 15:50:53 -05:00
Skyler Lehmkuhl
da02edb9f5
Move raster editing to GPU
2026-03-01 15:41:28 -05:00
Skyler Lehmkuhl
a6e04ae89b
Add VU meters
2026-03-01 14:49:49 -05:00
Skyler Lehmkuhl
e85efe7405
Fix smudge tool
2026-03-01 14:00:39 -05:00
Skyler Lehmkuhl
83736ec9e3
Record to multiple layers
2026-03-01 13:48:43 -05:00
Skyler Lehmkuhl
1c7256a12e
Add raster layers
2026-03-01 13:16:49 -05:00
Skyler Lehmkuhl
516960062a
Drag layers to reorder
2026-03-01 11:54:41 -05:00
Skyler Lehmkuhl
4b638b882f
Make tools dependent on layer type
2026-03-01 11:22:03 -05:00
Skyler Lehmkuhl
b7d72d2803
fix group ordering
2026-03-01 11:04:22 -05:00
Skyler Lehmkuhl
38831948ac
group layers manually
2026-03-01 11:01:51 -05:00
Skyler Lehmkuhl
13840ee45f
add top-level selection
2026-03-01 10:22:46 -05:00
Skyler Lehmkuhl
b87e4325c2
use group layers instead of linked tracks
2026-03-01 09:00:55 -05:00
Skyler Lehmkuhl
520776c6e5
background color
2026-03-01 06:37:10 -05:00
Skyler Lehmkuhl
f8df4d1232
Add webcam support in video editor
2026-03-01 06:25:43 -05:00
Skyler Lehmkuhl
0026ad3e02
fix dcel
2026-03-01 03:03:57 -05:00
Skyler Lehmkuhl
9edfc2086a
work on dcel
2026-03-01 00:35:02 -05:00
Skyler Lehmkuhl
14a2b0a4c2
paint bucket back to functionality
2026-02-28 13:06:41 -05:00
Skyler Lehmkuhl
dc27cf253d
rewrite dcel
2026-02-26 18:48:21 -05:00
Skyler Lehmkuhl
353aec3513
Fix panic with vertex deduplication
2026-02-25 07:02:09 -05:00
Skyler Lehmkuhl
4c34c8a17d
Add snapping for vector editing
2026-02-25 03:29:42 -05:00
Skyler Lehmkuhl
05966ed271
rest of DCEL migration
2026-02-24 11:41:10 -05:00
Skyler Lehmkuhl
2739391257
the pain of geometry programming
2026-02-24 11:12:17 -05:00
Skyler Lehmkuhl
1cb09c7211
Debug DCEL issues
2026-02-24 08:26:17 -05:00
Skyler Lehmkuhl
72977ccaf4
Fix stroke self-intersections
2026-02-24 03:26:12 -05:00
Skyler Lehmkuhl
bcf6277329
Rebuild DCEL after vector edits
2026-02-24 02:04:07 -05:00
Skyler Lehmkuhl
99f8dcfcf4
Change vector drawing primitive from shape to doubly-connected edge graph
2026-02-23 21:29:58 -05:00
Skyler Lehmkuhl
eab116c930
Add beat mode
2026-02-22 18:43:17 -05:00
Skyler Lehmkuhl
205dc9dd67
commit clipboard
2026-02-22 18:25:11 -05:00
Skyler Lehmkuhl
2222e68a3e
Work on region select
2026-02-21 06:04:54 -05:00
Skyler Lehmkuhl
469849a0d6
Add nested audio tracks
2026-02-21 03:56:07 -05:00
Skyler Lehmkuhl
1892f970c4
Initial work on movie clips
2026-02-21 00:54:38 -05:00
Skyler Lehmkuhl
3ba6dcb3d2
Group shapes
2026-02-20 11:13:56 -05:00
Skyler Lehmkuhl
ce40147efa
Fix looping bugs
2026-02-20 04:27:20 -05:00
Skyler Lehmkuhl
042dd50db3
Add clip looping
2026-02-20 02:48:44 -05:00
Skyler Lehmkuhl
c66487b25e
Add script node
2026-02-19 09:29:14 -05:00
Skyler Lehmkuhl
e03d12009f
fix broken mp3/aac export
2026-02-16 07:53:23 -05:00
Skyler Lehmkuhl
65fa8a3918
Add preset pane
2026-02-16 06:06:03 -05:00
Skyler Lehmkuhl
6c4cc62098
rewrite unsafe code in ffmpeg ffi
2026-02-15 23:35:30 -05:00
Skyler Lehmkuhl
7387299b52
node graph fixes
2026-02-15 09:11:39 -05:00
Skyler Lehmkuhl
c6a8b944e5
Add copy and paste
2026-02-15 04:38:42 -05:00
Skyler Lehmkuhl
394e369122
Add clip split and duplicate commands
2026-02-15 02:11:57 -05:00
Skyler Lehmkuhl
777d3ef6be
Clean up build warnings
2026-02-14 11:07:32 -05:00
Skyler Lehmkuhl
b86af7bbf5
Add piano roll
2026-02-12 19:05:49 -05:00
Skyler Lehmkuhl
c11dab928c
Add spectrogram
2026-02-12 18:37:34 -05:00
Skyler Lehmkuhl
fc58f29ccd
Record audio
2026-02-11 02:28:37 -05:00
Skyler Lehmkuhl
b19f66e648
add folders to asset library
2025-12-30 00:45:19 -05:00