Commit Graph

22372 Commits

Author SHA1 Message Date
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
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
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
663693ed11 Add missing Lua bindings for Route Import 2026-01-09 00:41:50 +01:00
Franke Burgarino
7379cec4ef Fix typos 2026-01-08 11:05:47 -06: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
Robin Gareus
253f883521 NO-OP: Remove unused header 2026-01-07 13:53:24 +01:00
Robin Gareus
7d7ac589e3 Add "empty" check to BasicUI 2026-01-07 13:52:51 +01:00
Franke Burgarino
8c745ff78c MCU: Fix "Disabled" option for Function Keys
Choosing some option and then trying to remove it by clicking "Disabled"
previously did nothing. Now sets it back to blank. Also fixed for Tascam
US-2400.
2026-01-06 17:07:09 -06:00
Robin Gareus
3f9fe81da9 Extend ctrl surface API to be more flexible when creating markers 2026-01-06 21:21:56 +01:00
Paul Davis
ee4d673da1 minor change in exception handling while testing issue on macOS 2026-01-06 10:13:17 -07:00
Paul Davis
7e9c73b807 gtkmm2ext: fix a bug that can arise when using ad-hoc Gtk::Actions with non-standard paths 2026-01-05 16:23:17 -07:00
Robin Gareus
e1c21bc619 Expose some Session statistics as Lua bindings 2026-01-06 00:05:09 +01:00
Robin Gareus
30d97eb92d Add method to check if Session is empty
Empty means that it contains some tracks or user-addedd
busses or VCA (not counting master, monitor, surround busses).

This is motivated by A&H control-surface.
2026-01-06 00:03:05 +01:00
Damien Zammit
dc7a95c54f import_pt: Fix for multichannel tracks and regions #9705
Also speeds up PT imports during region creation.
This is because regions are imported immediately when sources
are grouped into multichannels rather than doing it in another pass
2026-01-06 09:19:21 +11:00
Damien Zammit
d1ffeb7038 import_pt: Use new bulk create method for adding tracks #9730
Speeds up imports tremendously.
2026-01-06 09:19:03 +11:00
Damien Zammit
27653eaeba session: Add new_audio_routes_tracks_bulk() method
This allows bulk creating tracks with different name templates.
Simply call the bulk method multiple times as required and finally
call add_routes() once.
2026-01-06 09:15:27 +11:00
Colin Fletcher
f026a8acbf soundcloud, freesound: use correct curl option for progress bars
Although setting CURLOPT_PROGRESSDATA appears to work to set the pointer
passed into the new CURL_XFERINFOFUNCTION option, the documented option is
now CURLOPT_XFERINFODATA.
2026-01-05 18:09:15 +00:00
Robin Gareus
f5e48a6bda Update curl to use new API (1/2) 2026-01-05 16:41:17 +01:00
Robin Gareus
ab724881e3 Remove unused deprecated GTimeVal in global header
This significantly reduces compiler warnings..
2026-01-05 03:33:02 +01:00
Martin Vlk
1420b67edb Czech translation updates for v9.0 2026-01-03 15:22:48 +01:00
Paul Davis
9855a23903 MIDI triggers: make sure velocity scaling is not cumulative (see comments) 2026-01-02 17:32:48 -07:00
Paul Davis
267efab6e8 remove typo from magit process 2026-01-01 20:29:06 -07:00
Paul Davis
a144d3e80d temporal: when resetting the tempo map, stop at BBT markers
This was always the intended behavior, but not implemented even
close to that intention.
2026-01-01 20:11:12 -07:00
Paul Davis
bbf5bd6043 temporal: provide a map to get the BBT reference point before a superclock time 2026-01-01 20:11:12 -07:00
Paul Davis
52c7d6ab77 temporal: customize the implementation of get_tempo_and_meter for BBT_Time
We must not walk past a MusicTimePoint if the reftime is a BBT_Argument.

