13
0
Commit Graph

36288 Commits

Author SHA1 Message Date
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
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
f9edc474ef
Add Preference to [not] automatically show Plugin Manager 2022-10-23 20:52:25 +02:00
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
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
33348f6332
Fix Windows builds 2022-10-23 06:17:29 +02:00
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
cc30495ba0
Properly convert v6 MusicTime locked MIDI regions 2022-10-22 05:36:23 +02:00
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
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
e9bafde628
Catch manual removal of subgroup bus (#9022) 2022-10-21 20:40:27 +02:00
b9b4313873
Use libardour's SimpleExport
Selection range export now needs to be handled by the GUI
2022-10-21 19:59:16 +02:00
2e860cd10d
Move SimpleExport to libardour, add Lua bindings
This allows to export a session from the commandline tool

```Lua
AudioEngine:set_backend("None (Dummy)", "", "")
s = load_session ("/path/to/session", "snapshot")
assert (s);
e = s:simple_export()
assert (e:check_outputs ())
e:run_export ()
e = nil
```
2022-10-21 19:50:26 +02:00
0852f898a3
Prepare to move SimpleExport to backend 2022-10-21 19:35:17 +02:00
03642d3707
Mark window invisible after deleting it
This fixes an issue when destroying VST plugin UIs
rather than hiding them. Even though is hidden before destroying it,
the vistracker is also destroyed in the same function call, before
the event can be processed. The window state remains visible="1"
2022-10-21 18:11:19 +02:00
ace2cc095c
Fix typo in 7fb82690b 2022-10-21 18:04:11 +02:00
7fb82690bd
Fix Windows builds (uname is POSIX only) 2022-10-21 17:11:38 +02:00