Commit Graph
838 Commits
Author SHA1 Message Date
Brandon Thomas 50b0f68363 Merge pull request #320 from grovebit/range-shortcuts
Make the Zoom Preset, Waveform Zoom and Clip Rating keys work; add Commands Focus 1–5 and N
2026-10-13 04:43:26 -04:00
Brandon Thomas 6c836b4389 Merge pull request #308 from grovebit/automation-overwrite
Automation passes replace the automation they play over, in one undo step
2026-10-13 04:43:21 -04:00
Brandon Thomas ed42ac49f9 Merge pull request #299 from grovebit/marker-rename
Rename a marker by double-clicking it in the ruler
2026-10-13 04:43:16 -04:00
Brandon Thomas 1831b4173a Merge pull request #298 from grovebit/tempo-drag
Drag or type the tempo in the toolbar
2026-10-13 04:43:12 -04:00
Brandon Thomas 116ccfac5b Merge pull request #297 from grovebit/track-list-reorder
Reorder tracks by dragging them in the Tracks list
2026-10-13 04:43:05 -04:00
Brandon Thomas 0ef67b795b Merge pull request #210 from grovebit/realtime-safety
Stop allocating and freeing memory on the audio thread
2026-10-13 04:43:00 -04:00
Brandon Thomas b764e299bc Merge pull request #326 from grovebit/long-renders
Refuse renders too long to finish instead of cutting the audio short
2026-10-13 04:42:56 -04:00
Brandon Thomas 3d5b4dec8d Merge pull request #389 from grovebit/tab-focus
Keep shortcuts working after Tab
2026-10-13 04:42:51 -04:00
Brandon Thomas b81bd5e064 Merge pull request #361 from grovebit/track-name-menu
Right-click a track's name for the track menu, in Edit and Mix
2026-10-13 04:42:46 -04:00
Brandon Thomas 007e6ab78f Merge pull request #359 from grovebit/grid-over-clips
Draw grid lines over clips in the Edit window
2026-10-13 04:42:42 -04:00
Brandon Thomas f08581b545 Merge pull request #378 from grovebit/tracks-scroll-bar
Mark the Tracks panel's edge with a scroll bar
2026-10-13 04:42:38 -04:00
Brandon Thomas e5ca24cc3e Merge pull request #397 from grovebit/mix-narrow-headers
Fit the section names in narrow Mix strips
2026-10-13 04:42:33 -04:00
Brandon Thomas 7676de2749 Merge pull request #383 from grovebit/pt-track-headers
Lay out Edit window tracks and plugin slots like Pro Tools
2026-10-13 04:42:30 -04:00
Brandon Thomas 7347e98e79 Merge pull request #363 from grovebit/more-shortcuts
Pro Tools keys for nudging, Grid and Nudge values, playlists and windows
2026-10-13 04:42:25 -04:00
Brandon ThomasandClaude Opus 5.5 33a6c3dfbc Test Mix in a separate window: the toggle and closing it
window.mix_separate toggles (and takes a value), Toggle Mix/Edit keeps Edit
in the main window while Mix is separate, a few frames draw both, and
closing the Mix window brings Mix back into the main one. The close handling
moves into mix_window::separate_closed so the test can reach it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:38:59 -04:00
Brandon ThomasandClaude Opus 5.5 74b3278a19 control server: cap request lines at about 86 MiB, not 256 MiB
256 MiB per line times 16 connections let a peer make the app buffer about
4 GiB. 16 MiB would break a legitimate request: mix.insert_state carries a
plugin's state as base64 inline, and the engine accepts states of up to
b64::MAX_DECODED_BYTES (64 MiB), about 85.3 MiB of base64. Nothing else sent
to the app is that large (screenshots are replies, which this doesn't bound).
So the cap is that base64 length plus 1 MiB for the JSON around it, derived
from the same constant so the two stay in step; a compile-time check keeps it
under 96 MiB, about 1.5 GiB across all 16 connections.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:37:04 -04:00
Brandon ThomasandClaude Opus 5.5 41c8561d51 Signal Generator refuses a selection longer than one render
It cut the new clip at MAX_RENDER_SAMPLES / channels without a word, after
allocating up to 2 GiB for it. Refuse such a selection up front, as #326
does for other renders, before anything is generated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:33:35 -04:00
Brandon Thomas c7a4c544c0 Merge pull request #261 from Silvertree2010/fix/cli-convert-validation
Reject invalid --rate and --bit-depth in convert (#256)
2026-10-13 04:33:02 -04:00
Brandon Thomas 16335b8259 Merge pull request #259 from Silvertree2010/fix/bar-start-tick-overflow
Saturate the bar offset for bars before 1 (#249)
2026-10-13 04:32:58 -04:00
Brandon Thomas bdff15defb Merge pull request #387 from itrycodinganditsbad/fix-250
Keep later meter changes on their bars when an earlier meter is edited
2026-10-13 04:32:53 -04:00
Brandon Thomas aa91e47073 Merge pull request #303 from marcoarnulfo/fix/restore-last-selection
Restore Last Selection brings back the previous selection
2026-10-13 04:32:49 -04:00
Brandon Thomas 3b7415db90 Merge pull request #291 from marcoarnulfo/fix/tempo-constant-range
fix(event): Constant tempo applies only over its range (#238)
2026-10-13 04:32:45 -04:00
Brandon ThomasandClaude Opus 5.5 f4460e1ec7 Merge refs/pr/326 (refuse over-long renders) into fix328
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:31:59 -04:00
Brandon ThomasandClaude Opus 5.5 285d9fecd5 Bounce Mix: a session path without a folder starts in the default one
A relative session path has an empty parent, which made the default
"/<name> Bounce.wav". Ignore an empty parent so it falls back to the
default folder, as for a session never saved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:31:47 -04:00
Brandon ThomasandClaude Opus 5.5 8222048c10 Pass the Feet+Frames start to parse_position in the bar-offset test (after #294)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:30:30 -04:00
Brandon Thomas 7c061de737 Merge main into #261
# Conflicts:
#	ROADMAP.md
2026-10-13 04:30:18 -04:00
Brandon Thomas f4233dc8f7 Merge main into #259
# Conflicts:
#	ROADMAP.md
#	contributors/people.toml
2026-10-13 04:30:18 -04:00
Brandon Thomas ba4c234344 Merge main into #387
# Conflicts:
#	crates/engine/src/cmd/event.rs
2026-10-13 04:30:17 -04:00
Brandon Thomas 0f6bd8a573 Merge main into #303
# Conflicts:
#	crates/engine/src/cmd/edit.rs
2026-10-13 04:30:17 -04:00
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 ThomasandClaude Opus 5.5 dac86131ee Recovery repairs only take files in the folders recordings write to
recording.json names the take files whose headers recovery rewrites. Before
writing, check that each is a regular file (not a symlink) directly in the
Audio Files folder a recording of that session writes into (next to the
session file, or in its folder under the autosave root) and that it starts
with the float WAV header the recorder writes. Anything else is left
untouched, logged and listed with the media recovery couldn't load.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 04:28:36 -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