Commit Graph

36263 Commits

Author SHA1 Message Date
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
Robin Gareus 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
Robin Gareus 0852f898a3
Prepare to move SimpleExport to backend 2022-10-21 19:35:17 +02:00
Robin Gareus 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
Robin Gareus ace2cc095c
Fix typo in 7fb82690b 2022-10-21 18:04:11 +02:00
Robin Gareus 7fb82690bd
Fix Windows builds (uname is POSIX only) 2022-10-21 17:11:38 +02:00
Paul Davis 5d7b421a0b remove debug output 2022-10-21 07:55:24 -06:00
Paul Davis cf83815133 add clear-all-cues item to cue marker ruler context menu 2022-10-21 07:52:23 -06:00
Paul Davis d69a2c3c13 small change to Locations::clear_cue_markers() API to bring it into line with other clear_* methods 2022-10-21 07:51:53 -06:00
Robin Gareus a327e01ff3
Fix copy/paste (is_cue_marker Lua binding) 2022-10-21 13:06:22 +02:00
Robin Gareus 6a55146fdc
Fix music-time parameter automation #9019
Music-time has a significantly reduced resolution.
When evaluating parameter automation using sample-time, different
samples can be mapped back to the same beat-tick. This can result in
endless loops.

The same automation event is found again:

```
start: 112640 next_event.when: b13334 -> dist a5892029@a662323200 in dist.samples: 1002
start: 113642 next_event.when: b13334 -> dist a269@a668214960 dist.samples: 0
```

Note this fix may not be correct, since time-domains are mixed.
"end" is using sample-time. Furthermore The loop is only entered
if there is an event found using  timepos_t(start).

Further work will be required (ideally use the same resolution for
all time-domains, or force everything that is evaluated in RT-context
to a single time-domain)
2022-10-21 12:40:30 +02:00
Robin Gareus b634cbba4c
Shrink connection matrix tabs
Program-name is not required to indicate "Tracks", "Busses", etc
Those are always by provided by PROGRAM_NAME.

"Other" really indicates external JACK (or Pipewire) applications.
Here "External" is a better label.

"Misc" can potentially be interpreted ambiguously, hence keeping
PROGRAM_NAME is useful.
2022-10-21 01:37:35 +02:00
Robin Gareus 23da78c013
Separate I/O Pre and Post plugins to dedicated matrix tabs 2022-10-21 01:22:45 +02:00
Paul Davis 3447869f21 fix for initial value of insert/remove time duration clock 2022-10-20 14:04:50 -06:00
Robin Gareus 1faefb5afd
Implement simple/quick export dialog 2022-10-20 21:38:45 +02:00
Robin Gareus d585ef1319
Update export presets
* Add WAV export preset
* Add mp3 export preset
* clarify "CD" preset name
2022-10-20 21:38:45 +02:00
Robin Gareus 5c05e8d047
Prepare ExportPresetSelector read-only mode (for quick export) 2022-10-20 21:38:45 +02:00
Robin Gareus 56fd2a299f
NO-OP: clang-format 2022-10-20 21:38:44 +02:00
Robin Gareus 506528a70c
Add API to query current export preset 2022-10-20 21:38:40 +02:00
Paul Davis 6ba740d37a add freesound dir to prepopulated dirs in clip list 2022-10-20 12:49:19 -06:00
Robin Gareus 91309619b8
Pingback: remove unused CPU/OS version detection
OS specific versions part of a http query has been Ardour
only. Mixbus never posted any of this information. The section
was #ifdef'ed out. Removing this code for good, simplifies merges.
2022-10-20 19:44:15 +02:00
Robin Gareus 19e190cc93
Improve connection button labels for internal connections
* Update button when the name of a connected route changes
* Indicate partial internal connections (previously only the
  client name ("ardour") was displayed.
* Escape markup in I/O plugin and client names
* Refactor code, use a common base-class for route and
  route-less I/O Buttons
2022-10-20 18:55:21 +02:00
Alexandre Prokoudine de84ac2d6f Update Russian translation 2022-10-20 15:29:49 +03:00
Paul Davis 73ab0d3472 change pingback URL and no longer send OS release or machine info (GUI edition) 2022-10-19 20:26:39 -06:00
Paul Davis 63677347c9 change pingback URL and no longer send OS release or machine info 2022-10-19 20:26:39 -06:00
Paul Davis 39c6ea6813 editor region list: allow name column to be resizable 2022-10-19 20:26:39 -06:00
Robin Gareus b75be7f975
Another attempt for ssl-cert support on RHEL/Fedora #9005
When /etc/pki/tls/certs/ca-bundle.crt exists, jus use
that file and do not set any PATHs. Disable default
built-in /etc/ssl/certs
2022-10-19 18:23:03 +02:00
Robin Gareus 9914732004
Potential fix for C++20 std::set::* ambiguity
(until C++20) bool empty() const noexcept;
(since C++20) [[nodiscard]] bool empty() const noexcept;
2022-10-19 16:06:47 +02:00
Robin Gareus 22829e96b1
Fix MIDI Clock sync
This fixes a deadlock, because tempo-map write copy
was not released. A later call to TempoMap::write_copy
will deadlock and in this case also hold the process lock.

This can happen if there is more than one tempo on the
timeline or if the tempo-difference is too large.
2022-10-18 20:44:16 +02:00
Robin Gareus 073d6f5e80
Disable cert check if no SSL certs are found (#9005) 2022-10-18 19:37:06 +02:00
Robin Gareus 54a98cd320
Remove visible spacer right of the mini-timeline
This improves consistency, the center widgets are already
visibly separated by their background.
2022-10-18 02:14:31 +02:00