13
0
Commit Graph

36407 Commits

Author SHA1 Message Date
97a544390d use TempoMapChange to manage all feasible tempo map editing operations 2022-10-27 13:43:13 -06:00
21a05f539b tweak PublicEditor API to include virtuals for tempo map edits 2022-10-27 13:42:58 -06:00
09c9ab5c75 extend TempoMapChange API to allow for replacing, not editing, the map 2022-10-27 13:40:29 -06:00
5d5c1ee9fc use TempoMapChange for editor tempo marker edits 2022-10-27 12:12:52 -06:00
9c5d396334 use TempoMapChange for define_one_bar 2022-10-27 12:12:28 -06:00
0e20c4b3eb new RAII object for tempo map editing 2022-10-27 12:06:23 -06:00
33770d0777 remove stacktrace() from TempoMap::dump() 2022-10-27 11:58:39 -06:00
2cf59a988c Handle tempo-map changes in sync from the calling thread
This is required to collect relevent undo/redo information, notably
automation-data changes from Playlist::update_after_tempo_map_change and
DiskReader::playlist_ranges_moved.

The realtime thread should not move regions to begin with, and debug
builds woudl also assert since no undo operation was started.
2022-10-27 08:40:09 -06:00
39b85bd2d4 Commit TempoChange undo operation after map update
Tempo Map updates can change a region's position/length, in which case
region-automation may follow the region, and DiskReader:: playlist_ranges_moved
will save additional undo information.

