Commit graph

40605 commits

Author SHA1 Message Date
Robin Gareus
4f8a6e8e80
Fix stretching mono files on multi-channel trigger slots
Like in the non-stretch case `chn % data.size ()` is used.
2025-04-03 21:01:45 +02:00
Robin Gareus
8dd89616e1
Fix EmScale initialization, pixel-sizes are unsigned int 2025-04-03 03:15:29 +02:00
Paul Davis
1a95595e3d remove more debug output 2025-04-02 09:08:11 -06:00
Paul Davis
e927b34391 remove debug output 2025-04-02 08:31:18 -06:00
Paul Davis
def69dd383 temporary workaround for a weird callback problem with pianoroll automation buttons 2025-04-01 14:55:32 -06:00
Paul Davis
25114fee0e remove unused call to std::min(), dangling from commit ea0524177 2025-04-01 14:55:32 -06:00
Paul Davis
fad3c32267 better handling of cloned bindings/actions 2025-04-01 14:55:32 -06:00
Paul Davis
87ed40a855 design to handle "cloned" bindings/actions 2025-04-01 14:55:32 -06:00
Ben Loftis
7a8fbdd5b1 Cue page: recover missing Stretch Options box 2025-04-01 12:17:08 -05:00
Robin Gareus
03daa45bab
Add Automation List / Region envelope example script 2025-04-01 16:12:01 +02:00
Robin Gareus
53773ec310
Prepare RouteUI for RTA 2025-04-01 15:52:58 +02:00
Robin Gareus
53ac429b4f
Fix SNAFU, only expose RTA in debug builds for the time being 2025-03-31 21:37:45 +02:00
Robin Gareus
daee40a013
License Manager be gone 2025-03-31 20:21:31 +02:00
Robin Gareus
6a647c422d
Commence work on actual RTA GUI 2025-03-31 20:20:10 +02:00
Robin Gareus
0508d8cc4d
Expose RTA in Route context menu 2025-03-31 20:20:10 +02:00
Robin Gareus
b41bc2cf95
Outline RTA Manager API 2025-03-31 20:20:10 +02:00
Robin Gareus
e12d8b3769
Add API to tap signal from a Delivery to RTA
Rater than having each Delivery Object provide a Ringbuffer,
which is unused most of the time, the GUI will provide
them on demand.

We need to be careful of lifetime, and use `rt_safe_delete` in
case the Delivery holds the last instance.
2025-03-31 20:20:09 +02:00
Robin Gareus
76ba840be0
Bootstrap RTA Window 2025-03-31 20:20:09 +02:00
Robin Gareus
6609ea1564
Micro-step toward unified FFT API 2025-03-31 20:20:09 +02:00
Robin Gareus
34f0ed991f
Include JAPA - Perceptual Analyzer DSP
Fons, how many bottles of red wine is this going to cost me?
2025-03-31 20:20:09 +02:00
Robin Gareus
2139349468
Use global FFT planner lock in GUI
This *should* not be needed since the GUI is single
threaded, but it doesn't hurt, just in case some
someday someone uses a background thread :)
2025-03-31 20:20:09 +02:00
Robin Gareus
9f9c775830
Use global lock to prevent concurrent FFT plan calls
Depending on fftw version, compile-flags and availability of
`fftwf_make_planner_thread_safe`  fftw_plan_* may not be
called concurrently (fftw internally uses a static cache).
2025-03-31 20:20:05 +02:00
Robin Gareus
1c9cb5152d
Fix region-gain curve example script 2025-03-31 16:47:32 +02:00
Robin Gareus
1f27dc81f9
Properly create LuaWindow (always use Window Manger)
Previously directly using Luawindow::instance() was able
to create the window, bypassing the Window Manager, this resulted
in two issues, the first being rather significant:

* `LuaWindow::set_session()` was not called
* The Window was not maked as visible in the Window menu
2025-03-29 01:52:53 +01:00
Robin Gareus
b98884a54c
Cancel audio peak analysis when destroying AudioRegionEditor
This speeds up selection changes when the Region Properties
are show in the bottom attachment and long regions are
selected.

