Commit Graph

510 Commits

Author SHA1 Message Date
Brandon Thomas c0cb993408
Merge pull request #413 from mikkelkonyher/checkbox-drag
Drag across checkboxes to check or uncheck several (#399)
2026-10-13 06:54:02 -04:00
Brandon Thomas cf755b8cd2
Merge pull request #410 from Silvertree2010/fix/instrument-params-render
Engine: mix.instrument takes the instrument's parameters and refuses unknown fields (#265)
2026-10-13 06:53:58 -04:00
Brandon Thomas 9ad9eb88e4
Merge pull request #408 from Silvertree2010/fix/bus-bounce-aux-latency
Mix: a bus bounce compensates the aux returns onto it (#246)
2026-10-13 06:53:54 -04:00
Brandon Thomas fca728501f
Merge pull request #409 from Silvertree2010/fix/master-insert-latency
Mix: delay compensation covers the master faders' inserts (#351)
2026-10-13 06:53:50 -04:00
Brandon Thomas 55eff096ac
Merge pull request #417 from Momentum96/fix/hangul-ui-fallback
Fall back to a system Hangul font so Korean names render in the UI
2026-10-13 06:53:46 -04:00
Brandon Thomas c2788c50d4
Merge pull request #415 from grovebit/tab-to-transient
Tab to Transient: every selected track, Alt+Tab back, Shift+Tab extends
2026-10-13 06:53:42 -04:00
Brandon Thomas fe573bb31f
Merge pull request #416 from grovebit/transient-detection
Transient detection: find quiet and legato onsets, place them on the attack
2026-10-13 06:53:38 -04:00
Brandon Thomas 87db8f4048
Merge pull request #414 from grovebit/midi-double-click
Double-click a MIDI clip with the Grabber to open it in the MIDI Editor
2026-10-13 06:53:33 -04:00
Brandon Thomas ddb874e399
Merge pull request #407 from vbasky/fix/midi-editor-tool-insertion
Require the Pencil tool to insert MIDI notes
2026-10-13 06:53:29 -04:00
Brandon Thomas f4ed9919e6 Merge main into #413
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:46:08 -04:00
Brandon Thomas b32d7bd926 Merge main into #410; put the mix.instrument note in the Instruments row's 'have' cell
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:45:33 -04:00
Brandon Thomas 14862a5139 Merge main into #408
render_bus moved into RangeRender (#393); the bus-latency fix now applies there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:45:20 -04:00
Brandon Thomas 6d4f9a41a5 Merge main into #409
# Conflicts:
#	ROADMAP.md
#	docs/architecture.md
2026-10-13 06:44:55 -04:00
Brandon Thomas a96cf50a3a
Merge pull request #380 from grovebit/controls-look
Draw faders and meters more like Pro Tools
2026-10-13 06:38:28 -04:00
Momentum96 49abc39806 Fall back to a system Hangul font so Korean names render in the UI
No UI font family had Hangul, so Korean session, file, track and clip names drew as boxes in every interface language. Following the guidance on #141 (system fonts at runtime, nothing bundled), borrow an installed Korean face (fontconfig lang=ko, Apple SD Gothic Neo, Malgun Gothic, Noto Sans CJK KR, NanumGothic) and append it to every family.
2026-10-13 19:34:21 +09:00
Brandon Thomas afa850d697 Merge main into #319
# Conflicts:
#	ROADMAP.md
2026-10-13 06:32:14 -04:00
Brandon Thomas 844830bf6f Merge main into #322
# Conflicts:
#	ROADMAP.md
2026-10-13 06:31:36 -04:00
Brandon Thomas acbc3411e5
Merge pull request #334 from scottcampbelldata/sampler-ui
Sampler UI: load samples, waveform with loop points, instrument sliders
2026-10-13 06:31:27 -04:00
Brandon Thomas 13316cf60e
Merge pull request #315 from Limestudio90/plugin-editors-windows
Plugin editor windows on Windows (VST3 and embedded CLAP)
2026-10-13 06:31:24 -04:00
Brandon Thomas 9176296e96
Merge pull request #390 from woodgrain816/open-recent
File › Open Recent: the last 10 sessions, newest first
2026-10-13 06:31:20 -04:00
Brandon Thomas 18dcb7b870
Merge pull request #219 from Jafz2001/feat/routing-folders
Complete routing folder management
2026-10-13 06:31:16 -04:00
Brandon Thomas 58a0482712
Merge pull request #335 from reoniazx/fix/fade-drag-waveform-preview
Fix clip fade editing and add live waveform previews
2026-10-13 06:31:12 -04:00
Brandon Thomas 751a5755cb
Merge pull request #338 from grovebit/menu-search
Type to search as soon as a plugin or bus menu opens
2026-10-13 06:31:05 -04:00
Brandon Thomas 430c6a9e4e
Merge pull request #332 from grovebit/corrupt-sessions
Keep corrupt sessions and imports from hanging, crashing or filling memory
2026-10-13 06:31:01 -04:00
Brandon Thomas cc1bf5a62d
Merge pull request #296 from grovebit/new-midi-clip
Create MIDI clips with the Pencil, Consolidate and the MIDI Editor
2026-10-13 06:30:57 -04:00
Brandon Thomas 123ae65e2b
Merge pull request #306 from grovebit/plugin-safety
Plugin safety: read plugin state off the audio thread, keep refused settings, contain NaN plugins
2026-10-13 06:30:53 -04:00
Brandon Thomas 5b824e46c8
Merge pull request #209 from grovebit/zoom-toggle
Zoom Toggle: E zooms in on the edit selection and back out, as in Pro Tools
2026-10-13 06:30:49 -04:00
Brandon Thomas d438c753e1
Merge pull request #360 from grovebit/session-copies
Share the session with the UI instead of copying it every frame
2026-10-13 06:30:45 -04:00
Brandon Thomas 69aea8fad3
Merge pull request #384 from grovebit/track-height-drag
Track height: resize live while dragging, Pro Tools modifiers and Ctrl+Up/Down
2026-10-13 06:30:40 -04:00
Brandon Thomas 768629a8ce
Merge pull request #365 from grovebit/edit-modes
Make the Shuffle, Slip, Spot and Grid edit modes work like Pro Tools
2026-10-13 06:30:33 -04:00
Brandon Thomas a8594684a1
Merge pull request #393 from grovebit/bounce-streaming
Stream bounces to disk and keep the app responsive while bouncing
2026-10-13 06:30:29 -04:00
Brandon Thomas e65a66c539 Keep one build_input after merging #319's latest (the guarded one with device-loss detection)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:27:17 -04:00
Brandon Thomas baea184bd1 Keep one VST3 controller-sync path after merging #306's latest
The landing branch already syncs host-set values to the controller before
saving state (lock-free atomics + EditorLink::sync_param); the PR's later
ControllerPending table did the same, so keep one. Keeps the PR's new
'a loaded state replaces earlier edits' assertion, which passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:26:54 -04:00
Brandon Thomas 94390f49fa Merge #319's latest into the landing branch 2026-10-13 06:25:57 -04:00
Brandon Thomas 0c30ecffcc Merge #367's latest into the landing branch 2026-10-13 06:25:56 -04:00
Brandon Thomas 7a6df4cbbd Merge #306's latest into the landing branch 2026-10-13 06:25:56 -04:00
Brandon Thomas c2f052715d Merge main into #319 2026-10-13 06:16:54 -04:00
Brandon Thomas edd1787353 Merge main into #322 2026-10-13 06:13:17 -04:00
Brandon Thomas bec0cca48d Fix build after merging main into #334
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:12:51 -04:00
Brandon Thomas 00faedcbd0 Merge main into #334 2026-10-13 06:09:17 -04:00
Brandon Thomas b0daf3213e Merge main into #315 2026-10-13 06:08:18 -04:00
grovebit 2895fa7dd0 Merge origin/main into plugin-transport-midi
#304's MIDI Track Offset shifts the block schedule_notes reads, which
now carries this branch's controllers too. chase_controllers takes the
same offset, so a seek chases the controller values in effect where the
offset puts the track, not at the raw transport position. New test: with
the track 0.5 s late, starting at 1.25 s chases the sustain pedal still
down (without the offset it sent the pedal-up that only plays at 1.5 s).

Also: reset() sets the chase flag beside #301's alignment flush, the
VST3 Instance keeps #400's set_normalized beside midi_mapping, and the
mix tests keep #210's Keys plugin beside this branch's Clock and Ears.
2026-10-13 11:06:09 +01:00
Brandon Thomas 5686d61f45 Merge main into #390 2026-10-13 06:04:00 -04:00
Brandon Thomas 82eff0f561 Merge main into #219 2026-10-13 06:01:05 -04:00
Brandon Thomas 6409a8cbbd Fix build after merging main into #335
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:00:30 -04:00
grovebit 776a7af06c Merge origin/main into plugin-safety
#400 (fixes #257) made Vst3Plugin::save_state tell the edit controller
the values the host set before taking the snapshot. This branch reads
plugin state on the UI thread through EditorLink instead, and removes
Vst3Plugin::save_state, so keeping its side of that conflict would have
dropped the fix.

The values now wait in a ControllerPending table shared by the instance
and its EditorLink: one AtomicU64 slot per parameter, which set_param
fills on the audio thread without locking or allocating.
EditorLink::save_state sends the waiting values with setParamNormalized
under its lock, before it reads the controller's state. A state load
clears them, as #400's refresh did. Instance::set_normalized, which only
the old save_state used, is gone. #400's round-trip test passes, plus a
check that a loaded state replaces earlier host edits.

#327's a_new_instance_replaces_a_matching_one_in_its_slot told the two
instances apart through MixEngine::capture_states, which this branch
removes (states are read on the UI thread). The two instances now
differ in gain instead (-6 and -20 dB), and the test checks that the new
level plays and that the old instance is retired.

Also: Side::new sets #210's old_sessions field.
2026-10-13 10:58:07 +01:00
grovebit 46bef836a3 Merge remote-tracking branch 'origin/main' into controls-look
# Conflicts:
#	crates/ui-egui/src/mix_window.rs
#	crates/ui-egui/src/widgets.rs
2026-10-13 10:56:01 +01:00
Brandon Thomas e0deb3f4e5 Merge main into #335 2026-10-13 05:55:06 -04:00
Brandon Thomas bae80849dd Merge main into #338 2026-10-13 05:51:51 -04:00
Mikkel konyher bca2b4af07 Drag across checkboxes to check or uncheck several (#399)
Press a checkbox and drag over its neighbours: each box the pointer
passes takes the state the first one switched to, until the button is
released. A click toggles one box, as before. Same design as VectorCraft
and PhotoCraft.

widgets::checkbox wraps egui's checkbox and adds the drag; every
ui.checkbox call in ui-egui uses it. Only boxes the pointer can see are
set, so rows scrolled out of a list or under another window stay as
they are.

Tests: widgets::tests (drag sets, drag unchecks and stops at release,
hidden rows untouched, a click toggles one) and tests/group_dialog.rs
(dragging down the Group dialog's track list groups every track).
2026-10-13 11:51:48 +02:00