Paul Davis
b205c0bc4b
scoped tempo maps: logic fixes and some comment-documentation
2025-08-12 07:53:30 -06:00
Paul Davis
2fc669964e
Revert "A new class ('ScopedTempoMapOwner') exposes functions which need to be visible outside of libtemporal"
...
This reverts commit d3a15b11ba .
This arrived at an awkward time as ScopedTempoMapOwner was being rearranged at
the source level. It will be reapplied in a subsequent commit.
2025-08-12 07:15:17 -06:00
John Emmas
d3a15b11ba
A new class ('ScopedTempoMapOwner') exposes functions which need to be visible outside of libtemporal
...
(and since there's no 'scope.cc', libtemporal itself needs to #include scope.h for those symbols to get exported)
2025-08-12 13:19:24 +01:00
Paul Davis
63f0ddb064
finish registration of region tempo/meter properties
2025-08-11 21:29:21 -06:00
Paul Davis
ec61deaa8a
macro to stop local tempo map code from doing anything
2025-08-11 18:05:24 -06:00
Paul Davis
dd41fddcad
temporal: fix up some logic relating to scoped tempo maps
2025-08-11 15:41:34 -06:00
Paul Davis
023290b99d
temporal: add sanity check to TempoMap::fetch()
...
Threads should never call ::fetch() if they have a local tempo map in
use.
2025-08-11 15:41:34 -06:00
Paul Davis
1ecbdf164d
moved scoped tempo map from GUI to libtemporal
2025-08-11 15:41:34 -06:00
Robin Gareus
582a1e8186
Fix timecode update after locate for demo version
...
ref. 1d48648a73
2025-08-11 16:00:13 +02:00
Paul Davis
ae6acb7f42
regions can create their own tempo map
2025-08-10 07:55:39 -06:00
Paul Davis
832683cb01
region tempo and meter are optional
2025-08-10 07:55:39 -06:00
Paul Davis
7ff9460d7c
actually define Region tempo/meter properties
2025-08-09 20:47:38 -06:00
Paul Davis
95006c085c
add set_tempo/set_meter() methods to Region
2025-08-09 20:16:54 -06:00
Paul Davis
89a26e224a
add properties for region tempo and meter
2025-08-09 18:41:53 -06:00
Paul Davis
af5ab40bf2
use DEBUG::TempoEstimation
2025-08-08 23:34:31 -06:00
Paul Davis
217890cf85
add DEBUG::TempoEstimation to libardour
2025-08-08 23:29:55 -06:00
Paul Davis
4586b39e8b
add a method to compute tempo & meter for an audio source (not used yet)
2025-08-08 23:11:59 -06:00
Paul Davis
577cdd5f61
MIDITrigger::get_segment_descriptor() does something sensible with Region tempo/meter
2025-08-08 22:26:35 -06:00
Paul Davis
be913373cb
give MIDIRegion a tempo/meter based on their SMF or the SMF standard (120, 4/4)
2025-08-08 22:26:04 -06:00
Paul Davis
cec3db54f0
refactor AudioTrigger::estimate_tempo() into ARDOUR::estimate_audio_tempo()
2025-08-08 17:52:59 -06:00
Franke Burgarino
c59dddfdae
MCU: add scrolling in eq subview
2025-08-08 16:57:49 -05:00
Franke Burgarino
900706320c
MCU: change 'Strip::notify_eq_type_changed()' to 'Strip::notify_subview_type_changed()' since it applies to dynamics as well
2025-08-08 16:57:49 -05:00
Franke Burgarino
947223fdfb
MCU: rename/reorder dynamics subview controls
2025-08-08 16:57:49 -05:00
Franke Burgarino
c61cbe8b02
MCU: move filter controls from dynamics subview to eq subview
2025-08-08 16:57:49 -05:00
Paul Davis
20269df975
Regions get their own tempo and meter
...
This defaults to the usual 120bpm 4/4 but is also not used anywhere yet
2025-08-08 15:46:17 -06:00
Robin Gareus
2be15f035d
Fix Lua Bindings (amend 1ca53a99d9)
...
Already registered classes can be extended as-is.
Deriving them again will override previous bindings.
2025-08-08 12:09:14 +02:00
Franke Burgarino
e3710bd0a2
MCU: allow scrolling to gate controls in the dynamics subview
2025-08-07 16:16:19 -05:00
Franke Burgarino
dfa12dedcd
MCU: make dynamics subview show actual values
2025-08-07 16:04:40 -05:00
Paul Davis
b5f1c5b0dd
Fix potential infinite loop when iterating over ControlLists
...
If you have the "wrong" kind of MIDI CC, the interpolation for the list is set
to Linear, which causes interpolation to return audio time stamps instead of
beat time. Because of the asymmetrical transforms, this causes iterators over
the Sequence to go haywire and create an infinite loop.
This fix changes ControlList behavior to always return times in the time domain
of the list.
2025-08-07 12:49:18 -06:00
Franke Burgarino
7df7f98566
MCU: fix formatting
2025-08-06 17:26:49 -05:00
Franke Burgarino
157031ae71
MCU: make EQ subview show actual values, not just decimal between 0 and 1
2025-08-06 16:09:34 -05:00
Paul Davis
d7b490143a
add comment on why _superclock_ticks_per_second is initializedto zero
2025-08-06 15:06:14 -06:00
Robin Gareus
a7e9b8b2a7
Update well-known ctrls and add Lua bindings
2025-08-06 21:15:24 +02:00
Robin Gareus
f4da0ff76d
Fix MIDI panic timestamp at cycle-end
...
Previousy stopping, locating or looping in the middle of
an active MIDI note would generate unordered MIDI events
on the port. "it's too late for this event".
Usually caused by the MIDI state tracker adding a Note-Off
at cycle end and then MidiPort::resolve_notes adding a panic
message at cycle-start...
2025-08-06 04:56:38 +02:00
Robin Gareus
a250bd4e76
Allow to select inactive tracks
...
This is a prerequisite to allow to remove inactive tracks,
and operate on multiple selected inactive tracks (show/hide).
2025-08-05 23:16:02 +02:00
Paul Davis
b80b4b7869
remove debugging output
2025-08-05 11:42:23 -06:00
Paul Davis
60d8e1b817
SMF: use new TempoMap::smf_*() API to build tempo map from smf info
2025-08-05 11:37:35 -06:00
Paul Davis
b65adb59cd
temporal: fix some subtle misbehavior in TempoMap::cut_copy()
2025-08-05 11:37:35 -06:00
Paul Davis
0f1c5a9d7d
temporal: add new smf_*() API for building a tempo map from SMF info
2025-08-05 11:37:35 -06:00
Paul Davis
ba00dc0920
temporal: add TempoMap::duration() method
2025-08-05 11:37:35 -06:00
Robin Gareus
38be8c2746
Amend # 96431aa0d, use non-relative port-name to store connections
2025-08-03 16:14:54 +02:00
Robin Gareus
96431aa0d6
Fix #9961 , update saved port-name references when renaming ports
...
Since internal connections are saved by port-name, renaming a port
also needs to update references that other ports have.
2025-08-02 02:25:36 +02:00
Paul Davis
b6f1ff336e
when adding a tempo/meter at end of map, no reset necessary
...
Also, the reset would malfunction which really ought to be fixed
2025-07-30 22:18:12 -06:00
Paul Davis
59f58946a9
correct math for setting SMF-imported tempo/meter positions
2025-07-30 22:17:33 -06:00
Paul Davis
bda4d195f1
remove erroneous debug line
2025-07-30 16:04:00 -06:00
Paul Davis
c9e4c405e1
followup to previous commit, enabling AudioTriggers to be cleared and then recorded
2025-07-30 15:28:46 -06:00
Paul Davis
7088022401
triggerbox: fix up slot clearing so that a cleared slot is recordable
...
There may be a race condition here: clearing a slot just before it
is being chosen in another thread as the next to run.
2025-07-30 15:28:46 -06:00
Robin Gareus
d1fd5452c9
Amend 0742fd8563, check if click_gain() is not null
2025-07-30 04:40:04 +02:00
Paul Davis
0b0dde46e0
waveview is the only type of canvas item that needs prepare for render
...
Also, virtual keyword in derived classes is redundant
2025-07-29 18:16:35 -06:00
Paul Davis
6c499b180b
canvas: add a method to prevent extensive item coordinate math during ::prepare_for_render_children()
...
Also, auto-ify a loop in Item::prepare_for_render_children()
2025-07-29 18:16:35 -06:00