May try to fold this back into the fully-templated version in a subsequent commit.
2026-01-01 20:11:12 -07:00
Paul Davis
e53ba509df temporal: move operator<< for tempo map types before TempoMap
This allows us to use them inside the header when defining
TempoMap methods there.
2026-01-01 20:11:12 -07:00
Paul Davis
2be3421576 include AnyTime::BBT_Offset in handled cases, even if we just fatal()-out 2026-01-01 20:11:12 -07:00
Robin Gareus
8c81e40028 Amend 45b940d (v2 session bus convert) 2026-01-01 23:19:11 +01:00
Robin Gareus
45b940d648 Convert v2 and v3 busses to modern Ardour #10089 2026-01-01 22:28:52 +01:00
Robin Gareus
5677d30d3e Fix loading 2.x sessions (forced set_active toggle) 2026-01-01 22:17:21 +01:00
Ayan Shafqat
730e4425dc aarch64: apply absolute value to peak computation 2025-12-30 10:51:29 -05:00
Ayan Shafqat
98eab68044 aarch64: fix unaligned count and peak computation
Clamp misaligned prefix loops to the remaining frame count to avoid
nframes underflow and potential out-of-bounds access for small buffers.

Apply vabsq_f32() to all SIMD loads before peak reduction to ensure
correct absolute peak calculation in unrolled NEON paths.
2025-12-29 20:12:43 -05:00
Paul Davis
bb973f18dc remove debug output 2025-12-29 15:56:56 -07:00
Paul Davis
c8a4260f5c rename some variables in Session::import_files to make their purpose more clear 2025-12-29 15:51:04 -07:00
Paul Davis
1ee76f4178 Fix for importing SMF Type 1 files with one track containing only meta-data (#10076)
This fails when done via direct import into a cue slot which assumes that all sources created
must be associated with the region, and that each source must have a model.

This change drops the metadata-only track/source from being returned by Session::import_files()

Note that in order to avoid refcnt'ing from prolonging the life of the source we want to drop,
we do not announce the sources when they are created, but defer that until we know they are
going to be used post-import
2025-12-29 15:48:38 -07:00
Paul Davis
30de221be5 libardour: add FileSource::mark_removable()
This might not actually be necessary, but the symmetry is nice
2025-12-29 15:40:01 -07:00
Paul Davis
8f815e21ea temporal: rename Point::sample() to Point::sample_is_dangerous()
It is risky to take the sample value returned by this method and then convert it back
to either superclocks or beats, mostly because tempo & meter times are generally in
music time, and converting from superclocks to samples loses precision.

This rename is there to serve as a reminder to developers to be careful when using
this method
2025-12-29 09:14:02 -07:00
Robin Gareus
41c90a2063 Fix MIDI import edge-case when doubling allocation is insufficient
MIDI file from #10079 - see also 65332e603b
2025-12-29 09:23:56 +01:00
Paul Davis
369fc2c15c temporal: fix a major thinko when removing/replacing map points
Despite comments already in the code, the logic used to remove a
{Tempo,Meter,BarTime} point from the _points list was incorrect. While it is
true that we can use a duple of (type,time) to find a given point,
::remove_point() was not doing that and instead assumed just the time value
could be used.

This meant that if you placed a tempo and meter at the same point in time, then
changed one of them, ::remove_point() could remove the wrong point from the
_points list.

In #10063 this manifests as the wrong grid being drawn after a tempo point
edit.

This commit alters the ::core_remove_xxx() methods to return a pointer to the
actual Point object that was removed from {_tempos,_meters,_bartimes} and then
we pass that to ::remove_point() for lookup and removal by address.

It also "fixes" a couple of instances of ::core_remove_xxx() without any
removal from the _points list (since ::core_remove_tempo() and
::core_remove_meter() do not do this; ::core_remove_bartime() does,
however). It is not immediately obvious what bad behavior would arise from the
existing code in these cases, but it seems clearly incorrect that the _points
list would contain points no longer present in _tempos or _meters.
2025-12-27 12:14:49 -07:00
Paul Davis
f1b80cdbe1 temporal: add & use a couple of TempMap methods for unit testing 2025-12-27 12:14:49 -07:00