Commit graph

22265 commits

Author SHA1 Message Date
Robin Gareus
293a359d10
Fix Mixbus builds (1/2) 2025-12-01 20:53:22 +01:00
Paul Davis
f996808962 triggerbox: fix error during 794888738 that caused crashes when editing MIDI clip boundaries 2025-12-01 12:39:32 -07:00
Robin Gareus
00af254b04
Extend strip import API, include additional information 2025-12-01 16:51:10 +01:00
Paul Davis
7948887382 TriggerBox: radically redesign handling of region changes by AudioTrigger
This now follows MIDITrigger - when a region's bounds are changed, we reload
the data corresponding to the region into memory, queue up a PendingSwap and
then have Trigger::check_edit_swap() switch to the new data when
necessary (synchronously with ::run).

This comment also removes AudioTrigger::_start_offset because there is never
any start offet - the data in memory is always precisely the data corresponding
to the region. If the region bounds are modified, we reload the correct data
into memory. This also applies to the recently added _user_data_length - again,
the data in memory always corresponds to the full span of the region/clip being
used in process context.

This differs a little from MIDITrigger, where we do in fact load the entire
source and maintain trigger-only bounds. That's because the amount of data for
MIDI is generally small, and so it makes more sense to just put it all in
memory and adjust which parts of it we use. For audio, the region could be
minutes (or hours!) into an audio source, and there's no point having all that
data in memory when we do not need it.

These changes now make editing clip boundaries in AudioClipEditor generally
functional, though some polishing is still in the works.
2025-11-30 11:07:42 -07:00
Paul Davis
1605f35811 NO-OP: explanatory comment 2025-11-30 11:07:42 -07:00
Paul Davis
2068aa12ac Triggerbox: remove unused and ill-conceived API from triggers
This API was imagined as useful when Triggerbox started, but we never use
them and likely never will. If some part of them is required in the future, it
will likely be in a different form.
2025-11-30 11:07:42 -07:00
Robin Gareus
efe08f7809
Fix artifacts with concurrent region read / shared playlists 2025-11-30 16:59:20 +01:00
Robin Gareus
322ed62e41
Avoid direct use of PluginInfo->n_in/outputs
This is in preparation for VST3 setBusArrangements
variable bus I/O count.
2025-11-29 15:42:54 +01:00
Robin Gareus
152e0c2beb
Clean out more unconditional, unnecessary unistd.h 2025-11-28 12:15:54 +01:00
Robin Gareus
de042dcde7
De-click External Sends 2025-11-27 01:31:27 +01:00
Robin Gareus
6a5215db37
NO-OP: declare GAIN_COEFF_DELTA in common header 2025-11-27 01:18:57 +01:00
Paul Davis
5ad7071614 OSC: use namespaces and deletion to avoid conflicts over LocationMarker type
note that this type is also declared by the GTK2 GUI, and at runtime that was the definition being
used, which leads to crashes due to differences in the type definition.
2025-11-25 17:59:20 -07:00
Robin Gareus
7893b348a8
Remove 16 year old session-import prototype (2/2)
This was based on Arodur 2.x sessions modifying XML
which no longer applies (and non functioning GUI).
2025-11-25 16:52:01 +01:00
Robin Gareus
0893098071
Clearlooks: don't hardcode define HAVE_UNISTD_H 2025-11-25 16:17:36 +01:00
Robin Gareus
33b1792726
Remove unused unistd.h an sys/time.h includes
For the most part glib has superseded low level POSIX fork/pipe
/open/close/.. I/O.
2025-11-25 16:08:39 +01:00
Paul Davis
0459902b9a Evoral::Event show event address in operator<< 2025-11-24 21:51:23 -07:00
Robin Gareus
e9256cf0e4
Add API to locate to named marker 2025-11-25 00:39:06 +01:00
Paul Davis
5223fff183 triggerbox: fix computation of usable length for audio clips
The usable length is based on data in the file, or the follow length, whichever
is smaller, as appropriate. The end of the clip (which could be stretched) is
not relevant to this length.
2025-11-24 14:59:12 -07:00
Paul Davis
73c666a889 triggerbox: additional DEBUG_TRACE messages for DEBUG::Trigger 2025-11-24 14:59:12 -07:00
Robin Gareus
1bb0832159
Implement strip import/export, focusing on processors 2025-11-24 21:07:53 +01:00
Robin Gareus
e8ea2029e1
Define folder/file extensions for route-state import/export 2025-11-24 21:07:52 +01:00
Robin Gareus
8c1bb6ac58
Add API to lookup plugin by URI 2025-11-24 21:07:48 +01:00
Paul Davis
3a337b97ea OSC: remove singleton object from OSC code
This will allow, theoretically, multiple instances of an OSC surface.

