Commit Graph

40465 Commits

Author SHA1 Message Date
Paul Davis
441cfe4e2d Make MidiView::relative_position() return correctly for _show_source case 2025-03-06 18:12:39 -07:00
Paul Davis
eb75064909 Modify comments and variable names in MidiView::create_note_at()
First argument is a source-relative position, not region-relative.
2025-03-06 18:12:39 -07:00
Paul Davis
67fa5282cb Remove Region::absolute_time_to_region_beats()
This method did not do what its name suggested. Replace it with
::absolute_time_to_source_beats() which already existed and
computed the same result.

Also in a NoteCreateDrag, correctly adjust note start
depending on whether we are viewing the whole source or
just the region. This part may be amended later.
2025-03-06 18:12:39 -07:00
Robin Gareus
f9e78dc128 Resize Videotimelime with DPI 2025-03-07 00:41:07 +01:00
Robin Gareus
7b9e9d7241 Resize rulers when DPI changes 2025-03-06 21:50:05 +01:00
Robin Gareus
78120d86b5 Update Gain/Meter when changing DPI 2025-03-06 20:25:56 +01:00
Robin Gareus
349a3cf039 Add API to resize Fader widgets 2025-03-06 20:10:20 +01:00
Robin Gareus
7b1157e536 Update Mixer-strip width when scaling UI 2025-03-06 19:27:18 +01:00
Robin Gareus
f3ec590eb5 Dynamically update ArdourButton indicator
Previously this was semi-random, on_size_request() may be called
in response to some other widget changing size, before a given
ArdourButton DPIReset handler could set _diameter = 0.
2025-03-06 17:02:33 +01:00
Robin Gareus
d8e7e24f59 Use dedicated common actions per edit context
Pianoroll and main editor mouse-mode/tool actions are
now separate.
2025-03-05 22:49:37 +01:00
Robin Gareus
13ee3d9fc3 Set Editor context when entering editor or main toolbar 2025-03-05 00:08:57 +01:00
Paul Davis
f1e9a8027a Revert "Fix mouse-cursor when moving mouse over region handles"
This was not the correct fix for this (see b24db7cbf5)

This reverts commit 866caab719.
2025-03-04 14:58:00 -07:00
Paul Davis
2d13df9791 proper use of braces for if/else scoping 2025-03-04 14:57:50 -07:00
Paul Davis
b24db7cbf5 fix canvas cursor handling in MidiRegionViews 2025-03-04 14:57:50 -07:00
Paul Davis
fcf086986a avoid logical op ambiguity 2025-03-04 14:57:50 -07:00
Robin Gareus
866caab719 Fix mouse-cursor when moving mouse over region handles 2025-03-04 21:14:05 +01:00
Paul Davis
b489d466cf commit crash caused by event-sensitive ghost note in MidiView 2025-03-04 12:18:29 -07:00
Paul Davis
06050bb578 several related changes to get visible channel control working in MidiView/Pianoroll 2025-03-04 11:30:48 -07:00
Paul Davis
e34fd3cc3b remove unused methods related to channel changing for MIDI notes 2025-03-04 11:30:48 -07:00
Paul Davis
e4b38b33b9 provide an environment variable to disable MIDNAM loading (just for testing purposes) 2025-03-04 11:30:48 -07:00
Robin Gareus
34a4eea0d5 Step-edit: improve overlapping note handling
* no need to shift notes during normal edit
* prevent duplicate (overlapping) chord notes
2025-03-04 17:07:16 +01:00
Robin Gareus
e35b9f8a3e Remove dead code 2025-03-04 16:17:29 +01:00
Robin Gareus
826ad62d91 Improve step-editor chord mode: step on note-off 2025-03-04 16:16:14 +01:00
Robin Gareus
814fbfcb73 Prepare handling note-off for step entry 2025-03-04 16:14:59 +01:00
Robin Gareus
e61670a657 Properly drop Pianoroll references 2025-03-03 18:25:21 +01:00
Robin Gareus
4e58e9b7d2 Fix duplicate Editor Piano roll
This fixes a crash when switching snapshots, part one
2025-03-03 18:09:32 +01:00
Paul Davis
55edfa9a66 make Editor track canvas grab focus when entered, independent of editing mode
Numerous bindings shared across EditingContexts are attached to the viewport for the canvas; unless
we begin with the canvas and walk up the the widget tree, we will never find them.
2025-03-02 12:54:47 -07:00
Robin Gareus
d04376bee4 Amend b3ee25f81, don't allow to remove-last-capture while recording 2025-03-02 18:53:21 +01:00
Robin Gareus
67716bc871 Thread-safe last_capture_sources access 2025-03-02 02:00:42 +01:00
Robin Gareus
c87fa094bd Remove deprecated API 2025-03-02 02:00:34 +01:00
Robin Gareus
c122af3aa9 Use new last_capture_sources API 2025-03-02 01:30:39 +01:00
Robin Gareus
aafb2c8904 Overhaul [get]last_capture API
* Fix copy/edit bug: `get_last_capture_sources` cleared
last capture sources. tagging a take made its removal
impossible.