The RegionEditor is destroyed when selection changes and has/had
to wait for the peak analysis thread to complete.
2025-03-27 17:21:52 +01:00
Paul Davis
8b389ee829 amend 365e3ef8e2 to be "more right"
NoteBase-derived note objects must delete their children, because
often they are deleted long before the parent (group) is. However,
in MidiView::clear_events() we used to call _note_group->clear (true)
first, which would delete the canvas items owned by these objects,
without them knowing about it. This made it dangerous for them
to delete those same items in their destructors.

This reverses the ordering so that NoteBase objects are deleted first
(along with their canvas items) and after that we clear _note_group
which will address any danging canvas items created there that are
not owned by a NoteBase-derived object
2025-03-25 14:49:49 -06:00
Paul Davis
ca96e004bf more robustification of Pianoroll::maybe_update() 2025-03-25 14:28:45 -06:00
Paul Davis
8f2dd46b40 fix menu definition file (again) 2025-03-25 14:10:49 -06:00
Paul Davis
78fea874f4 add action groups to ardour.menus.in for all relevant actions from Editing::register_common_actions() 2025-03-25 12:34:48 -06:00
Paul Davis
e4f6eb9190 remove debug output 2025-03-25 12:34:25 -06:00
Paul Davis
98428dfcad make Pianoroll::maybe_update() a bit more robust 2025-03-25 12:25:24 -06:00
Paul Davis
4ab6da354e ensure that the global Edit menu references the correct undo/redo actions 2025-03-25 12:25:08 -06:00
Paul Davis
f82a9bbdc3 YTK: fix non-namespaced handling of action names in GtkUIManager
GTK+ 2.x only looked up action *names* and ignored the namespacing offered by
action groups. This means that if there are two actions in different groups
with the same name, GtkUIManager may not find the one intended when it is
referenced in a menus definition file.

This commit changes that - if the action name contains a '/' character it is
assumed to contain both the action group name and the action name, and it will
only look for the action within the named group.
2025-03-25 12:22:32 -06:00
Paul Davis
f5d941f575 move playhead during (MIDI) clip recording 2025-03-25 11:17:05 -06:00
Paul Davis
535934dee9 manually revert 119166a17f with a tweak 2025-03-25 11:17:05 -06:00
Paul Davis
65db08ac2b remove debug output 2025-03-25 11:17:05 -06:00
Paul Davis
b5f41f445e disconnect from pianoroll update callback/connection when session is deleted 2025-03-25 11:17:05 -06:00
Robin Gareus
2a7129ef64
Update Luabindings for marker flags 2025-03-24 20:54:44 +01:00
Paul Davis
885a318299 after recording into a trigger slot, revert the box to playback mode 2025-03-24 11:51:52 -06:00
Paul Davis
ed0c55afb7 NOOP: whitespace/line removal 2025-03-24 11:43:33 -06:00
Paul Davis
dd1e1b16cc remove unused variable 2025-03-24 11:43:33 -06:00
Paul Davis
69174beb7b NOOP: add space before parens 2025-03-24 11:43:32 -06:00
Paul Davis
0a33701089 midiview: some more auto-fication 2025-03-24 11:43:32 -06:00
Paul Davis
e243f17eb1 pianoroll: hide trim handles when region is reset 2025-03-24 11:43:32 -06:00
Paul Davis
365e3ef8e2 midiview: correctly manage NoteBase lifetimes
MidiView::clear_events() deleted the canvas items corresponding to Notes/Hits,
but did not delete the owner NoteBase objects.
2025-03-24 11:43:32 -06:00
Paul Davis
119166a17f triggerbox: do not signal Captured() on every process cycle (for MIDI) 2025-03-24 11:43:32 -06:00
Paul Davis
2db8214aa3 clear previous region when switching to an empty slot in a cue-pianoroll 2025-03-24 11:43:32 -06:00
Robin Gareus
7c31e558a5
Fix duplicate MIDI Clock messages
Notably during realtime export an explicit flush of async
MIDI ports will duplicate port buffer content.

AsyncMIDIPort::cycle_end () calls `flush_output_fifo`,
and `flush_buffers` is called from PortManager::cycle_end.
2025-03-23 16:57:46 +01:00
Paul Davis
f41ca91cd4 put a bang button on a cue pianoroll editor 2025-03-22 19:49:39 -06:00
Paul Davis
91f9561958 no track record enable if triggerbox is rec-enabled 2025-03-22 15:38:59 -06:00