Commit graph

22007 commits

Author SHA1 Message Date
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
Paul Davis
ee4b68fc80 when clip recording, we are always monitoring input regardless of timeline rec modes 2025-07-13 21:26:26 -06:00
Paul Davis
f82a755a22 NoCamelCase method names (libs) 2025-07-12 10:51:46 -06:00
Robin Gareus
99c1f50a72
Really remove gtk+ option (see also 1e28ee9cc9)
After patching gtk/ytk to add touch support and macOS rendering,
upstream gtk+2 is no longer an option
2025-07-06 15:20:20 +02:00
Paul Davis
ea4616913c cocoa: experimentally, redraw entire window after deminimization 2025-07-05 08:34:08 -06:00
Robin Gareus
a0ba6e3dfb
Cache BundleChannel nchannels, allow lock-free calls 2025-07-01 17:46:17 +02:00
Paul Davis
02abf956d7 a better way to build ArdourDropdowns from Actions 2025-06-25 22:17:53 -06:00
Paul Davis
66a8776f98 fix InternalSend (and InterntalReturn) to allow fade out/MIDI mute
previously, as soon as the Send is disabled, it would short-circuit ::run(),
preventing the fade to zero to take effect. Now, the send will run until the
effective gain reaches zero, and the return will collect data from it until it
is fully deactivated.
2025-06-19 13:50:37 -06:00
Paul Davis
464ea0d31f fix Amp to send MIDI mute when the gain control is set to zero
Do not send MIDI mute from ::apply_gain(), which is too general and can end up
resending MIDI mute messages when the owner is muted.
2025-06-19 13:38:39 -06:00
Paul Davis
6b675bac18 for MIDI mute block in Delivery, add ALL_NOTES_OFF 2025-06-19 13:37:53 -06:00
Paul Davis
fc24c59eb9 refactor midi mute buffer sizing into a separate method for Delivery 2025-06-19 13:37:30 -06:00
Paul Davis
e45c2f616a modify Delivery::maybe_merge_midi_mute() to allow forcing the merge
In an internal send, this may be called with _current_gain not yet
at zero. So provide an extra argument to force the merge.
2025-06-19 13:36:50 -06:00
Paul Davis
4bf1202493 tiny optimization tweak and auto-fication for Amp::apply_simple_gain() 2025-06-19 09:13:25 -06:00
Paul Davis
8b09becf1d fix the way mute operates for MIDI tracks
our policy is that "mute works on outputs", which means that mute should have
no effect on what an instrument plugin does. However, MidiTrack::act_on_mute()
used to inject sustain=0 messages into the data flow, which would affect
the instrument plugin(s) in the track.

now, MidiTrack::act_on_mute() simply notifies all Delivery objects in the track
that a MIDI mute is needed via a channel mask. The Delivery objects notice this
during their ::run() method, and deliver the required MIDI events to their
output ports.

There is still a potential issue that Amp objects which notice they have been
muted also send a similar set of messages. This needs more investigation and
possibly other changes. But this commit allows a sustained note to return after
the track is muted midway through it.
2025-06-19 08:03:43 -06:00
Paul Davis
919ce6309c auto-ify the main processor loop in process_output_buffers() 2025-06-19 08:03:43 -06:00
Paul Davis
fc692f5680 Fix for timepos_t::earlier() - superclock_t vs.samplepos_t confusion 2025-06-17 14:03:43 -06:00
John Emmas
b795d36cd3 Avoid using 'boost::aligned_storage' which is known to be problematic in MSVC builds
MS initially believed the runtime issues might be fixable in VS2015 but in fact, Boost's alignment strategy and Microsoft's alignment strategy just turned out to be incompatible:-

https://www.boost.org/doc/libs/1_65_0/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
2025-06-17 09:02:24 +01:00
Paul Davis
1230e1258d code refactoring and action name handling to make follow-playhead work in multiple editing contexts (libs) 2025-06-15 21:18:06 -06:00
Robin Gareus
f64627da48
Fix include order TRACE_SETSESSION_NULL is defined in session_handle.h 2025-06-13 17:01:49 +02:00
Robin Gareus
704241dec2
Fix button corner radius math 2025-06-13 02:42:26 +02:00
Paul Davis
5223cbdc18 add new NSApplicationDelegate method to deal with warning on macOS Sonoma 2025-06-12 12:09:11 -06:00
Ben Loftis
aa5685c585
Add icons for editor toolbar buttons: follow*, show_auto_on_touch 2025-06-12 18:57:56 +02:00
Ben Loftis
f644b83f3f
Add new icons for LoopMode and AutoReturn 2025-06-12 18:57:27 +02:00
Robin Gareus
72cc6a3e69
Amend 877f603d92 (clang + execstack) 2025-06-12 02:25:43 +02:00
Robin Gareus
7c476f0468
Allow for blank separators 2025-06-11 23:57:55 +02:00
Robin Gareus
31a75af243
In the case where there is no pane-divider, add space at top 2025-06-11 20:25:37 +02:00
Ben Loftis
2ac2a4fd4c
(backport) loop and config icon should obey the fg_color they are provided 2025-06-11 19:21:07 +02:00
Robin Gareus
63bab272dc
Tweak cue/trigger icon to match weight of similar icons 2025-06-11 19:20:31 +02:00
Ben Loftis
9463eabfe4
Expose corner_mask variable for ArdourButtons 2025-06-10 21:18:36 +02:00
Robin Gareus
c02a7668d7
Tweaks rounded corners 2025-06-10 21:18:36 +02:00
Ben Loftis
8272c33fb8
Expose gtkmm rounded_functions for rounded_bottom_left/right 2025-06-10 21:18:36 +02:00
Ben Loftis
b397d48a56
Remove redundant logic for calculating button rg color 2025-06-10 21:18:36 +02:00
Ben Loftis
43b48467f8
Ardour_icon: shrink the stop icon to match the weight of Play 2025-06-10 21:18:36 +02:00
Robin Gareus
ccf3addf5a
Add spacer widget to maintain size with GUI scaling
This is intended for the (Mixbus) Group Bar
2025-06-10 21:18:35 +02:00
Ben Loftis
41fc50898e
Allow themeing of icon colors so they can be less severe
Note: this breaks some themes, notably light ones.
2025-06-10 21:18:35 +02:00
Ben Loftis
d9176fd862
Button-sizing Tweak:TransportIcon alternative to ExpandToSquare 2025-06-10 21:18:32 +02:00
Paul Davis
742f654fa4 StringCompletion: allow case-folded matching 2025-06-10 12:28:33 -06:00
Robin Gareus
877f603d92
Make execstack optional, and check clang's variant with space
see also ec5b06e63d
and https://discourse.ardour.org/t/fyi-ardour-9-doesnt-build-on-linux-using-clang/111896
2025-06-10 16:13:44 +02:00
Paul Davis
4eb9285659 allow StringCompletion to match anywhere 2025-06-08 09:14:33 -06:00
John Emmas
23c7d564e2 The new class 'StringCompletion' needs to be visible outside of gtkmm2ext 2025-06-08 11:51:43 +01:00
Paul Davis
4a827ef7ee remove new functions that are not actually used 2025-06-07 23:03:30 -06:00
Paul Davis
3ac59dc837 some helper APIs to find things in a Session 2025-06-07 21:10:30 -06:00