Commit Graph

21948 Commits

Author SHA1 Message Date
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
Paul Davis
9f49e6379d ArdourDropdown: new utility methods 2025-07-29 18:16:35 -06:00
Paul Davis
5b7b3860b8 NO-OP: function call whitespace niggle 2025-07-29 18:16:35 -06:00
Paul Davis
458c54990b gtkmm2ext: change action registration functions to return ToggleAction or RadioAction 2025-07-29 18:16:35 -06:00
Paul Davis
ddcb6fe3a6 add operator== for TriggerReference 2025-07-29 18:16:35 -06:00
Paul Davis
922b961672 auto-fication of a loop in Canvas::Item plus some variable renaming 2025-07-29 18:16:35 -06:00
Franke Burgarino
0fc28d3872 MCU: update controls when EQ type changes 2025-07-29 23:11:20 +02:00
Robin Gareus
0742fd8563 OSC: fix crash when querying master-status on systems w/o metronome
This happens when master-feedback is enabled and /refresh message
is received and the metronme is disabled at compile-time
(eg. LiveTrax)
2025-07-29 23:08:51 +02:00
Robin Gareus
d82861954d Console 1: update API to match recent Mixbus 2025-07-29 06:16:12 +02:00
Robin Gareus
1ca53a99d9 Lua: special case non-rt safe bindings
* add bindings to save track-template
* make some non-rt safe bindings only available to UI scripts
2025-07-28 15:20:28 +02:00
Robin Gareus
91bd8e63bf Commitibus omnibus: API mutare 2025-07-28 15:10:38 +02:00
Robin Gareus
00efab1264 Amend 109c3edb42, require JACK-2 headers to build 2025-07-28 15:02:59 +02:00
Robin Gareus
0759c34b7d VST3: Allow IRunLoop to query itself
For whatever reason renoise_redux.vst3 requires this, and
otherwise complains that the host does not implement IRunLoop
interface, which the plugin already successfully retrieved
to make this query in the first place.
2025-07-24 13:48:19 +02:00
Hoger Dehnhardt
361d0374dc Suppress the mapping of unititialized controls in setup dialog 2025-07-22 21:59:43 +02:00
Robin Gareus
280e30ade9 NO-OP: whitespace and indent 2025-07-21 15:17:24 +02:00
Hoger Dehnhardt
710d01a63f Console1: Expose Mixbus SSL-EQ Q Control 2025-07-21 15:13:09 +02:00
Robin Gareus
91ea44e24e Remove Mixbus special case in upstream Ardour 2025-07-18 16:49:39 +02:00
Paul Davis
7be70d658b Revert "refactor pianoroll/cueeditor/audioclipeditor to share code and do the right stuff (compile success stage)"
This reverts commit 01beb00a5f.
2025-07-17 22:38:05 -06:00
Paul Davis
01beb00a5f refactor pianoroll/cueeditor/audioclipeditor to share code and do the right stuff (compile success stage) 2025-07-17 22:36:25 -06:00
Robin Gareus
74d7bf407a Add roll-will-loop option (as alternative to loop-is-mode)
This is mainly for the benefit of Mixbus (this option is not [yet]
available for Ardour, except for power users manually editing
the config).

This option is ostensibly exclusive with loop-is-mode, but an
enum seems not appropriate at this point in time.
2025-07-17 23:00:56 +02:00
Ben Loftis
ae56743b7d Tapereel icon should follow fg_color, not use hardcoded red 2025-07-16 16:39:38 +02:00
Robin Gareus
3cc13c1f1e Consolidate ArdourButton layout and size for derivative projects 2025-07-16 13:56:43 +02:00
Paul Davis
7cfc5d3d7d amend 0edba1f559 to restore algorithm design
The issue here was caused by 39949e778 which removed a reverse iteration
over the list of regions in order to get top-first ordering.
2025-07-14 10:21:44 -06:00
Paul Davis
b153add0ef enhanced DEBUG_TRACE messages for MIDI playlist rendering 2025-07-14 09:12:22 -06:00
Paul Davis
4b834d11b3 autofication 2025-07-14 09:12:07 -06:00
Paul Davis
0edba1f559 fix MIDI playlist rendering with opaque regions
regions are sorted lowest-first, not highest-first.
2025-07-14 09:11:42 -06:00