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
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
3fc4773ec3
Fix remaining sites that weren't updating properly on BPM changes
2026-04-01 09:33:35 -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
121fa3a50a
Add count-in
2026-03-20 20:51:50 -04:00
Skyler Lehmkuhl
c938ea44b0
Add metronome
2026-03-19 01:16:26 -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
be8514e2e6
Fix midi tracks recording previews
2026-03-11 12:53:26 -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
7a3f522735
Give metatracks explicit node graphs
2026-03-10 20:20:46 -04:00
Skyler Lehmkuhl
ac2b4ff8ab
Improve idle performance
2026-03-10 02:41:44 -04:00
Skyler Lehmkuhl
4e79abdc35
bundle amp models more sensibly
2026-03-04 15:20:20 -05:00
Skyler Lehmkuhl
b4c7a45990
fix NAM model loading
2026-03-02 11:58:13 -05:00
Skyler Lehmkuhl
49b822da8c
Add final mix VU meters
2026-03-01 15:04:58 -05:00
Skyler Lehmkuhl
a6e04ae89b
Add VU meters
2026-03-01 14:49:49 -05:00
Skyler Lehmkuhl
5a19e91788
add vibrato node
2026-02-26 19:14:34 -05:00
Skyler Lehmkuhl
eab116c930
Add beat mode
2026-02-22 18:43:17 -05:00
Skyler Lehmkuhl
4122fda954
piano roll and clip resizing fixes
2026-02-21 18:45:46 -05:00
Skyler Lehmkuhl
7e3f18c95b
Add amp sim
2026-02-21 09:43:03 -05:00
Skyler Lehmkuhl
3eba231447
deduplicate node list
2026-02-21 09:42:05 -05:00
Skyler Lehmkuhl
84f1f8e7d7
Add orchestral sampled instruments
2026-02-21 07:28:19 -05:00
Skyler Lehmkuhl
469849a0d6
Add nested audio tracks
2026-02-21 03:56:07 -05:00
Skyler Lehmkuhl
66c848e218
Multi sample bulk import
2026-02-20 01:59:37 -05:00
Skyler Lehmkuhl
35089f3b2e
Add state-variable filter
2026-02-20 00:20:59 -05:00
Skyler Lehmkuhl
c344e11e42
Code cleanup
2026-02-19 11:19:44 -05:00
Skyler Lehmkuhl
a98b59a6d3
Clean up build warnings
2026-02-19 10:21:48 -05:00
Skyler Lehmkuhl
c66487b25e
Add script node
2026-02-19 09:29:14 -05:00
Skyler Lehmkuhl
75be94d737
Add step sequencer node
2026-02-19 06:06:41 -05:00
Skyler Lehmkuhl
dae82b02d1
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-02-19 05:56:00 -05:00
Skyler Lehmkuhl
0a18d28f98
Add arpeggiator node
2026-02-19 05:30:34 -05:00
Skyler Lehmkuhl
89bbd3614f
Add beat node
2026-02-19 01:19:40 -05:00
Skyler Lehmkuhl
21a49235fc
sampler improvements, live waveform preview
2026-02-17 10:08:49 -05:00
Skyler Lehmkuhl
9935c2f3bd
resample recorded audio if it has a different sample rate (fix for wsapi persnicketiness)
2026-02-17 09:44:24 -05:00
Skyler Lehmkuhl
c10f42da8f
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-02-16 19:12:49 -05:00
Skyler Lehmkuhl
2c0d53fb84
Work on sampler nodes, fix slew limiter
2026-02-16 18:45:11 -05:00
Skyler Lehmkuhl
2a94ac0f69
Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui
2026-02-16 10:06:00 -05:00
Skyler Lehmkuhl
6c10112a16
Fix build on Windows
2026-02-16 10:05:39 -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
0bd933fd45
Group nodes
2026-02-16 03:33:32 -05:00
Skyler Lehmkuhl
ffe7799b6a
rewrite unsafe code in midi handling
2026-02-16 00:34:59 -05:00
Skyler Lehmkuhl
9db34daf85
make default voice polyphonic
2026-02-16 00:19:15 -05:00
Skyler Lehmkuhl
a16c14a6a8
Keep voices around while notes are releasing
2026-02-15 23:27:15 -05:00
Skyler Lehmkuhl
06c5342724
rewrite unsafe code in voice allocator
2026-02-15 23:22:36 -05:00
Skyler Lehmkuhl
72f10db64d
add voice allocator node
2026-02-15 23:10:00 -05:00