Commit Graph
400 Commits
Author SHA1 Message Date
Brandon Thomas 52294bd4a3 Merge main into #291
# Conflicts:
#	crates/engine/src/cmd/event.rs
2026-10-13 04:30:17 -04:00
Brandon Thomas 12d9f4dde6 Merge pull request #260 from Silvertree2010/fix/timecode-overflow
Compute timecode frame counts in i128 and clamp (#248)
2026-10-13 04:29:45 -04:00
Brandon Thomas 6dfa00590b Merge pull request #304 from marcoarnulfo/fix/midi-track-offsets
Apply MIDI track offsets when scheduling notes
2026-10-13 04:29:40 -04:00
Brandon Thomas 6bab8365e6 Merge pull request #289 from marcoarnulfo/fix/clear-trim-automation
fix(track): Clear Trim Automation removes the trim lane (#233)
2026-10-13 04:29:36 -04:00
Brandon Thomas cd1ddff0c0 Merge pull request #324 from iannitram/fix/gate-on-windows-and-rust-1.95
Make cargo xtask ci pass on Windows, and on Rust 1.95
2026-10-13 04:29:32 -04:00
Brandon Thomas ec67064398 Merge pull request #355 from mroxso/fix/ui-test-palette-lock-323
fix(ui-egui): own the test palette lock for every SoundApp lifetime (#323)
2026-10-13 04:29:27 -04:00
Brandon Thomas e59f079a02 Merge pull request #342 from mroxso/t3code/76964692
fix(mix): mix.insert_params rejects unknown parameter names
2026-10-13 04:29:23 -04:00
Brandon Thomas b0339a418f Merge pull request #401 from Claudio911015/fix/273-clip-loop-unloop-consistency
Make clip.loop / clip.unloop self-consistent (loop_id tag)
2026-10-13 04:29:19 -04:00
Brandon Thomas d9b959ed6c Merge pull request #400 from marcoarnulfo/fix/vst3-set-param-controller-sync
VST3: hand host-set parameter values to the controller before saving state
2026-10-13 04:29:15 -04:00
Brandon Thomas 75e019dde3 Merge pull request #301 from marcoarnulfo/fix/seek-flushes-state
Locate clears plugin and delay-compensation state
2026-10-13 04:29:11 -04:00
Brandon Thomas e5ca13d07f Merge pull request #327 from Limestudio90/fix-replaced-instance
mix: a newly adopted plugin instance replaces a matching one in its slot
2026-10-13 04:29:07 -04:00
Brandon Thomas a307f767ba Merge pull request #212 from itrycodinganditsbad/consolidate-selection
Consolidate covers the whole edit selection (#164)
2026-10-13 04:28:45 -04:00
Brandon Thomas f868c2678f Merge pull request #386 from itrycodinganditsbad/fix-240
fix(meter): keep K-weighting stable below ~3.4 kHz sample rates
2026-10-13 04:28:41 -04:00
Brandon Thomas 34117efc24 Merge pull request #354 from webdevtodayjason/automation-thin-tolerance
Keep automation thinning within its tolerance
2026-10-13 04:28:36 -04:00
Brandon Thomas 651b9049a8 Merge pull request #353 from webdevtodayjason/trim-keeps-clip-gain
Keep the clip gain line where a clip is trimmed or separated
2026-10-13 04:28:31 -04:00
Brandon Thomas a89c0c4db5 Merge pull request #379 from webdevtodayjason/trim-to-selection-order
Keep clips in order after Trim to Selection
2026-10-13 04:28:26 -04:00
Brandon Thomas 54254639cc Merge pull request #358 from sajibsrs/fix/282-new-midi-clip-menu
Add Clip › New MIDI Clip so an empty MIDI track can get a clip (#282)
2026-10-13 04:28:22 -04:00
Brandon Thomas fe8270e6dc Merge pull request #293 from MarekSpodBiedry/m4b-open
Open .m4b audiobook files like .m4a
2026-10-13 04:28:17 -04:00
Brandon Thomas 2d1f25b1bb Merge pull request #264 from TheMojoMan/toolbar-horizontal-scroll
fix(ui): horizontally scroll the Edit toolbar
2026-10-13 04:28:12 -04:00
Brandon Thomas 8eb1d1aa77 Merge pull request #313 from lunar-me/fix-docs/issue-008
docs: fix grammar issue in docs/target-app-parity.md
2026-10-13 04:28:07 -04:00
Brandon Thomas d85889aafa Merge pull request #312 from lunar-me/fix-docs/issue-007
docs: fix grammar issue in docs/target-app-parity.md
2026-10-13 04:28:03 -04:00
Brandon Thomas 63717328c5 Merge pull request #311 from lunar-me/fix-docs/issue-002
docs: fix grammar issue in README.md
2026-10-13 04:27:58 -04:00
Brandon Thomas 18579f546c Merge pull request #295 from marcoarnulfo/fix/pan-automation-bounce
fix(mix): pan automation reads the same in playback and bounce
2026-10-13 04:27:50 -04:00
Brandon Thomas 3c53d25413 Merge pull request #294 from marcoarnulfo/fix/feet-frames-reference
Apply the Feet+Frames reference to counters and typed positions
2026-10-13 04:27:47 -04:00
Brandon Thomas 3ef50746c8 Merge pull request #292 from marcoarnulfo/fix/trim-no-overlap
fix(edit): trims stop at the neighbouring clips instead of overlapping them (#228, #229)
2026-10-13 04:27:43 -04:00
Brandon Thomas 704ebc3c76 Merge pull request #288 from marcoarnulfo/fix/clip-gain-cut-clipboard
fix(edit): cut clip gain keeps the removed gain for paste (#230)
2026-10-13 04:27:37 -04:00
Brandon Thomas db9ea775fc Merge pull request #287 from marcoarnulfo/fix/midi-backspace-rename
fix(midi-editor): Backspace in a text field leaves the selected notes alone (#223)
2026-10-13 04:27:30 -04:00
Brandon Thomas 8c33cefe1c Merge pull request #286 from marcoarnulfo/fix/modulation-feedback-tail
fix(dsp): chorus and flanger tails follow their feedback (#242)
2026-10-13 04:27:23 -04:00
Brandon Thomas 5bb3e7b3b6 Merge pull request #285 from marcoarnulfo/fix/pitch-shift-full-range
fix(dsp): pitch_shift reaches ±48 semitones (#243)
2026-10-13 04:27:18 -04:00
Brandon Thomas f58da8fe8a Merge pull request #284 from marcoarnulfo/fix/elastic-properties-ratio
fix(clip): Elastic Properties stretches the clip by the requested ratio (#227)
2026-10-13 04:27:14 -04:00
Brandon Thomas 99dbd4d628 Merge pull request #283 from marcoarnulfo/fix/marker-edit-name
fix(markers): markers.edit applies the documented name (#236)
2026-10-13 04:27:10 -04:00
Brandon Thomas 741010d50c Merge pull request #281 from marcoarnulfo/fix/h264-param-set-overflow
fix(video): H.264 parameter sets check their arithmetic before range checks (#251, #252)
2026-10-13 04:27:06 -04:00
Brandon Thomas 3726c57d78 Merge pull request #280 from marcoarnulfo/fix/eq-discrete-redesign
fix(eq): switches and choices redesign the filter on a running EQ (#239)
2026-10-13 04:27:02 -04:00
Brandon Thomas e5787ab7ac Merge pull request #279 from marcoarnulfo/fix/midi-quantize-grid
fix(midi-editor): Quantize snaps to the grid the editor shows (#226)
2026-10-13 04:26:56 -04:00
Brandon Thomas f146bc359f Merge pull request #278 from marcoarnulfo/fix/pencil-plugin-range
fix(edit-window): Pencil clicks on plugin lanes use the plugin's range (#224)
2026-10-13 04:26:53 -04:00
Brandon Thomas 12224df8f5 Merge pull request #277 from marcoarnulfo/fix/hide-floating-automation
fix(window): Hide All Floating Windows also hides Automation (#253)
2026-10-13 04:26:49 -04:00
Brandon Thomas baf102e13f Merge pull request #276 from marcoarnulfo/fix/filmstrip-clip-start
fix(video-universe): filmstrip thumbnails use the clip's own movie time (#225)
2026-10-13 04:26:45 -04:00
Brandon Thomas bd7e8f271f Merge pull request #275 from marcoarnulfo/fix/video-selection-midi-target
fix(midi-editor): a selected video clip is not a MIDI target (#258)
2026-10-13 04:26:42 -04:00
Brandon Thomas b8e206273c Merge pull request #272 from marcoarnulfo/fix/midi-front-keeps-editor
fix(window): keep the MIDI Editor open on Bring to Front (#254)
2026-10-13 04:26:37 -04:00
Brandon Thomas 5c1f9d7dc8 Merge pull request #271 from marcoarnulfo/fix/command-filter-ui-rows
fix(control): apply the engine.commands filter to UI commands (#255)
2026-10-13 04:26:33 -04:00
Brandon Thomas d14edcd51c Merge pull request #270 from marcoarnulfo/fix/track-vca-null
fix(track): vca: null clears a VCA assignment, as documented (#237)
2026-10-13 04:26:28 -04:00
Brandon Thomas 06a4b21663 Merge pull request #269 from marcoarnulfo/fix/pitch-detect-large-rate
fix(dsp): a huge finite sample rate is no pitch, not an overflow (#241)
2026-10-13 04:25:54 -04:00
Brandon ThomasandClaude Opus 5.5 5183bc4dba rustfmt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:22:21 -04:00
Brandon ThomasandClaude Opus 5.5 ad8beac9b4 Look up the MIDI track offset without allocating on the audio thread
schedule_notes ran format!() every block for every instrument track; scan
the edit values by prefix instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:21:20 -04:00
Brandon ThomasandClaude Opus 5.5 165fa98a90 Count tracks, not lanes, in track.clear_trim_automation's result
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:21:20 -04:00
Claudio bee999584f Make clip.unloop recognise loops made by clip.loop, even after edits
clip.unloop found loop copies only by comparing content of back-to-back
clips. As soon as the source clip's notes were edited, its content no
longer matched the copies and unloop answered "the selection is not a
looped clip" for the very loop that clip.loop had just created.

clip.loop now tags the origin and its copies with a shared `loop_id`
(new optional Clip field, serde default so old sessions load), and
unloop treats equal-length adjacent clips with the same loop_id as one
loop. The content comparison stays as a fallback for loops without a
tag. unloop with mode=flatten clears the tag so the copies become
ordinary independent clips.

Propagating edits from the source to the copies is not part of this
change.
2026-10-12 23:54:33 -06:00
Marco Arnulfo 40c5e9b42a VST3: hand host-set parameter values to the controller before saving state (fixes #257)
Plugin::set_param only queues the value for the processor, so a parameter that lives in the controller alone (no processor state) was saved with the controller's old value and came back wrong after load_state. set_param may run on the audio thread, so it now just marks the value; save_state, which already calls into the controller, pushes the marked values with setParamNormalized before taking the snapshot.
2026-10-13 07:06:22 +02:00
Fabio LussiandClaude Opus 5.5 81ec430341 fix(meter): keep K-weighting stable below ~3.4 kHz sample rates
The shelf corner (~1682 Hz) sits at or above Nyquist for rates under
~3.4 kHz. The bilinear prewarp tan() then wraps negative (unstable
poles, +750 LUFS readings, -144 integrated) or aliases. Hold the
design frequency below Nyquist (0.49 * sr, as Coeffs::design does).
Coefficients at 8 kHz and above are unchanged.

Fixes #240

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:45:03 +02:00
webdevtodayjason 950f3e7085 Keep clips in order after Trim to Selection 2026-10-12 16:09:01 -05:00
Sajidur RahmanandClaude Opus 5.5 7a62ab3be0 Add Clip › New MIDI Clip menu entry and command reachability test
midi.new_clip had no UI path, so an empty instrument/MIDI track could
never get a MIDI clip (#282). The menu bar is built from the catalog,
so the entry is added to menus::tree() and placed first in Clip.

The new test checks every mutating command is reachable from the GUI
(built menu tree, shortcut, or UI reference), with today's gaps listed.

Closes #282

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 02:44:59 +06:00