Commit graph

41602 commits

Author SHA1 Message Date
Franke Burgarino
2b2021d5e0 MCU: show warning message for empty views
If the user attempted to access a view with no tracks in it, it would
show all blank screens. Now, it will show a temporary warning message and return
to the previous view.
2025-10-07 16:46:50 -05:00
Robin Gareus
fb6e4b75ab
Expose preference whether to recall hw connections 2025-10-06 22:13:38 +02:00
Robin Gareus
a9a98ab11a
Amend b2a86297, fix crash when closing session with running engine 2025-10-06 21:36:26 +02:00
Robin Gareus
b2a862971b
Mark session dirty when changing external connections 2025-10-06 19:48:01 +02:00
Robin Gareus
94a4f6b350
Implement restoring hardware<>hardware connections for internal backends 2025-10-06 19:47:30 +02:00
Robin Gareus
4a51f4f350
Fix potential bug when showing plugin-menu in different contexts
This fixes `gtk_menu_attach_to_widget(): menu already attached`
after first showing the context menu in a mixer's processor
box, and later in a different context (regionFX, I/O plugins,
route properties,..) in optimized builds.
2025-10-05 19:15:09 +02:00
Robin Gareus
7790384507
Implement pref to destroy plugin UIs of regionFX and I/O Plugins
see also e635571f2f
2025-10-04 21:36:33 +02:00
Franke Burgarino
833d4142b1 MCU: add iCON V1-M support 2025-10-02 17:10:07 -05:00
Robin Gareus
6d9df568fe LV2: nicely forma Atom debug messages, use prefix 2025-10-02 21:20:08 +02:00
Robin Gareus
3213167188 LV2: don't hide bypass/enabled port..
.. and remove non-standard, deprecated bypass/enable extension
2025-10-02 20:00:13 +02:00
Robin Gareus
1d8ebee6d0 LV2: add note about LV2 UI updae freq (NO-OP) 2025-10-02 19:56:52 +02:00
Robin Gareus
5d59454f6a Prepare support for read-only plugin properties 2025-10-02 04:55:34 +02:00
Robin Gareus
c529260137 Set default value for numeric plugin properties 2025-10-02 04:54:48 +02:00
Robin Gareus
5a191219c3 Fix generic UI plugin support for numeric properties 2025-10-02 04:53:00 +02:00
Robin Gareus
9320a51c54 Remove redundant calls to set params of replicated plugins
This already happens in:
PlugInsertBase::PluginControl::actually_set_value
and
PlugInsertBase::PluginPropertyControl::actually_set_value
2025-10-02 02:00:14 +02:00
Robin Gareus
ae6900d8af Catch up with plugin property changes (LV2/JUCE)
When a user changes a value in the Plugin GUI, JUCE informs the
DSP behind the host's back, and later informs the host from the
DSP (realtime) thread, by sending patch:Set messages from the DSP
back to the host/UI.

This is really bad practice, particularly since the plugin does
no even use LV2 instance access, or LV2 data access features.
2025-10-02 01:29:45 +02:00
Robin Gareus
e974a861ea LV2: add debug option to dump plugin/UI Atom communication 2025-10-01 22:52:07 +02:00
Robin Gareus
73268c9fe7 Add LV2 Bool variant support 2025-10-01 22:11:28 +02:00
Robin Gareus
3d05dea965
Stopgap solution for pianoroll zoom FPE
It should be impossible to zoom to < 1 sample/pixel,
but apparently some users manage this using elaborate scroll+zoom
tricks to be tracked down.
2025-09-29 18:37:30 +02:00
Franke Burgarino
717d6b4ee2 Remove debugging statements 2025-09-29 09:44:29 -05:00
Robin Gareus
e0a6b64695
NO-OP: sort and group classkeys 2025-09-29 16:23:23 +02:00
Robin Gareus
edab074749
Amend previous commit (fix Windows Lua bindings) 2025-09-29 16:19:58 +02:00
Robin Gareus
96c734686e
Fix Windows builds, add required classkeys see 73b903fd03 2025-09-29 16:07:01 +02:00
Robin Gareus
dec0e2dae8
Sort busses in new-aux menu by presentation-info
https://discourse.ardour.org/t/ordenation-for-aux-send-buses/112251
2025-09-29 00:49:49 +02:00
Robin Gareus
a0cd43132b
Prevent issues when changing processors while recording #10017
Processor changes trigger configure_io() which resulted in a
call to reset_write_sources(), which is a disaster while recording.

This allows adding plugins while recording, and prevents adding
any plugins before the disk-writer that change the channel-count
while recording, or changing strict-i/o to the same effect.
2025-09-29 00:03:30 +02:00
Robin Gareus
d3d31378db
Switch to draw tool when selecting region line in dialog
It was odd that one was able to select a view, without
anything happening unless one was already using Internal Edit
or Draw tool.
2025-09-28 15:18:45 +02:00
luzpaz
5c4f95a0f8
Fix tooltip typo in rta_windows.cc
Fixes minor user-facing typo
2025-09-28 12:56:55 +02:00
Robin Gareus
c07353eeb4
Add click-free bypass/enable to ACE-Amp 2025-09-28 12:53:41 +02:00
Robin Gareus
73b903fd03
Expose Controlpoint, and automation line selection as Lua bindings 2025-09-28 12:53:41 +02:00
David Robillard
625ad2af77 Fix loading LV2 channel numbers from standard/common port groups
This code only worked for port groups that themselves (the specific group
instance) listed their designations.  This worked with LSP, which redundantly
duplicates the elements from the group's class for some reason, but not with
other plugins like MDA which simply refer to a standard group like
<http://lv2plug.in/ns/ext/port-groups#StereoGroup>.

