Commit graph

41375 commits

Author SHA1 Message Date
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
Robin Gareus
95f63a9a4e
Improve Library manager UI
* Only show progress bar when downloading/installing
* Don't allow re-install
* Scale progress bar width with UI
* make sure target clip library folder exists
2025-09-16 20:25:13 +02:00
Paul Davis
3cd7bd661c also save mouse mode, x-origin and snap mode in RegionUISettings 2025-09-15 22:14:27 -06:00
Paul Davis
a6295e4d3f cue editors: add zoom focus to saved state 2025-09-15 22:07:28 -06:00
Paul Davis
d9d45f11e9 delete commented line that refers to non-existent variable 2025-09-15 09:43:25 -06:00
Paul Davis
521f01984b refactor code associated with cut/copy/clear so that pianoroll ops will affect automation points there 2025-09-14 13:49:26 -06:00
Paul Davis
b65a70e580 fix thinko-delete in 9f4d84dcb4 that broke step entry (and maybe other things too) 2025-09-14 13:49:26 -06:00
Robin Gareus
07c86bb472
Fix user-facing and non-user-facing typos
Found via `codespell -q 3 -S "*.pdf,*.po,./.git,*.tosc,./waf,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch" -L acount,addin,ane,ba,buss,busses,caf,capela,devine,disconnectin,discreet,doubleclick,envolution,filetest,fo,ghandi,homs,hsi,layed,maschine,mis,nd,ontop,pass-thru,removeable,retrn,ro,scrollin,sectionin,seh,siz,sord,sur,te,trough,ue,vie,wth`
2025-09-13 14:01:59 +02:00
chousemp3
9dafed2d76
Fix potential buffer overflow when playing 10^18 beats :) 2025-09-12 19:04:25 +02:00
chousemp3
2ba290e904
NO-OP: whitespace and comment clarification 2025-09-12 19:03:00 +02:00
chousemp3
a9e7ce15db
Add MIDI note strumming feature 2025-09-12 19:02:07 +02:00
chousemp3
0581f29f5f
Add MIDI note strumming operator
- Implement strum_notes functionality to apply progressive
  timing offsets to selected MIDI notes
- Provides guitar-style strumming for creating realistic
  note sequences

The feature applies 1/32 beat timing offsets progressively
to selected notes, creating a strummed effect where notes
play in sequence rather than simultaneously.
2025-09-12 18:58:05 +02:00
Paul Davis
4dbacf0cb6 do not alter visible note range of MidiView if data range did not change 2025-09-12 10:32:08 -06:00
Paul Davis
b41ab993ec add API to MidiViewBackground to get access to its data note range 2025-09-12 10:32:08 -06:00
Robin Gareus
726295c4ce
Ditto for UI configuration, only save modified settings 2025-09-11 23:30:22 +02:00
Robin Gareus
52bd416845
Only save modified configuration variable to user config
This allows to change default values when necessary.
2025-09-11 23:30:22 +02:00
Paul Davis
4e71a78bc7 simplify Pianoroll::snap_to_internal()
Since we have only 1 type of snap (the grid, which is BBT based always), this
method doesn't need as much of the baggage as the equivalent Editor method
2025-09-11 15:14:14 -06:00
Paul Davis
e7bc6624d9 ensure that GDK events arriving in a PianorollMidiView use a local tempo scope if appropriate 2025-09-11 15:14:14 -06:00
Paul Davis
77bc293aee add a variation on the EC_LOCAL_TEMPO_SCOPE macro 2025-09-11 15:14:14 -06:00
Franke Burgarino
0122f5072f Fix typos in RTA tooltips 2025-09-11 09:28:24 -05:00
Paul Davis
1426573707 do not disconnect from history changed signal when resetting a region in a cue editor
The history is cleared separately, we can remain connected to the signal. Nothing will happen to it that
we don't control, since we own the UndoHistory object
2025-09-10 15:09:07 -06:00
Robin Gareus
7a5dec92c7
Add common selection modifiers for VCA strips 2025-09-10 17:03:19 +02:00
Robin Gareus
b0a3c2efbd
Allow to select VCAs in the mixer window 2025-09-10 16:59:18 +02:00
Robin Gareus
7b7ed820ed
M: expose Track/Bus auto-connect preference 2025-09-10 09:33:29 +02:00
Robin Gareus
ab2f22dcaa
Amend 74133432d3 fix editor sidebar visibility 2025-09-10 01:46:11 +02:00
Robin Gareus
5d9d367cde
Don't unset CueEditor:_track when changing regions.
CueEditor::catch_pending_show_region() calls ::set_region
which calls CueEditor::unset(false). This reset _track.

Also PianorollWindow::set() calls set_track() before set_region(),
the latter also reset CueEditor::_track.

This fixes the Solo button in the Pianoroll window, and
probably some other things, too.
2025-09-09 01:25:33 +02:00
Robin Gareus
c32106600a
Don't show trigger selection in Editor's bottom pane 2025-09-09 00:21:13 +02:00
Robin Gareus
e4ef7fca8f
Don't clear selection during session load
Mouse-mode is set after the the session sets CoreSelection
in the backend, and can clear valid selection.

Note: Region Selection (if any) is saved in instant.xml
and set during first_idle, which usually still happens
from `load_session_stage_two() -> flush_pending()`.
2025-09-08 23:30:06 +02:00