The osccontrollable.{cc,h} code is not used anywhere in the rest of the surface
support, and so was removed from the library but left in the repository
2025-11-24 10:28:56 -07:00
Robin Gareus
252c2240e1
Fix 8456af6d8 2025-11-23 00:09:31 +01:00
Robin Gareus
7ec70c66ff
LV2: don't print warning messages from rt-thread 2025-11-22 18:04:23 +01:00
Robin Gareus
8456af6d8d
Update I/O plugin port-names when plugin changes them 2025-11-22 17:51:10 +01:00
Robin Gareus
5a79782ef3
Generalize owner->RPC() API from VST3 to plugin.h 2025-11-22 17:51:09 +01:00
Robin Gareus
7181515490
Extend RouteProcessorChange Types to be more specific about name changes
This is in preparation for I/O Plugins to update port names,
which should not happen every time some unrelated property changes
2025-11-22 17:51:09 +01:00
Paul Davis
48f625e7ef continued work on getting audio clip bounds editing to work 2025-11-21 22:39:14 -07:00
Paul Davis
c3b871d6e7 triggerbox: continued work on making AudioTriggers respond to Region bounds changes 2025-11-21 22:39:14 -07:00
Paul Davis
9e72b2b452 refactor MIDITrigger's PendingSwap to prepare for a version used by AudioTrigger also 2025-11-21 22:39:14 -07:00
Franke Burgarino
4f434154a0 Fix PortAudio with MSYS
PortAudio can now successfully be used with Ardour when building on
Windows/MSYS. This will not work with MSYS packaged PortAudio, it
doesn't come with ASIO. You must build from source.
2025-11-20 18:35:28 -06:00
Robin Gareus
34609232f0
Remove deprecated no-op function (1/2)
Glib::thread_init has been deprecated since 2.32,ib
is no longer necessary and no longer has any effect.

This fixes builds with modern glib[mm] versions, notably
with msys2 in Windows.
2025-11-20 23:10:52 +01:00
Robin Gareus
fc3b79dd58
Revert "glib version checks for MSYS"
This reverts commit bb6171bbb2.
2025-11-20 22:00:12 +01:00
Robin Gareus
e7c30d2022
Revert "Additional waf tweaks for MSYS"
This reverts commit d30a0b2bfb.
2025-11-20 21:56:30 +01:00
Franke Burgarino
d30a0b2bfb Additional waf tweaks for MSYS 2025-11-20 13:54:25 -06:00
Franke Burgarino
bb6171bbb2 glib version checks for MSYS 2025-11-20 13:38:18 -06:00
Franke Burgarino
839d9dab07 Tweak optimization for Windows MSYS builds
Too many symbols to do completely unoptimized builds on Windows, so -Og
is necessary.
2025-11-20 12:46:00 -06:00
Robin Gareus
c665608350
Fix I/O thread calculation on single core systems 2025-11-18 23:45:41 +01:00
Paul Davis
2b65a6dbe0 gtkmm2ext: use default window position in gtkmm2ext 2025-11-18 13:33:58 -07:00
Paul Davis
9d25f83e21 move UIConfigurationBase from libs/widgets to libs/gtkmm2ext 2025-11-18 13:08:45 -07:00
Paul Davis
f70b59f349 make libs/widgets use/provide default window positon
We cannot extend this to gtkmm2ext base classes yet, because there a 1-way
dependency between libs/widgets and libs/gtkmm2ext. May have to move
UIConfigurationBase into gtkmm2ext to allow that
2025-11-18 11:30:09 -07:00
Robin Gareus
1c3cc95b3b
Fix optimized bilds 2025-11-18 18:30:09 +01:00
Robin Gareus
a56b4e5aeb
Fix testing for session files
The clause that was added in b65fe35f67 to allow passing
FQN including .ardour suffix on the comandline.

As side-effect this prevented loading sessions that were named
after a folder inside the session-bundle. e.g. "plugin" or
"interchage" or "dead" etc.
2025-11-18 04:42:33 +01:00
Paul Davis
99bc55465d triggerbox: emit appropriate property change when region is cleared in a slot 2025-11-17 18:48:35 -07:00
Paul Davis
6dfca90b8e fix illegal MIDI event message during import
This happens when reimporting a MIDI file taken from Ardour, which
has sequencer specific data (namely, note-IDs). In that case
SMF::read_event() returns zero to indicate a meta event that we
should or could be interested in. For import, we are not interested,
hence the ignored_note_id variable
2025-11-17 16:05:03 -07:00
Paul Davis
65332e603b libsmf: speed up ridiculous design of smf_save()
This would realloc a buffer for every event, making it absurdly slow for
large MIDI files (say, 10k events). Use the somewhat standard heuristic
of doubling the requested allocation every time we need to increase the size.

This results in a speedup of 40-100x when saving SMF to disk
2025-11-17 16:05:03 -07:00
Paul Davis
662d1b9e46 NO-OP: fix commented printf of MIDI data 2025-11-17 16:05:03 -07:00
Paul Davis
2c7841777b Evoral: more useful output if there's an illega MIDI event sent to SMF or Sequence 2025-11-17 16:05:03 -07:00
Robin Gareus
30e1567e23
Add ComboBox like active API to ArdourDropdown 2025-11-17 23:57:01 +01:00