Paul Davis
48cd807e6a
change API of MidiSource::append_event_beats() to allow meta-event legality
...
Because we want a default argument of false, this involved the usual
inline-non-virtual-method-calls-virtual-with-no-default trick.
Also, do NOT append data to a MidiModel or change the length of an SMFSource
unless we know for sure that added that data to the SMF object.
2025-08-18 16:35:41 -06:00
Paul Davis
586ac7e447
add SMFSource::end_track() to provide source-level access to SMF method
2025-08-18 16:35:41 -06:00
Paul Davis
73065f814a
modify API of Evoral::SMF::append_event_beats() to add meta-event legality
...
If the (new) final argument is true, we allow writing SMF meta events to the
underlying libsmf object (which doesn't care one way or another).
2025-08-18 16:35:41 -06:00
Paul Davis
b60702e014
add Evoral::SMF::end_track()
...
This changes the assumption that an SMF object only refers to
a single track when being written.
::end_track() is used within begin::write()/end_write() pairs to mark the start
of a new SMF track.
2025-08-18 16:35:41 -06:00
Paul Davis
785047bf47
add Evoral::SMF::is_meta() to test for SMF meta events
...
These are not legal in "live" MIDI but are allowed in SMF files.
2025-08-18 16:35:41 -06:00
Paul Davis
e703cf2d73
use nullptr instead of zero in initializer
2025-08-18 16:35:41 -06:00
Robin Gareus
017ad176ad
Expand route properties on cue page when strip is selected
...
This is currently only for Mixbus' benefit, showing
the channelstrip and plugin(s); but may become relevant
for Ardour sometime.
2025-08-18 23:27:03 +02:00
Robin Gareus
8dfd116b58
Properly hide cue editors (unmap macOS GLCanvas views)
2025-08-18 23:25:44 +02:00
Robin Gareus
06a2b174dd
Fix crash at session close
...
see also 6672db97 . in theory re-assigning a sigc::connection
should disconnect the previous connection, but for yet
unknown reasons this does no happen here.
2025-08-18 23:25:43 +02:00
Paul Davis
a22a84cbee
SMF: return meta events, with size set to event size, but return value of zero
2025-08-18 12:47:26 -06:00
Paul Davis
bd34f1744d
add window geometry to region UI settings, and save after changes
...
Changes are detected in Pianoroll::canvas_allocate(), which is a proxy for window
geometry. Since Pianoroll doesn't own a window, this is not necessarily ideal, but it
works.
2025-08-18 12:47:25 -06:00
Edgar Aichinger
66599dac36
update german (gtk2_ardour only for now) translation
2025-08-17 17:47:35 +02:00
Robin Gareus
bdc4d6fb60
Potential fix for MSVC builds
2025-08-17 17:30:22 +02:00
Robin Gareus
6672db9794
Fix crash at session close - fix use-after-free
...
Pianoroll::maybe_update() was able to use _session
after session was already unset.
2025-08-17 06:34:31 +02:00
Robin Gareus
a91aa6ee9d
Except pianoroll CC metabuttons (w/submenu) from scrolling
2025-08-17 06:30:35 +02:00
Robin Gareus
26ca954574
Allow to scroll though meta-button items #9976
2025-08-17 06:29:31 +02:00
Robin Gareus
a83c83aef6
Overhaul persistent tooltip position #9979
...
* directly show at correct position
* honor multi-monitor boundaries
* hide on focus-out (e.g. switch desktops with visible
tooltip left it visible)
* remove unused `set_center_alignment` API
2025-08-17 02:55:25 +02:00
Robin Gareus
6b79d4ab98
Add option to hide rendered UI instructions #9975
2025-08-17 00:34:53 +02:00
Robin Gareus
a270ae2aa3
Fix VST3 spec link
2025-08-16 23:11:19 +02:00
Robin Gareus
d35faf052e
Add popup dialog when MMCSS threads are exhausted
2025-08-16 23:11:19 +02:00
Robin Gareus
92bcddb437
Emit Signal when MCSS Threads are exhausted
...
By default Windows has limit of 32 MMCSS threads.
Ardour uses MMCSS scheduling for for hardware I/O (audio and MIDI)
as well as for realtime process threads, and a user on a
recent machine may run into this limit.
2025-08-16 23:11:16 +02:00
Paul Davis
cf14fe75f2
add some debugging info to help diagnose a crash
2025-08-16 12:01:20 -06:00
Robin Gareus
5ffc3aa28b
Use PBD namespace for free CPU functions
...
Ideally never put methods in the global namespace
to prevent potential conflicts.
2025-08-15 22:10:31 +02:00
Robin Gareus
b1d5f065db
Add API to query max MMCSS threads on Windows
...
By default Windows limits the number of MMCSS threads to 32.
This can cause problems on modern systems with >= 32 cores,
when Ardour uses many process and I/O threads.
So far this is just a first step (query API)
2025-08-15 22:02:44 +02:00
Robin Gareus
648e8f9f00
Fix use-after free, and double-packing of proc-box (amend 844d45896)
2025-08-15 18:53:19 +02:00
Paul Davis
192c7a2f9a
fix for a subtle bug that led to track headers not expanding as intended
...
now that we use action-as-state, there was no way to look up the old
mouse mode when changing into or out of internal editing. this
prevented us from queuing the redisplay of trackviews that allows the track
headers to expand when appropriate.
2025-08-14 18:48:04 -06:00
Paul Davis
e467ee77f8
just rename a variable for more clarity when reading code
2025-08-14 14:55:37 -06:00
Paul Davis
63db3d3736
fix interference between timer-based update in CueEditors and scroll-drag
2025-08-14 14:55:37 -06:00
Franke Burgarino
1ff9bf3e86
MCU: no track selected message
...
an attempt to select a track specific subview without having a track
selected now spits out a message instead of just doing nothing
2025-08-14 10:20:01 -05:00
Robin Gareus
0f256cc687
FP8: Add new well-known ctrls
2025-08-14 16:30:53 +02:00
Robin Gareus
844d458969
Add optional ProcessorBox to Route-Properties (bottom attachment)
2025-08-14 00:11:47 +02:00
Todd Naugle
fbc4156eac
Spelling Fix
2025-08-13 17:05:35 -05:00
Paul Davis
5bdb6137ef
the other half of the half note half-fix
2025-08-13 11:16:20 -06:00
Paul Davis
dc85f65efa
it might be a minim to you, but it's a half note to me
2025-08-13 11:15:39 -06:00
Paul Davis
5c2afa74e1
restore missing 1/8th note option from grid type selector
2025-08-13 11:05:05 -06:00
Paul Davis
f010133c5f
slightly improve a DEBUG_TRACE message for DEBUG::Grid
2025-08-13 10:51:44 -06:00
Paul Davis
46f2dba306
temporal: fix Meter::to_quarters (BBT_Offset)
...
Because Paul can't do math
2025-08-13 10:51:44 -06:00
John Emmas
ca820d6380
Remove some unneeded DLL export specifiers (and repo some that were in the wrong place)
2025-08-13 11:22:06 +01:00
Paul Davis
5dbba0b154
when adding automation points from the kbd, use guard points
...
It's just better when you edit later.
2025-08-12 23:29:54 -06:00
Paul Davis
aa68198487
when adding automation points from kbd, don't translate y coordinate
...
since we have no screen position, we've already call ControlList::eval() and
that's the number we should be using for the new point.
2025-08-12 23:29:03 -06:00
Paul Davis
289264b29d
add new contributor name to credits
2025-08-12 21:49:55 -06:00
Paul Davis
fa97071872
mamy improvements to kbd-driven automation editing
...
Really needs a short video to demo/explain
2025-08-12 21:44:50 -06:00
Paul Davis
a7621896c2
NO-OP no double semi-colons
2025-08-12 21:44:50 -06:00
Paul Davis
66765a137e
add a new style/widget name for "big" text
2025-08-12 21:44:50 -06:00
Paul Davis
b95c29770c
initialize scope owner in default TempoMap constructor
...
This constructor should not really exist, but it does.
2025-08-12 21:44:50 -06:00
Paul Davis
20b984384d
NO-OP: move TempoMap destructor in code to be after constructors
2025-08-12 21:44:50 -06:00
Paul Davis
7539c9e9a8
introducing ARDOUR::string_as_value()
...
This does more or less the opposite of what value_as_string() does.
Functionally is far from complete, but it is useful even in its current form.
2025-08-12 21:44:50 -06:00
Paul Davis
1362c2b85d
auto-ify a loop in ARDOUR::value_as_string()
...
so much more readable!
2025-08-12 21:44:50 -06:00
Paul Davis
f22b255a3e
use configuration parameter for max gain, not 6.0/2.0
2025-08-12 21:44:50 -06:00
Franke Burgarino
7d70dc9384
MCU: implement 'available' parameter list in EQSubview
2025-08-12 17:00:56 -05:00