Commit graph

22236 commits

Author SHA1 Message Date
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
Paul Davis
9e9afef527 NO-OP: correct comment description of a value 2025-11-17 11:07:18 -07:00
Paul Davis
1e6d75d781 MidiBuffer: make ::write() return an error code if ::insert_event() fails 2025-11-16 14:03:11 -07:00
Paul Davis
6e58f6e2c8 NO-OP: space for function decl 2025-11-16 14:03:11 -07:00
Paul Davis
1fcc09ca84 NO-OP: space for function decl 2025-11-16 14:03:11 -07:00
Paul Davis
493a136d43 MidiBuffer: print an error if ::push_back() fails 2025-11-16 14:03:11 -07:00
Paul Davis
66f18a065e MIDI diskwriter: at least pretend to catch errors when pushing to MidiRingBuffer 2025-11-16 14:03:11 -07:00
Paul Davis
cc3981643a NO_OP: spaces for function call 2025-11-16 14:03:11 -07:00
Paul Davis
8baf7fbab2 NO-OP: comment formatting 2025-11-16 14:03:11 -07:00
Paul Davis
ec9120ab05 NO-OP: change variable name and better alignment 2025-11-16 14:03:11 -07:00
Paul Davis
67a09c19c8 NO-OP: spaces for function calls 2025-11-16 14:03:11 -07:00
Paul Davis
21a4501e47 MIDI: fix major error in computing delta times for SMFSource::append_event_samples()
timecnt_t constructor is: (distance, position); this code was not computing the
distance between the new event and _last_ev_time_samples.
2025-11-16 14:03:11 -07:00
Paul Davis
637e59a14f SMFSource: auto-ify a knarly container iteration 2025-11-16 14:03:11 -07:00
Robin Gareus
03d5411843
Allow to load partial state 2025-11-15 16:44:43 +01:00
Robin Gareus
f2a267675c
Allow to uniquely identify sessions
This is in preparation to allow merging sessions, or importing
partial state, and particularly different versions of the same
session where PBD::Ids may match.
2025-11-15 16:44:43 +01:00
Robin Gareus
04b180cc79
Remove unused cycles/cycle-timer 2025-11-14 17:43:51 +01:00
Robin Gareus
fa319ffda2
FIX SNAFU with MIDI pending overwrite 2025-11-14 17:35:30 +01:00
EZ4Stephen
8ca2d12198
Change to ytk wscript, to work slightly better with MSVC
Replace obj.ldflags  = '-l... with obj.lib  = ['... to work for both MinGW and MSVC.
Also, obj.linkflags = ['-Wl,--export-all-symbols'] only happens for MinGW.

(Previously, both lines were ignored by MSVC.
2025-11-14 00:21:11 +01:00
Robin Gareus
5960ad2e0f
Fix additional for loop iterators that were lost in auto-fication
see also c469c33bc4
2025-11-13 01:56:39 +01:00
Paul Davis
e97d1d3d3f (maybe) fix MIDI consolidation issues
Stay in BeatTime, not audio time.
2025-11-12 14:24:21 -07:00
Paul Davis
f895bc2cd9 new Session signal to indicate that instrument tracks/busses were added and are configured
Existing code sent RouteAdded() before the instrument plugin(s) were added. Rather than risk changing code
ordering, just emit a 2nd signal to notify (the GUI) that new instrument tracks/busses were added
2025-11-12 12:31:34 -07:00
Paul Davis
c469c33bc4 auto-ify libs/ardour/route.cc iterating over processors
Because there's nothing else to do on a Wednesday morning
2025-11-12 12:31:34 -07:00
Robin Gareus
a7e557ad65
Hide colorpicker eyedropper on platforms where it does not work 2025-11-12 14:57:53 +01:00
Robin Gareus
224e5ec163
When Ardour is running, there is at least 1 CPU core available 2025-11-12 02:22:26 +01:00
Robin Gareus
ac0bbfb481
Fix class/struct mismatch 2025-11-12 02:22:23 +01:00
Paul Davis
e50032ecb5 for debug builds, show stacktrace for TempoMap::fetch_condition() failure 2025-11-11 14:35:55 -07:00
Paul Davis
f932e4bf15 UndoTransaction: do not delete a Command when handling its DropReferences signal 2025-11-11 13:01:50 -07:00
Paul Davis
decb945300 simpler assert 2025-11-11 13:01:50 -07:00
Paul Davis
751dea75d3 use drop_and_kill() when connecting Commands to their dependents 2025-11-11 13:01:50 -07:00
Paul Davis
210f58ddb7 add Destructible::drop_and_kill()
This should be used when a Destructible-derived object needs to be
deleted. Handlers of the DropReferences signal should not responsible for
deleting the Destructible, since that would happen in the middle of signal
emission.

Instead, emit the DropReferences signal, then delete the Destructible.
2025-11-11 13:01:50 -07:00