These MementoCommand(s) need to be included in the undo operation.
2022-10-27 08:40:09 -06:00
fa71c87358 remove debug output from automation line reset callback 2022-10-27 08:31:57 -06:00
a3d3fb9c14 fix placement (snap) of percussive-mode drawn notes (#9041) 2022-10-27 08:31:44 -06:00
04131077b3 NOOP: remove newline 2022-10-26 22:26:29 -06:00
15b92334dc remove dangerous and unused RegionView::source_relative_distance() method 2022-10-26 22:25:51 -06:00
a6b63b1cca automation region paste: snap at paste, not at cut
This fixes various issues with this operation, mostly because it was really the
wrong concept to begin with.
2022-10-26 22:23:14 -06:00
fa858a0386
Fix pan automation
The time-domains need to match in order to use the
raw underlying .val() as double for interpolation.
2022-10-27 04:28:07 +02:00
5dd60c03df automation lines: fix missing line segments 2022-10-26 16:57:06 -06:00
389577b1e9 automation line: use return value from (new API) model-to-view method 2022-10-26 16:56:22 -06:00
44f169bc56 automation line drag: fix crash during segment drags
a drag on a segment without adjacent points would crash because we never
set the _grab_button for the Drag, so the LineDrag object never gets deleted
on mouse-up. This leaves a dangling reversible command, which will then
cause an assert(false) crash in the next Editor::begin_reversible_command()
2022-10-26 16:55:27 -06:00
83ad0a10b5 automation line: drop ::redisplay() method 2022-10-26 14:01:59 -06:00
d41e66f169 changes to the way automation lines are drawn to show edge-lines
this adds points to the lines so that they always extend to the edge of
regions (not control points).

more work to come to unify ::redisplay() and ::reset_callback()
2022-10-26 14:01:59 -06:00
f32d36f63e fix initialization order warning 2022-10-26 14:01:59 -06:00
489c9ace9f
Fix looping automation - see also 6a55146f 2022-10-26 21:03:08 +02:00
bc5d21b235 Xcolors theme update from LAM 2022-10-26 10:30:12 -06:00
753fb30734 NOOP: remove doubled-comment text 2022-10-25 18:34:12 -06:00
29daf3ca4b fix initialization of insert/delete clocks (amend 3447869f21)
Also, remove debug output
2022-10-25 18:26:55 -06:00
0ff2c746f7 prevent crash if tempo or meter are dragged back to zero 2022-10-25 12:52:30 -06:00
b0c162879d fix error with saving MIDI after forking MIDI region
when we save a MidiModel to a new MIDI source, that does not
change the edited status of the Model.
2022-10-25 12:51:08 -06:00
621e0f4f91 remove debug output 2022-10-25 11:24:31 -06:00
a928e35efb significant overhaul of automation region/lines to update during tempo map drags etc 2022-10-25 11:10:36 -06:00
e2c5a0777b GUI companion to 4dc582321 - make tempo marker drag smoother/more efficient
No reason to do a "mid tempo" update if the marker did not move
2022-10-25 11:10:36 -06:00
6f57bb9e41 remove a series of unused signals from TimeAxisViewItem 2022-10-25 11:10:36 -06:00
3efb488629 when moving tempo markers, do nothing unless the marker is moved at least 1 beat
Since tempo markers are always on-beat, this enforces a minumum distance of 1 beat while remaining on-beat.
2022-10-25 11:10:36 -06:00
6904a86576 Allow to compile on macOS ventura 2022-10-25 03:34:14 +02:00
72846814ba
Inherit Region Properties when splitting MIDI regions
see also e40f58c106
2022-10-24 07:13:44 +02:00
7337ba42f5 fix region duplicate
Missing equivalent code from 6.9 that sets position.

Also renamed scoped *_sample vars as *_time
2022-10-23 22:26:18 -06:00
b5d7754a26
Fix MIDI Clock generator
MIDI clock start at the next beat (round_up_to_beat), so
here we have to round the current tick, rather than fall
back to a tick that is not yet complete, as 14da117bc8 does.

Reproduced with the Session from #9027
Start loop at bar 40 with MClk generator enabled.

```
#3  in __GI___assert_fail (assertion=0x7fedd86c4fd5 "clk_pos >= pos", file=0x7fedd86c38b7 "../libs/temporal/tempo.cc", line=3336, function=0x7fedd86c4f60 "void Temporal::TempoMap::midi_clock_beat_at_or_after(Temporal::samplepos_t, Temporal::samplepos_t&, uint32_t&) const") at assert.c:101
#4  in Temporal::TempoMap::midi_clock_beat_at_or_after(long, long&, unsigned int&) const (this= 0x560187e92c00, pos=20691033, clk_pos=@0x7fedc02178b8: 20691032, clk_beat=@0x7fedc02178c4: 11472) at ../libs/temporal/tempo.cc:3336
#5  in ARDOUR::MidiClockTicker::tick(long, long, unsigned int, long) (this=0x56018eed6db0, start_sample=20691033, end_sample=20692057, n_samples=1024, pre_roll=0) at ../libs/ardour/ticker.cc:170
#6  in ARDOUR::Session::send_mclk_for_cycle(long, long, unsigned int, long) (this=0x56018a216340, start_sample=20691033, end_sample=20692057, n_samples=1024, pre_roll=0) at ../libs/ardour/session.cc:7495
#7  in ARDOUR::AudioEngine::process_callback(unsigned int) (this=0x5601881a4f20, nframes=1024) at ../libs/ardour/audioengine.cc:563
```
2022-10-24 06:18:30 +02:00
Mads Kiilerich
34527525be
Consistently put ruler toggle code in the same order
Just reordering.
2022-10-24 05:14:58 +02:00
Mads Kiilerich
c010871d54
Update RulerMenuPopup where menu items are missing, duplicate and out-of-order
(It is not clear to me where/how RulerMenuPopup is used, but it seems
trivially correct that this menu should be exactly like RulerMenu.)
2022-10-24 05:14:58 +02:00
Mads Kiilerich
ddb2d7df3e
Show ruler popup items in the same order as the rulers 2022-10-24 05:14:58 +02:00
Mads Kiilerich
8e5f4b5e9b
Consistently name ruler enabling menu actions like their ruler
These "new" strings are thus already translated.
2022-10-24 05:14:58 +02:00
Mads Kiilerich
1e1618e940
Add missing toggle-cue-marker-ruler menu item for View -> Rulers 2022-10-24 05:14:58 +02:00
Mads Kiilerich
74584db195
Update appdata URLs to prefer HTTPs 2022-10-24 05:01:10 +02:00
Mads Kiilerich
358f3ba9b9
Update URLs opened by the UI to use HTTPs 2022-10-24 05:00:44 +02:00
Mads Kiilerich
004b32b91e
Update tracker/reference URLs to prefer HTTPs 2022-10-24 04:59:20 +02:00
Mads Kiilerich
b3743227be
Change tools --help URLs to use https 2022-10-24 04:57:30 +02:00
Mads Kiilerich
40ee5996c0
Follow the redirect and drop /s/ from the subscribe URL 2022-10-24 04:54:36 +02:00
Mads Kiilerich
b8fc9b63cf
Drop keyboard cheat-sheet functionality
It is dead code: outdated and not in the menu or referenced anywhere.
2022-10-24 04:54:36 +02:00
Mads Kiilerich
ddda870cbd
Update URLs from the Help menu to use HTTPS
Because 2022.
2022-10-24 04:54:36 +02:00
Mads Kiilerich
fac5228e50
Add hint that the Mozilla CA list could be bundled
That would in my opinion be a very fine fall back if detection of the
system CA store fails.
2022-10-24 04:47:42 +02:00
Mads Kiilerich
47b7b98652
Clarify that ca_info files must exist as files
From file_test documentation:
  Returns TRUE if any of the tests in the bitfield test are TRUE.

A Glib::file_test parameter like
  Glib::FILE_TEST_EXISTS|Glib::FILE_TEST_IS_REGULAR
will thus also return true if the path exist as a directory.

Make the code work as intended by simply using
Glib::FILE_TEST_IS_REGULAR
2022-10-24 04:47:41 +02:00