This does require the specification data to be loaded from the LV2 path (maybe
why LSP does that?), but that's generally expected for anything LV2 to work.
2025-09-27 21:32:07 -04:00
Robin Gareus
14e8b66b61
Fix region-editor (double) packing
* show _region_line dropdown and label (previously ArdourHSpacer
  was packed in their place)
* add spacer at the bottom of the window to not prevent
  spreading out of clocks or other elements.
2025-09-28 01:35:04 +02:00
Robin Gareus
bc3120dfe6
Keep showing region in property box when editing regionFX automation 2025-09-28 00:40:06 +02:00
Franke Burgarino
bbdca232a9 NO-OP: strum item/action capitalization 2025-09-26 16:54:05 -05:00
Franke Burgarino
c2eecac3b2 Update strum logic
Strumming now happens to notes that start at the same time, based on
note value. Additionally, rather than moving notes, the start times get
moved so that they end at the same time. Any notes that get cut down to
nothing (or less) are given a length of one tick while maintaining the
same end time.
2025-09-26 16:26:15 -05:00
Robin Gareus
215d59e0e6
RegionFX: handle property and non-automatable controls
This fixes crashes in recent LSP.lv2 and similar plugins.
2025-09-26 20:27:56 +02:00
Robin Gareus
82bdb3f05f
Expose MIDI Strum using operator in libardour 2025-09-26 00:00:19 +02:00
Robin Gareus
44097cdd6a
Revert "Add MIDI note strumming feature"
This reverts commit a9e7ce15db

MIDI Strum should use the MidiOperator implementation.
2025-09-25 22:56:39 +02:00
Robin Gareus
6126b96ca3
Properly display solo state on cue page, include implicit solo 2025-09-25 21:37:01 +02:00
Robin Gareus
604c4f4e6d
Fix pianoroll solo button (again), re-subscribe to signals 2025-09-25 21:37:01 +02:00
Robin Gareus
39ca1efe0f
Produce valid HTML when printing bindings
* fix HTML </br> -> <br/>
* add a doctype (render in normal mode, not quiksmode)
* add CSS to match prior display from quicksmode
* add pagebreak before action-list
2025-09-25 21:37:01 +02:00
Franke Burgarino
1b7de5ae34 Clean up view menu
Some naming conventions and ordering in the view menu were inconsistent.
2025-09-24 16:54:30 -05:00
Franke Burgarino
c4cececfb7 MCU: fix monitor/immersive mute button
Monitor/Immersive mute on mackie controllers previously was not toggling
the actual monitor cut control that is tied to the GUI button.
2025-09-24 11:29:27 -05:00
Robin Gareus
cb64c9a9c1
Update action state when watched controllable changes
This fixes bug, when a button has both a controllable and
a toggle action assigned. Previously only the visual state
was updated.  e.g. monitor section mute button.

When "cut all" was toggled (e.g. Control surface, or a Lua script:
`Session:monitor_out():monitor_control():set_cut_all(true)`,

The action state itself remained unchanged. Also the button
in the application remained unchanged since that button does
not :watch() the controllable.
2025-09-24 17:11:59 +02:00
Robin Gareus
68128f4156
Update mixer-strip bottom spacer calculation 2025-09-23 22:39:55 +02:00
Robin Gareus
e539cabc00
Allow to re-allocate (ensure) buffers after clearing them
This fixes a crash when removing and re-adding regionFX.

Removing all FX clears the _readcache BufferSet
(see AudioRegion::remove_plugin).

BufferSet::clear() calls _buffers.clear(); leading to a assert/crash
when adding a new regionFX plugin which calls BufferSet::ensure_buffers.
2025-09-23 17:46:15 +02:00
Robin Gareus
afd0172c63
Fix jump in gain when deactivating aux-send with non-unity gain 2025-09-23 02:14:51 +02:00
Robin Gareus
36ed5bbf37
Fix edge case when region start is after the source' end
This fixes an edge case where an audio-region was split near
its end using music-time.

see also 7ded62c37f
2025-09-21 17:52:49 +02:00
Edgar Aichinger
72eda5e98f
update german translation to current 2025-09-18 21:10:22 +02:00
Robin Gareus
64613cbeb0
Stopgap solution to speed up MIDI region selection
Filling the CC dropdown menus of the editor's pianroll
bottom attachment can take ages.. So only do that when
the bottom pane is actually visible.

This will need more work, since it's still slow, and the
menu is also not correctly using sub-menus.
2025-09-18 00:09:06 +02:00
Robin Gareus
614472bc4c
Skip idempotent calls to Pianoroll::set_track
Since this function is expensive (see comments). This
halves the time spent when changing MIDI region selection.
2025-09-17 17:50:06 +02:00