Commit Graph

41972 Commits

Author SHA1 Message Date
Paul Davis
e309663df6 when MIDI port flags change, session bundles must be rebuilt 2026-01-14 13:27:45 -07:00
Paul Davis
c505ad1b1e portmanager: minor code tweaks for efficiency and style guide 2026-01-14 13:26:54 -07:00
jean-emmanuel
14c68a5577 color theme: reset color aliases before loading a theme file 2026-01-14 14:13:29 +01:00
Paul Davis
07bb9b70b5 NO-OP: no need for newlines here 2026-01-13 22:47:12 -07:00
Paul Davis
979ae7d97d fix up ownership of "color mode" which got confused during EditingContext refactor 2026-01-13 22:46:54 -07:00
Paul Davis
20542439e7 fix up ownership of "region color" which got confused during EditingContext refactor 2026-01-13 22:46:16 -07:00
Paul Davis
653468366b make pasting (via Primary-v at least) work in the pianoroll 2026-01-13 12:20:22 -07:00
Paul Davis
6cea1ef4a1 minor tweaks to DEBUG::CutNPaste output 2026-01-13 12:20:22 -07:00
Robin Gareus
2a395aead5 Relax fluidsynth's sample-rate constraint
Allow for 192kHz session (needs testing, by ear and
by down-sampling to 48k vs. running directly at 48k, etc)
Also prevent plugin from loading when sample-rate is out of bounds.

Previously the plugin loaded but was pitched up when the sample
rate exceeded 96k.
2026-01-13 15:00:17 +01:00
Robin Gareus
54e45ad50c Bump required libcurl version
Note that 7.55.0 was released in August 2017
2026-01-13 06:10:58 +01:00
Robin Gareus
53cd5e34c4 Update another deprecated libcurl API
'CURLINFO_CONTENT_LENGTH_DOWNLOAD' is deprecated: since 7.55.0.
Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
2026-01-13 06:08:30 +01:00
Robin Gareus
1d04fa5a39 Prepare reporting proper archiving errors
Can we break the -rc string freeze for this?
2026-01-13 01:11:34 +01:00
Robin Gareus
dc54c57176 Handle libarchive errors #10121
This properly handles missing write permissions (that previously
crashed when trying to close the archive).
Also report and error on disk-full or other write failures
such as 4GB file limit.
2026-01-13 01:11:33 +01:00
Paul Davis
6359b6c5b0 pianoroll: follow code guidelines via early exits for null view 2026-01-12 14:29:01 -07:00
Robin Gareus
1f96930a44 Correctly sensitive solo/listen config boxes at session load 2026-01-12 20:58:54 +01:00
Paul Davis
9f5c575156 fix logic of showing/hiding active/inactive pianoroll automation 2026-01-12 12:46:43 -07:00
Paul Davis
d16244d25e swallow all events in pianoroll automation group if there's no active automation 2026-01-12 12:46:43 -07:00
Robin Gareus
e381c29281 Fix registering .ardour file extension
This is mainly relevant for derivative projects, where .ardour
isn't opened with "ardour" :)
2026-01-11 21:51:23 +01:00
John Emmas
e486338a19 Specify a path when including 'gdk.h' 2026-01-11 11:21:33 +00:00
Paul Davis
e7b2b4fc5e NO-OP: rename goto label with clearer terminology 2026-01-09 20:07:06 -07:00
Paul Davis
1401c6e45a temporal: handle a special condition where the got added in 6bc2261575 should not be used 2026-01-09 20:06:41 -07:00
Paul Davis
21cb25263a NO-OP: remove double semicolon 2026-01-09 19:45:18 -07:00
Paul Davis
a3836cbd35 CueEditor: fix ::set_zoom_focus() to do the right thing
This had left-over code from when this method was invoked by a set of
radio actions. That is no longer true, ::zoom_focus_chosen() is now used
2026-01-09 19:45:18 -07:00
Robin Gareus
2bfdbc161b Fix heap-use-after-free when drawing automation events
When drawing over existing automation it can happen that the
range that is being replaced is currently being in the lookup
cache.
2026-01-10 03:43:07 +01:00
Paul Davis
b4ba3d2b9f remove debug output 2026-01-09 18:02:39 -07:00
Paul Davis
9d2c755f69 successfully import SMF files with badly-formed time signature events 2026-01-09 18:00:47 -07:00
Paul Davis
3890eb7f0e remove some compiler warnings caused by debug/runtime error output 2026-01-09 18:00:47 -07:00
Franke Burgarino
d774535fe9 Fix reverse iterator issue caught by ASAN
This issue could be seen when dragging an arrangement marker beyond the
bottom of the list in the right edge.

