Commit graph

36293 commits

Author SHA1 Message Date
Robin Gareus
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
Paul Davis
5dd60c03df automation lines: fix missing line segments 2022-10-26 16:57:06 -06:00
Paul Davis
389577b1e9 automation line: use return value from (new API) model-to-view method 2022-10-26 16:56:22 -06:00
Paul Davis
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
Paul Davis
83ad0a10b5 automation line: drop ::redisplay() method 2022-10-26 14:01:59 -06:00
Paul Davis
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
Paul Davis
f32d36f63e fix initialization order warning 2022-10-26 14:01:59 -06:00
Robin Gareus
489c9ace9f
Fix looping automation - see also 6a55146f 2022-10-26 21:03:08 +02:00
Paul Davis
bc5d21b235 Xcolors theme update from LAM 2022-10-26 10:30:12 -06:00
Paul Davis
753fb30734 NOOP: remove doubled-comment text 2022-10-25 18:34:12 -06:00
Paul Davis
29daf3ca4b fix initialization of insert/delete clocks (amend 3447869f21)
Also, remove debug output
2022-10-25 18:26:55 -06:00
Paul Davis
0ff2c746f7 prevent crash if tempo or meter are dragged back to zero 2022-10-25 12:52:30 -06:00
Paul Davis
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
Paul Davis
621e0f4f91 remove debug output 2022-10-25 11:24:31 -06:00
Paul Davis
a928e35efb significant overhaul of automation region/lines to update during tempo map drags etc 2022-10-25 11:10:36 -06:00
Paul Davis
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
Paul Davis
6f57bb9e41 remove a series of unused signals from TimeAxisViewItem 2022-10-25 11:10:36 -06:00
Paul Davis
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
Robin Gareus
6904a86576 Allow to compile on macOS ventura 2022-10-25 03:34:14 +02:00
Robin Gareus
72846814ba
Inherit Region Properties when splitting MIDI regions
see also e40f58c106
2022-10-24 07:13:44 +02:00
Paul Davis
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
Robin Gareus
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
Mads Kiilerich
d069aa7a56
Use default ca_path /etc/ssl/certs on all systems #9005
This fixes the problem of the invalid /nonexistent_path path making all
certificate validation fail on Fedora. /etc/ssl/certs only recently
started working like on Debian, but it is enough that ca_info works, as
long as /etc/ssl/certs exists and doesn't make cert validation fail.
2022-10-24 04:47:41 +02:00
Mads Kiilerich
f8ce185205
Revert "Disable cert check if no SSL certs are found (#9005)"
This reverts commit 073d6f5e80.
2022-10-24 04:47:41 +02:00
Mads Kiilerich
06b503d716
Revert "Another attempt for ssl-cert support on RHEL/Fedora #9005"
This reverts commit b75be7f975.
2022-10-24 04:47:41 +02:00
+merlan #flirora
79f55742d6
JACKAudioBackend::join_process_threads: Don’t pass NULL for jack_client_stop_thread
This is needed for PipeWire’s JACK frontend, which implements this
function and expects the first argument to be non-null.
2022-10-24 04:45:08 +02:00
Robin Gareus
f9edc474ef
Add Preference to [not] automatically show Plugin Manager 2022-10-23 20:52:25 +02:00
Robin Gareus
63c78ebced Fix MIDI edit opertaiont (trim, draw) across tempo-changes
In the presence of tempo-changes distinguishing between offsets and
absolute positions is signficant. It is only valid to convert absolute
times using the tempo-map

Furthermore since GUI zoom-factor is time-invariant (samples per pixel),
all GUI operations must explictly use samples (or timecnt). It is not
valid (and problematic) to use use a location dependent timepos.
2022-10-23 19:12:31 +02:00
Robin Gareus
0504db2a67 Update region delta-time API
This is the first step to fix various MIDI edit issues for sessions with
tempo-changes.

The old code, using .earlier returned an absolute position when
calculating a relative distance. This is only valid if the session has a
fixed tempo, and the origin is irrelevant when converting the timepos.

This resulted in follow up issues since there is a difference when
summing two positions (each with an origin) vs adding an offset to a
position.

Note: this API changes breaks compilation until the GUI is updated.
2022-10-23 19:05:48 +02:00
Robin Gareus
33348f6332
Fix Windows builds 2022-10-23 06:17:29 +02:00
Paul Davis
25ed864d87 fix find next region boundary : must use absolute value of distance
This matches semantics in 6.9 and avoids negative distances entering the
flow for various next/prev region boundary operations.
2022-10-22 14:25:05 -06:00
Robin Gareus
cc30495ba0
Properly convert v6 MusicTime locked MIDI regions 2022-10-22 05:36:23 +02:00
Robin Gareus
30ec62a953 This is clearly broken
Partially revert previous commit. Otherwise snap to bar/beat
clocks-displays display rounded down X|Y|1919 instead of X|Y+1|0
2022-10-22 03:09:32 +02:00
Robin Gareus
14da117bc8 Add explicit round/floor integer multiply/divide
This fixes various rounding issues. Notably superclock to sample
conversion must always round down when playing forward.

`::process (start, end, speed = 1)` uses exclusive end.
Processing begins at `start` and end ends just before `end`.
Next cycle will begin with the current end.

One example where this failed:
 - New session at 48kHz
 - Change tempo to 130 BPM
 - Enable snap to 1/8 note
 - Snap playhead to 1|3|0
 - Enable Metronome
 - Play

`assert (superclock_to_samples ((*i).sclock(), sample_rate()) < end);`

end = 177231 samples == superclock 1042118280
A grid point is found at superclock 1042116920 (that is < 1042118280).
However converting it back to samples rounded it to sample 177231 == end,
while actual location is 1360 super-clock ticks before end.

The metronome click has to be started this cycle, since the same
position will not be found at the beginning of the next cycle, with
start = 177232.

Similarly a samplecnt_t t, converted to music-time and back must not be
later than the given sample.

```
timepos_t tsc (t);
assert (timepos_t::from_ticks (tsc.ticks ()).samples () <= t);
```

IOW. When playing forward, all super-clock time between 1|1|0 and 1|1|1
should round down to 1|1|0. "We have not yet reached the first tick".
2022-10-22 02:10:05 +02:00
Robin Gareus
e9bafde628
Catch manual removal of subgroup bus (#9022) 2022-10-21 20:40:27 +02:00
Robin Gareus
b9b4313873
Use libardour's SimpleExport
Selection range export now needs to be handled by the GUI
2022-10-21 19:59:16 +02:00