Commit graph

40987 commits

Author SHA1 Message Date
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
Robin Gareus
0d69983a29
Fix comment editor window title 2025-06-19 01:14:48 +02:00
Paul Davis
66f93e70cd add automation.bindings to fmt-bindings script 2025-06-17 14:03:43 -06:00
Paul Davis
c6a49fdd50 basic implementation of Live-style kbd-driven automation editing 2025-06-17 14: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
Robin Gareus
35851d0cc8
Fix opening links to in prefs notes (e.g. VST spec)
gtk's default URL open does not work on recent macOS and
Windows.
2025-06-17 18:40:51 +02: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
73f4378a51 more adjustments to scroomer drag logic
1. use an idle callback
2. MidiViewBackground::apply_note_range() now returns true/false
depending on whether or not it was able to make the requested change.
It might fail due to out of bounds note line size, for example.
2025-06-16 23:01:10 -06:00
Paul Davis
b5f5aeafe7 use C++11 style iterator 2025-06-16 23:01:10 -06:00
Robin Gareus
9d17303199
Add auto-input tooltip 2025-06-16 23:42:06 +02:00
Paul Davis
9342886e48 fix thinko in MidiView::pick_visible_channel() ... no data, channel is 0, not 16 2025-06-16 10:47:25 -06: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
Paul Davis
ea1695dbc0 code refactoring and action name handling to make follow-playhead work in multiple editing contexts 2025-06-15 21:17:42 -06:00
Paul Davis
f48fe3f740 numerous fix ups to the behavior of button presses in any pianoroll header 2025-06-13 17:20:09 -06:00
Paul Davis
4aedc6f882 make sure Pianoroll background gets the data range set when a region is set 2025-06-13 17:20:09 -06:00
Paul Davis
28eaf90790 if in internal editing mouse mode, MidiRegionView is merely outlined, not filled, with selectionc olor 2025-06-13 17:20:09 -06:00
Paul Davis
796497b355 remove debug output 2025-06-13 17:20:09 -06:00
Paul Davis
49597c6e2c do no modify data note range in MidiViewBackground based on user requests 2025-06-13 17:20:09 -06:00
Robin Gareus
7573681cff
Backport some of Mixbus' editor-toolbar changes
* minimize diff by using abstract space/border constant
* switch nudge clock layout - clock in the middle
* remove Profile->get_mixbus() where no longer needed
2025-06-14 00:08:20 +02:00
Robin Gareus
ee8a2fc970
Fix librubberband API detection #9948 2025-06-13 21:51:49 +02:00
Robin Gareus
238728ffc1
Dissolve the Common Ardour Widows club :) 2025-06-13 21:50:18 +02:00
Robin Gareus
3b3ce7e3ea
Expose RTA in main and context menu 2025-06-13 17:37:34 +02:00
Robin Gareus
86a0bfdeab
Use consistent label for MIDI channel (main toolbar and pianoroll) 2025-06-13 17:16:59 +02: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
Robin Gareus
fcae7c7bb5
Transfer slot_prop_box to selection_properties_box 2025-06-12 22:46:14 +02:00
Robin Gareus
4c5284737d
Use action to toggle follow playhead 2025-06-12 22:19:14 +02:00
Robin Gareus
666a32499c
Move the follow_edits from toolbar to editor context bar 2025-06-12 22:11:33 +02:00
Ben Loftis
be0d79089b
A 'new' user should initialize the NSD to 'New', in Mixbus 2025-06-12 21:35:35 +02:00
Paul Davis
27796ddefb use new follow playhead icon 2025-06-12 12:52:13 -06:00
Paul Davis
08da5255fe tweak EditingContext APIs to get context menus in pianoroll working sensibly
There is now a separate context menu for note-context clicks and "region" context clicks.
Something similar may be desirable for timeline editing too
2025-06-12 12:09:11 -06: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
Ben Loftis
abdae636eb
Group tabs should match the size of a generic ArdourButton 2025-06-12 18:05:14 +02:00
Ben Loftis
dc7c594a93
EventBoxen must be EventBoxExt or they bleed on mac/GL 2025-06-12 17:45:32 +02:00
Robin Gareus
4c03ecbd85
Handle edge case (optional toolbar meter)
in derivative projects it can happen that the meter is never
packaged in the custom toolbar. In Ardour this can happen
for sessions without master bus.
2025-06-12 17:45:09 +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
Paul Davis
15079176ac get note display working in pianoroll PRH (needs set_visible_channel()) 2025-06-11 11:54:33 -06: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
c71e0781c9
Allow the session range to be themed 2025-06-10 21:18:36 +02:00