github storytold/soundcraft v0.13.1
SoundCraft v0.13.1

2 hours ago

What's Changed

  • chore(deps): bump the cargo-dependencies group across 1 directory with 11 updates by @dependabot[bot] in #767
  • style: normalize the prores DCT basis literals (SonarCloud rust:S7454) by @dylanmtaylor in #962
  • style: use [[ ]], named locals and explicit returns in packaging scripts (SonarCloud S7688/S7679/S7682) by @dylanmtaylor in #950
  • Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in #844
  • Deps: fix the workspace build after the dependency bump by @wayward-L in #954
  • Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in #827
  • Autosave: give every session its own folder; keep the tests apart from coarse mtimes (#579) by @switch87 in #594
  • Sessions: resolve stored source paths with craft-docpath's resolve_absolute by @aiongg in #826
  • Audio: check the WAVE behind a skipped RIFF form; hold egui at 0.36 in Dependabot by @aiongg in #978
  • CI: one test binary per crate, nextest, line tables only by @aiongg in #985
  • CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in #955
  • style: replace flagged glob imports with explicit uses (SonarCloud rust:S2208); move release workflow's write permission to the job (S8233) by @dylanmtaylor in #988
  • Build: use craft-media for bitstream and isobmff by @aiongg in #776
  • ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in #992
  • chore: resolve SonarCloud maintainability issues by @dylanmtaylor in #1003
  • Edit window: draw large edited sessions without per-clip work every frame by @mrrobbiec in #805
  • Follow the desktop light/dark setting for the System theme on Linux (#951) by @MarekSpodBiedry in #977
  • FreeBSD: package the aarch64 cross build (craft-common-actions#39) by @zuujiscom in #941
  • Fix stale sample read at the end of each mix block when device and session rates differ by @DCubix in #573
  • Plugin-only editor changes mark the session modified by @marcoarnulfo in #653
  • Prevent H.264 skip-run bounds overflow by @justinjohn0306 in #957
  • Save Session: a bare file name is checked as the working directory against the write root by @marcoarnulfo in #947
  • Heal separations left by a cut, not only splits by @Silvertree2010 in #780
  • Resolve hostnames in remote control client targets by @Silvertree2010 in #824
  • Resolve same-pitch overlapping notes when writing SMF by @Silvertree2010 in #833
  • Reset fades at cut edges in copy_range by @Silvertree2010 in #867
  • Place Seconds and Frames grid lines at exact multiples of the step by @Silvertree2010 in #875
  • Fix automation_id overflow and bad ids for high send/plugin slots by @Silvertree2010 in #940
  • Require replace: true for file.export_session_text to overwrite by @Silvertree2010 in #980
  • Keep delay-line storage when the compensated latency changes by @Silvertree2010 in #986
  • MCP: --automation-read-root and --automation-write-root may each be given more than once by @marcoarnulfo in #979
  • Regression test for #264 by @skylartaylor in #946
  • Scroll Into View in the track name menu: the track goes to the top of the Edit window and the left of the Mix by @marcoarnulfo in #679
  • fix(model): saturate the arithmetic in trim_start_to / trim_end_to (#907) by @rollroyces in #960
  • Autosave: the autosave folders are owner-only on Unix by @oracola91 in #868
  • Don't register a source for a take that a punch range misses by @Silvertree2010 in #981
  • Restore all engine side-effect state when a command panics by @Silvertree2010 in #983
  • Bound offline render commands: dedupe tracks and a total sample budget (fixes #896) by @sbacaro in #996
  • Video: clamp H.264 IDCT inputs and temporal-direct mvs to the spec ranges (#928) by @SusieeTheLinuxUser in #994
  • Guard all playback output paths against NaN from interpolation overflow by @Silvertree2010 in #982
  • audiosuite: saturating render budget, and a sharper budget test (follow-up to #996) by @echelon in #1009
  • refactor(video): replace first_chunk closures with method paths (Sonar S1612) by @dylanmtaylor in #1012
  • Integration batch 1: 36 contributor PRs (files, editing, sessions, CLI, mixer, MIDI, plug-ins, interface) by @aiongg in #1011
  • fix(ui): capture live plugin state before saving track presets by @euisuh in #662
  • Fix source offset when trimming the start of a stretched audio clip by @Silvertree2010 in #674
  • Keep the existing volume lane in automation.clip_gain_to_volume by @Silvertree2010 in #716
  • Preserve finite headroom in Float32 WAV and AIFF-C encoding by @mattburlage in #792
  • Fix saved audio trust test on Windows by joining path parts separately (#789) by @MarekSpodBiedry in #798
  • Name F12 in the Record button's tooltip by @lucasegen in #967
  • Fix the macOS build: import registry in au-host's api module by @lucasegen in #997
  • Tracks: clip track and group names to their rows in the side lists (fixes #990) by @SusieeTheLinuxUser in #1008
  • Preserve exact channel formats when committing tracks by @ProdByBuddha in #340
  • Prevent track-name collisions after truncation by @ProdByBuddha in #346
  • VST3 host: IMessage and IAttributeList for plugins (Helix loads its database) by @Limestudio90 in #484
  • Validate the full WAVE_FORMAT_EXTENSIBLE fmt chunk (#465) by @MarekSpodBiedry in #509
  • Heal keeps each clip's gain envelope and skips clips whose mute or stretch differ (#450) by @MarekSpodBiedry in #517
  • Keep unrelated overlapping clips untouched when deleting fades (#449) by @MarekSpodBiedry in #518
  • Load older sessions whose track height is the bare Fit string (#447) by @MarekSpodBiedry in #519
  • Keep MIDI note selection valid across clip, session and note-order changes (#443) by @MarekSpodBiedry in #521
  • Bounce: a Dither option in the dialog and for stems (#522) by @switch87 in #551
  • convert: dither only when the output loses resolution (#548) by @switch87 in #555
  • mix: clamp negative fractional source position in stretched-clip rendering by @midasmatterhorn in #557
  • Keep deep Aux and Folder routing chains in dependency order by @ProdByBuddha in #561
  • A Pencil click on a MIDI clip selects it, so the MIDI Editor follows by @marcoarnulfo in #565
  • session: reject duplicate ids and an exhausted id space on load by @midasmatterhorn in #586
  • Round negative timecode and feet+frames positions symmetrically by @Silvertree2010 in #587
  • ui: MIDI Real-Time Properties submits only the property that changed (#444) by @midasmatterhorn in #593
  • Save a session bundle only if it opens again (#433) by @vxMacDev in #595
  • Release held VST3 notes on reset instead of discarding them by @Silvertree2010 in #605
  • Apply strip mute automation within each processing block by @ProdByBuddha in #617
  • Give the New Tracks name field its own row so it stays wide (#626) by @MarekSpodBiedry in #631
  • Import audio off the UI thread (#597) by @4waymedia in #636
  • Resample through a polyphase bank: 5x faster rate-converting imports (#597) by @4waymedia in #643
  • Fix Split into Mono repeating the left channel by @reoniazx in #663
  • Bounce the whole session when CLI --bounce has no range by @Silvertree2010 in #760
  • Mix tests: never load real plug-ins (cargo test hangs on machines with plug-ins installed) by @derekmwright in #763
  • Fix empty SMF export re-importing as one phantom empty track by @Silvertree2010 in #784
  • cli: reject unknown options and missing option values by @Hamza0101 in #552
  • ui: move panel docking onto craft-ui's shared Workspace and DockCommand by @aiongg in #1035
  • Merge 13 open PRs (tested batch) by @aiongg in #1058
  • Add a built-in Ring Modulator plugin by @dotCooCoo in #1010
  • Add a built-in Auto Pan plugin by @dotCooCoo in #1013
  • AudioSuite: Vari-Fi slows a clip down to a stop or speeds it up from one by @dotCooCoo in #1016
  • Autosave: allow the Unix-only mut, so clippy passes on Windows by @dotCooCoo in #1017
  • CLI tests: the several-roots test uses plain paths, so it passes on Windows by @dotCooCoo in #1018
  • Add a built-in Subharmonic plugin by @dotCooCoo in #1019
  • Docs: the built-in plugin counts match the registry, and the sampler is no longer listed as missing by @dotCooCoo in #1023
  • Clip > Loop... opens Clip Looping: Number of Loops, Loop Length, or until the next clip or the session end by @dotCooCoo in #1030
  • Strip Silence: Extract keeps the silence, and Separate cuts the clips without removing any by @dotCooCoo in #1040
  • Strip Silence: Rename sets the names of the clips it leaves by @dotCooCoo in #1044
  • Fades: Create refuses a shape that is not a string over a selection by @dotCooCoo in #1053
  • Clip List: Auto Rename sets the names of the clips separated from a clip by @dotCooCoo in #1054
  • Strip Silence: rectangles show what Strip keeps while the window is open by @dotCooCoo in #1055

New Contributors

Full Changelog: v0.12.1...v0.13.1

Don't miss a new soundcraft release

NewReleases is sending notifications on new releases.