Paul Davis
1d4e3940d1
large-scale refactoring of Pianoroll, CueEditor and AudioClipEditor
...
Enables code-sharing between "clip editors"
2025-07-29 18:16:35 -06:00
Paul Davis
ef6502d88d
initial refactoring to prepare for grid lines in pianoroll
2025-01-29 17:40:57 -07:00
laIK4ndPDScproJyv9ofA
f0ec6b5bda
Redraw arrangement rectangles upon tempo change
...
Previously, changing tempo would leave arrangement rectangles out of sync with markers.
2024-11-03 15:15:35 +01:00
Robin Gareus
c37d523b2e
Fix heap-use-after-free when deleting tempo-markers
2024-08-29 16:05:56 +02:00
jean-emmanuel
83f5d40280
grid/snap: disable broken septuplet option
2024-02-27 23:28:41 +01:00
jean-emmanuel
af023cc516
snap: fix quintuplets and septuplets 2x factor
...
grid: fix quintuplets 2x factor (septuplets still don't draw properly)
2024-02-27 23:21:33 +01:00
jean-emmanuel
f190493e32
grid: display grid lines for triplets/quintuplets/septuplets
2024-02-27 23:21:33 +01:00
Paul Davis
b2e168e79e
NOOP: whitespace cleanup
2023-10-03 10:16:48 -06:00
Paul Davis
969dcaa8a6
update all location markers during tempo/meter drags
2023-10-02 16:52:34 -06:00
Paul Davis
fa78fe1f33
fix incorrect design of abort-tempo-map-edit operation
2023-09-11 10:26:54 -06:00
Paul Davis
734a62101f
remove use of Tempo::active() from GUI
...
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
Paul Davis
09b368f5db
fix visual update of tempo markers during tempo marker drag
2023-09-10 20:07:41 -06:00
Ben Loftis
da4d2a645f
remove tempo-mapping bar, tempo_meta group. this reverts 8fbf2c and related
2023-09-06 19:31:00 +02:00
Paul Davis
0d89bc5789
fix height of tempo ruler curve elements
...
These were being drawn in a way that failed to really convey relative
tempos very well. This is now better, though perhaps there are other
improvements possible
2023-08-31 18:25:18 -06:00
Paul Davis
7c029f5f6a
next iteration of changes to handle time domain bounces as undoable (GUI)
2023-08-14 23:42:08 -06:00
Paul Davis
b3a5e0b2b1
API change for the start of making tempo mapping undoable (GUI)
2023-08-07 16:33:16 -06:00
Paul Davis
16dfb95617
tempo/meter edits: no position fields if marker is part of a BBT marker
2023-08-02 15:23:43 -06:00
Paul Davis
f9e1357fed
editing a MusicTimePoint as a TempoPoint (from GUI) now operates as it should (or closer)
2023-08-02 15:23:43 -06:00
Paul Davis
e36dfa1f09
change display and interaction for BBT Markers
...
Draw regular tempo/meter markers for BBT markers, and move them when BBT marker is dragged
This will (does) allow regular editing workflow for the tempo/meter at at BBT marker
2023-08-02 15:23:43 -06:00
Paul Davis
b8af596a92
update all marker positions after a tempo map change
2023-07-15 11:08:45 -06:00
Paul Davis
509efdb290
temporal: refactor ::get_grid() for performance reasons
...
the API now provides the option to call ::get_grid() with an iterator which may
be re-used on subsequent calls. This avoids unbounded O(N) "walks" from the
marker preceding the start point of the grid to the start point.
This commit also includes "fast-path" code for the common case of a single
tempo and single meter
2023-07-14 13:03:36 -06:00
Paul Davis
d688af76c0
clean up mapping bar context menu, extend with clear tempos
2023-06-30 15:50:47 -06:00
Paul Davis
bfa13ad714
temporal: reference time for BBT_Argument is always superclocks (GUI)
2023-06-30 12:10:50 -06:00
Paul Davis
ac491fce0e
bbt markers: now have an (insensitive) tempo and meter marker visible
...
probably needs more work for event handling on the tempo and
meter markers.
2023-06-28 18:03:38 -06:00
Paul Davis
50232a23a7
temporal: hide superclock_t variant of TempoMap::metric_at()
...
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).
Bad API design on my part, apologies.
This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
Robin Gareus
dbebc0b7e0
Make Markers properly themable, use color-names
...
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
Paul Davis
240a85097c
when editing tempo, round position to beat in GUI
2023-05-05 20:52:48 -06:00
Paul Davis
49e1f7f79d
fix logic of editing tempo & meter
...
Old code use the TempoMetric (Tempo + Meter) in effect at the old
location of the tempo/meter to compute the position of the edited tempo/meter,
using a BBT time from the dialog.
But this TempoMetric uses the very tempo/meter that we're editing!
So we have to use previous_tempo() or previous_meter() to construct
the relevant TempoMetric, and if it is the first tempo or meter, then
obviously it cannot move position at all.
2023-05-03 21:55:23 -06:00
Paul Davis
5c0886379b
fix position of edited tempo marker in the presence of BBT markers
2023-04-28 15:57:42 -06:00
Robin Gareus
a0dc539d70
Set thread-local tempo-map to write-copy
...
Use the new map that is being edited for lookups while changing
the map in the in the GUI. This can changes directly visible
as the map is being edited.
This used to be done directly with the fetch_writable() API
2023-04-10 10:03:21 +02:00
Paul Davis
518fc7754f
tempo mapping: half-way towards working drags again
...
For some reason, mid-drag changes are not visible
2023-04-09 14:36:03 -06:00
Paul Davis
13311b7a32
tempo mapping: tempo group and mapping group are now only ever visible one at a time
...
Currently, the "switch" is in Edit > Tempo
2023-04-08 11:44:21 -06:00
Paul Davis
8fbf2c3f52
add enum and member var for controlling what kind of tempo editing we are doing
...
note: this was much harder than it ought to be
2023-04-08 11:44:21 -06:00
Robin Gareus
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit)
2023-04-08 00:15:37 +02:00
Paul Davis
10b845b1ca
fix mapping begin/commit/abort logic in editor
2023-03-24 14:19:16 -06:00
Paul Davis
ab3fe29afd
no need for a temporary ptr-to-tempo map
2023-03-24 14:19:16 -06:00
Paul Davis
f96a0d0ddf
editor: adding handling of mid-mapping tempo redisplay
2023-03-24 14:19:16 -06:00
Paul Davis
aa3cbd8791
editor: expand handling of tempo-redisplay in middle of drag
2023-03-24 14:19:16 -06:00
Paul Davis
38bb89c110
more functional tempo mapping
...
TempoMarker drag modifies tempo (and thus beat-time positions
and durations).
BBTRuler drag modifies the map but not positions/durations
2023-03-24 14:19:16 -06:00
Paul Davis
21074b189a
remove unnecessary virtual (no default value involved)
2023-03-24 14:19:15 -06:00
Paul Davis
d25a615e20
API development for time domain flipping (GUI edition)
2023-03-24 14:19:15 -06:00
Paul Davis
b35518e212
switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
...
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis
dbd779bf85
NOOP: remove commented debug output
2023-02-23 12:14:39 -07:00
Paul Davis
a7458d308b
midi clock: allow user to "quantize" MIDI clock resolution (GUI edition)
2023-02-23 10:17:54 -07:00
Paul Davis
2c7bfa9ead
require use of BBT_Argument as both parameter and return type from most methods (GUI edition)
2023-02-15 16:02:56 -07:00
Paul Davis
e2d265c018
tempo edit: use ::replace_tempo() instead of ::set_tempo() after dialog
2022-12-20 21:56:37 -07:00
Robin Gareus
8a7684bd2f
Use 1|1|0 for new BBT markers, always use dialog for new markers
...
Amend b972301a3b
2022-12-05 19:18:26 +01:00
Robin Gareus
b972301a3b
Add action to noninteractively add BBT marker at playhead
2022-12-02 21:31:56 +01:00
Paul Davis
148dfdd23c
editor tempodisplay: use new TempoMap::get_grid() argument to get a finer grid
2022-11-29 10:09:39 -07:00
Paul Davis
97a544390d
use TempoMapChange to manage all feasible tempo map editing operations
2022-10-27 13:43:13 -06:00