IIUC, std::reverse_iterator<Iter>::operator* creates a temporary iterator
which it then dereferences. This is a problem because what we are
derefencing is a Gtk::TreeIter<Gtk::TreeRow>. gtkmm documentation for
Gtk::TreeIter< T >::operator* states, "The returned reference is
implemented by casting from *this, and so the returned reference is only
valid while this iter is." Additionally, cpp documentation for
std::reverse_iterator states, "std::reverse_iterator does not work with
iterators whose dereference returns a reference to a member of *this."

We also are not advancing this iterator at all, so whether it is reverse
or not is irrelevant (we just want the last one). Thus, *prev(rows.end ())
instead of *rows.rbegin ().
2026-01-09 14:19:29 -06:00
Robin Gareus
cb807dcb11 Update themes, make transport option button state visible
https://discourse.ardour.org/t/new-playhead-toggle-button-to-go-with-new-ones-recently-added-to-version-9/112738/5
2026-01-09 19:19:38 +01:00
Paul Davis
0d1c4ee5ed escape plugin name text in missing plugin dialog 2026-01-09 11:09:52 -07:00
Paul Davis
4232983809 temporal: write down things that I have learned 2026-01-09 11:03:18 -07:00
Paul Davis
c8ec52e707 temporal: improve/extend debugging for DEBUG::Grid 2026-01-09 10:53:18 -07:00
Paul Davis
6bc2261575 temporal: fix incorrect logic in TempoMap::fill_grid_by_walking()
If walking the grid by bar, but points are closer than that, we could end up
with the wrong TempoMetric being used to compute various time domain
conversions (which tends to leads to abort()).

This small change makes sure that we keep looking for more points if we have
not yet reached the next grid point (e.g. bar).
2026-01-09 10:53:18 -07:00
Robin Gareus
943623f027 Amend b4373dafda fix redefined macro warning 2026-01-09 18:24:19 +01:00
Robin Gareus
265018601a Lua doc: properly split std::map<> as function argument 2026-01-09 00:41:50 +01:00
Robin Gareus
663693ed11 Add missing Lua bindings for Route Import 2026-01-09 00:41:50 +01:00
Robin Gareus
b4373dafda Add missing Lua Bindings for UIConfig 2026-01-09 00:41:50 +01:00
Paul Davis
183d4741e8 do not use shared_ptr<T> to manage GUI objects
This fixes a design mistake made way back in 2009 (80e3845982) that for
reasons now unknown used std::shared_ptr<T> to manage sysex and patch change
canvas items. This is incompatible with the overall (current) design of the
canvas, and in particular the idea that a container can be told to delete
its children.

This supplements the reversion done in e664fa5e63 and fixes crashes
caused by double-free's in sessions with sysex and patch changes displayed
in pianorolls
2026-01-08 11:38:26 -07:00
Franke Burgarino
7379cec4ef Fix typos 2026-01-08 11:05:47 -06:00
Robin Gareus
62870e5c9a Add action to print keyboard shortcuts 2026-01-08 17:24:59 +01:00
Robin Gareus
c2a01645b4 Print action list using mono-space text (and proper line spacing) 2026-01-08 17:05:32 +01:00
Robin Gareus
0be808ec3c Add option to skip printing action list 2026-01-08 16:55:13 +01:00
Robin Gareus
c86bb05945 Properly match Launchkey interface/device names #10109 2026-01-08 16:15:54 +01:00
Robin Gareus
3ba1a8087e Tweak keybindings print layout
This addresses issues with US-Letter format where headings
may have line-breaks. With a line-height < 1 text overlaps.
2026-01-08 14:40:05 +01:00
Paul Davis
5d3ee78e1e pianoroll: move protection domain of method (modify bb869cc178) 2026-01-07 21:37:02 -07:00
Paul Davis
bb869cc178 pianoroll: better method structure 2026-01-07 21:32:52 -07:00
Paul Davis
68f5da6434 pianoroll: further improvements to layered/non-layered automation display + editing 2026-01-07 21:24:13 -07:00
Paul Davis
33bd9e5aad pianoroll: basics of adding a layered automation control button
This breaks string freeze with one word
2026-01-07 12:05:08 -07:00
Paul Davis
2177252463 use a theme color for pianoroll automation buttons 2026-01-07 10:55:28 -07:00
Paul Davis
51256ad7c6 pianoroll: correctly hide (etc.) automation when switching regions 2026-01-07 09:16:41 -07:00