mirror of
https://github.com/storytold/soundcraft.git
synced 2026-10-24 10:36:46 -06:00
Video track, Audio Unit hosting, plugin state and editors, Renderer and UI Customization
Video (new standalone crate soundcraft-video): - Pure-Rust H.264 (Baseline/Main/High), ProRes (all flavours) and Motion JPEG decoding with ISO-BMFF demux, adapted from FilmCraft's crates; fuzzed with mutated/truncated movies - TrackKind::Video with ClipContent::Video referencing Session.videos; file.import_video adds the picture track and the movie's audio; relinking on open; video.offset/online/list - Video and Video Universe windows, thumbnails on the timeline, background decoding Third-party plugins: - Plugin state (CLAP state ext, VST3 component + controller state) saved in sessions - Hosted instances created, state-loaded and dropped on the UI thread, never the audio thread - Plugin editors: floating CLAP GUIs and VST3 views on macOS (verified with Melodyne) - New isolated FFI crate soundcraft-au-host: Audio Units on macOS (effects and instruments, parameters, latency, MIDI, ClassInfo state), wired into the mixer and plugin browser UI: Window > Renderer (speaker layout with live levels and object positions), Window > UI Customization (interface scale, reduce motion), Window > Configurations > Auto-Update. Fix: saturating sample-index math in clip rendering (hostile stretch values overflowed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c125a79a47
commit
cdefc57c91
+4
-1
@@ -21,9 +21,11 @@ const LAYERS: &[(&str, u8)] = &[
|
||||
("time", 0),
|
||||
("audio-io", 0),
|
||||
("midi", 0),
|
||||
("video", 0),
|
||||
("dsp", 1),
|
||||
("clap-host", 1),
|
||||
("vst3-host", 1),
|
||||
("au-host", 1),
|
||||
("model", 2),
|
||||
("mix", 3),
|
||||
("engine", 4),
|
||||
@@ -32,7 +34,7 @@ const LAYERS: &[(&str, u8)] = &[
|
||||
("ui-egui", 6),
|
||||
];
|
||||
/// Standalone format crates: no workspace dependencies at all (publishable on their own).
|
||||
const STANDALONE: &[&str] = &["time", "audio-io", "midi", "dsp"];
|
||||
const STANDALONE: &[&str] = &["time", "audio-io", "midi", "video", "dsp"];
|
||||
const UI_CRATES: &[&str] = &["egui", "eframe", "winit", "egui_kittest", "rfd", "egui-wgpu", "egui_glow"];
|
||||
const EXEMPT: &[&str] = &["soundcraft", "soundcraft-cli", "soundcraft-web", "xtask"];
|
||||
|
||||
@@ -119,6 +121,7 @@ const WASM: &[&str] = &[
|
||||
"soundcraft-time",
|
||||
"soundcraft-audio-io",
|
||||
"soundcraft-midi",
|
||||
"soundcraft-video",
|
||||
"soundcraft-dsp",
|
||||
"soundcraft-model",
|
||||
"soundcraft-mix",
|
||||
|
||||
Reference in New Issue
Block a user