* `remove_last_capture` also directly modified capture
sources by reference in calling thread.

* get_ prefix violates styleguide #12
2025-03-02 01:23:12 +01:00
Robin Gareus
a47a78d15a Clarify remove-last-capture warning 2025-03-02 00:34:43 +01:00
Robin Gareus
b3ee25f812 Set remove-last-capture sensitivity 2025-03-01 23:27:23 +01:00
Robin Gareus
fe81f8de18 Add signals indicating last-capture-source changes 2025-03-01 23:19:20 +01:00
Robin Gareus
6535d7ed97 Unset last-capture sources when saving session
This prevents accidental deletes of files saved to disk
after the fact. e.g.

* save, delete last capture, quit w/o save.
* save, switch-snapshot, delete last capture.
2025-03-01 18:26:47 +01:00
Robin Gareus
622c27ed74 Add API to unset last capture source(s)
This is in preparation to clear the list when
switching snapshots to prevent destroying references.

https://discourse.ardour.org/t/discard-last-take-impacts-previous-snapshots-is-this-wanted-behaviour/111420/6?u=x42
2025-03-01 17:49:01 +01:00
Robin Gareus
67077b9255 Add MIDNAM for MIDNAM file for Novation Circuit #9899
Thanks to Mr. Zdeeck
2025-03-01 00:57:12 +01:00
Paul Davis
5fcc701f27 when creating an SMF source, round up the duration to the nearest bar unless the duration was explicit 2025-02-28 16:50:18 -07:00
Paul Davis
3ce789dc4c add ::duration_is_explicit() to SMF 2025-02-28 16:49:48 -07:00
Paul Davis
efcb26d7c1 add smf_length_is_explicit() to libsmf 2025-02-28 16:49:15 -07:00
Paul Davis
7ded62c37f when loading a region that is longer than its source, automatically fix up the length 2025-02-28 13:39:45 -07:00
Paul Davis
bdc495395b introduce Region::ensure_length_sanity()
This forces the length of AudioRegions to be an integer number of samples. It is intended
to fix a set of bugs that occur when using music time as the session time domain
and carrying out editing operations that would otherwise lead to audio regions
whose length involves fractional samples.

It is perfectly legal to specific audio distances that include fractional samples,
but there is no reason for any audio region to ever have such a length (we think).
2025-02-28 13:39:45 -07:00
Paul Davis
9f3a41b96b manually revert fa376b709d and debef6ab
Quantizing superclocks to samples in libtemporal negates the whole purpose of superclocks,
and breaks a variety of things, not limited to moving forward to markers and the grid
2025-02-28 13:39:45 -07:00
Paul Davis
570289ddc7 Region::set_length_internal() does not need to be virtual 2025-02-28 13:39:45 -07:00
Paul Davis
47e635b689 initial work on displaying non-selected-channel notes in pianoroll 2025-02-28 13:39:45 -07:00
Robin Gareus
a76acf34f8 Fix ATK builds c813ba2b03
extern here is literally C `extern`, not DLL exported functions,
see libs/tk/ztk/ztk/atkversion.h
```
#ifndef _ATK_EXTERN
#define _ATK_EXTERN extern
#endif
```
2025-02-28 21:19:52 +01:00
Robin Gareus
84183968b2 Use single canonical source for ui-config: ui_config_vars.inc.h 2025-02-28 19:04:39 +01:00
Robin Gareus
87cc61c333 Remove old now unused ui-config variable 2025-02-28 19:04:36 +01:00
John Emmas
c813ba2b03 Ensure that 'ztk' will build a working DLL when built with MSVC 2025-02-28 14:36:18 +00:00