Commit Graph

37178 Commits

Author SHA1 Message Date
Paul Davis
caa42c8b4d remove debug output 2023-04-10 09:18:44 -06:00
Paul Davis
53a98a64fa tempo mapping: when not close to a beat line, revert cursor to grabber 2023-04-10 09:18:44 -06:00
Paul Davis
15a018a59d remove reference to non-existent ruler menu item 2023-04-10 09:18:44 -06:00
Paul Davis
f17a516cef temporal: fix comment explaining when/how TempoMap::set() can be used 2023-04-10 09:18:44 -06:00
Paul Davis
a1e9dfb672 canvas lineset: C++11-ification 2023-04-10 09:18:44 -06:00
Robin Gareus
a0dc539d70 Set thread-local tempo-map to write-copy
Use the new map that is being edited for lookups while changing
the map in the in the GUI. This can changes directly visible
as the map is being edited.

This used to be done directly with the fetch_writable() API
2023-04-10 10:03:21 +02:00
Paul Davis
518fc7754f tempo mapping: half-way towards working drags again
For some reason, mid-drag changes are not visible
2023-04-09 14:36:03 -06:00
Paul Davis
4f87506e5c do not sort lineset every time a coord is added; use RAII to create scope and sort at end 2023-04-09 14:36:03 -06:00
Paul Davis
d4bca18108 slightly improve efficiency of drawing grid lines by passing by reference, not value 2023-04-09 14:36:03 -06:00
Robin Gareus
dde366d6ef Fix Wreturn-std-move 2023-04-09 00:52:29 +02:00
Paul Davis
13d814f87c fix a few canvas thinkos related to mapping bar 2023-04-08 14:12:41 -06:00
Paul Davis
786f71f7f1 fix GUI enum registration so that UIConfiguration can load with variables that use some of them 2023-04-08 13:58:25 -06:00
Paul Davis
13311b7a32 tempo mapping: tempo group and mapping group are now only ever visible one at a time
Currently, the "switch" is in Edit > Tempo
2023-04-08 11:44:21 -06:00
Paul Davis
a37d4dbacf define actions for changing tempo edit behavior and expand menu 2023-04-08 11:44:21 -06:00
Paul Davis
8fbf2c3f52 add enum and member var for controlling what kind of tempo editing we are doing
note: this was much harder than it ought to be
2023-04-08 11:44:21 -06:00
Robin Gareus
4b1d5d9b63 Resolve boost/std unique_ptr issue 2023-04-08 13:31:50 +02:00
Damien Zammit
a27a88f9f2 import_pt: Update session range to largest audio extents imported
Tested before and after on a small audio-only PT8 session;
session range gets set to [0 to max] extent with this change.
2023-04-08 18:35:26 +10:00
Robin Gareus
295dbd8e1e Make RCU reader return a const pointer (omnibus commit) 2023-04-08 00:15:37 +02:00
Paul Davis
e9f71824a1 temporal: change API for TempoMap::stretch_tempo()
This will likely be modified because it is actually impossible to do
what this code is attempting to do.
2023-04-07 12:56:57 -06:00
Paul Davis
57398b1e5e tempo mappoing: use actual mouse cursors not canvas item cursors
Also some changes to attempt to do "half-twist" that will be removed soon.
2023-04-07 12:56:57 -06:00
Robin Gareus
f3e13848fa Do not modify read-only RCU copy of routelist
RCU reader returns a shared ptr to the current object which
can also be used in other places at the same time.

Sorting the shared-ptr list invalidates iterators which can
throw off other users of the same object.

This fixes a bug in PT-import which calls get_nth_audio_track().
2023-04-07 19:37:30 +02:00
Robin Gareus
979f9876a7 VST3: skip redundant parameter-changes
This reduces initial parameter-changes during session-load
due to Controllable (PluginControl) state restore after
restoring the plugin state. This likely fixes #9287
2023-04-07 00:23:39 +02:00
Ben Loftis
2713c40b7d extend midi-controllable params with new well-known-controls 2023-04-06 14:52:09 -05:00
Robin Gareus
f57a9d84df Do not incrementally ripple during cut/delete #9295
When cutting multiple regions with Ripple-ALL, removing
the first region ripples the remaining tracks which includes
selected regions on those tracks which are to be cut later.
2023-04-06 02:18:42 +02:00
Robin Gareus
dd542b8f4d Use ARDOUR::PlaylistSet instead of local typedefs 2023-04-06 02:13:51 +02:00
Robin Gareus
8b59bf47df Add a dedicated PlaylistSet type
This is to consolidate various locations that use
`typedef std::set<std::shared_ptr<Playlist>>`
throughout the codebase.
2023-04-06 02:12:32 +02:00
Robin Gareus
0b8d5d3dc5 Tweak Window system-exec, wait for process to terminate 2023-04-05 00:16:37 +02:00
Robin Gareus
d09c049fee Clarify plugin scan log message 2023-04-05 00:16:37 +02:00
Robin Gareus
d9c35199cc CoreAudio: Update latency when buffesize changes 2023-04-04 19:26:17 +02:00
Robin Gareus
112bf87436 VST3 scan, do not clutter up Log
This prevents excessive "Cache file is valid and up-to-date."
messages in the log window. - Plugin manager has verbose log.
2023-04-04 15:44:21 +02:00
Robin Gareus
850cf3e035 Add vst3/win debug messages to investigate #9273 2023-04-04 14:00:46 +02:00
Robin Gareus
7302aefbee Guard set_transient_for for NULL windows
While there should always be a top-level, backtraces
provided by some [windows] users show that it can be NULL
in some scenarios.
2023-04-04 01:38:33 +02:00
Robin Gareus
29c6817599 Check that export-channel is not empty 2023-04-04 01:35:27 +02:00
Robin Gareus
473f575a05 Catch Glib::ConvertError when checking for files
This fixes some edge-cases when scanning recent sessions
in get_state_files_in_directory() and likely some other
places that use run_functor_for_paths in case the folder
contains files with non UTF-8 names.
2023-04-03 22:10:11 +02:00
Robin Gareus
2c4d1e011c CaptureProcessor should not be reused
This lead to potentially silent stem-exports. It
should not be possible to hold a shared-ptr reference
of a processor that is not part of the processor chain.
2023-04-03 16:01:24 +02:00
Robin Gareus
a3a30e39df Fix silent stem export channels (#9294)
When toggling a channel-configs the following happens:

 1. TrackExportChannelSelector::update_config
 2. ExportProfileManager::clear_channel_configs
 3. RouteExportChannel::create_from_route
[...] CriticalSelectionChanged
 4. ExportDialog::update_warnings_and_example_filename
 5. ARDOUR::ExportProfileManager::get_warnings
 6. ARDOUR::ExportProfileManager::build_filenames
 7. ARDOUR::ExportFilename::set_channel_config
[...]


Step 3 creates a RouteExportChannel, Step 7 retains a
shared-pointer to it in the config's ExportFilenamePtr.
When toggling another channel: step 2 release the reference
and step 3 creates a new RouteExportChannel.
This new channel reuses the existing Route::_capture_processor (!).

Now Step 7 releases the first RouteExportChannel in order
to get_warnings for the new one. Since ExportFilenamePtr holds the
the last reference, the d'tor of RouteExportChannel runs,
which removes the capture-processor from the route.

The newly created RouteExportChannel now has a reference
to a CaptureProcessor that is not in the signal-flow.


Note: the order of adding/removing RouteExportChannel matters.
With a two track session:
 * Disable "with track/bus processing
 * Enable Track 1
 * Enable Track 2
 * Disable Track 1
 * Enable Track 1 // << Track 2 becomes silent
2023-04-03 15:53:50 +02:00
Robin Gareus
9b23587886 Add missing processor-locks to iterate over processors 2023-04-03 15:17:12 +02:00
Robin Gareus
b03358615c NO-OP: whitespace (re-align after boost:: -> std::) 2023-04-03 00:17:37 +02:00
Robin Gareus
4ba1ccc09b NO-OP: use Tab to indent 2023-04-01 17:21:32 +02:00
Robin Gareus
a6401763a3 Fix interpolation when iterating over sequence (#9288)
When a control-point is exactly at tick (N * 8), iterating
over the List (Sequence<Time>::const_iterator::operator++)
skipped the point.

Sequence::time_between_interpolated_controller_outputs == 8.
2023-04-01 17:21:04 +02:00
Robin Gareus
a0286f2e6f Expose cut-copy-section in the editor
This is still a bit of an experiment, there may need to be a dedicated
ruler for sections, or a side-bar that allows arranging.
2023-03-31 23:13:20 +02:00
Robin Gareus
91c0f143ec Set sensitvity of "Insert Selected Region" 2023-03-31 22:06:41 +02:00
Robin Gareus
c362a5af8f Allow compilation with MSVC and sigc++ 2.3 (revert this at some point)
libsigc++ before 2.5.1 could not determine the return type
of a value unless SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE
was specified.
2023-03-31 18:12:10 +02:00
Robin Gareus
4d940ce5a2 Fix shuttle info sizing text 2023-03-31 18:07:02 +02:00
Robin Gareus
c11f62fd51 Fix VCA button event propagation
This prevents double-click on the VCA spill button from
to showing the add route dialog.
2023-03-30 19:04:36 +02:00
Paul Davis
9e0c1ff510 Revert "canvas: when an item is shown, potentially pick it as the current item"
This reverts commit 37cae2f971.

This changes causes issues with recursive calls to the enter/leave event handling
stacks in gtk2_adour. Semantically, the change makes perfect sense, but finding
a solution to the recursion is challenging.
2023-03-30 09:54:56 -06:00
Robin Gareus
151fceea54 Add missing include
This fixes "error: ‘isfinite’ was not declared in this scope"
2023-03-30 01:10:23 +02:00
Robin Gareus
32be8aa96a Fix veclib_find_peaks interface
vDSP_maxv, vDSP_minv set the return value to -INFINITY
or INFINITY respectively before starting to process.

Ardour expect the value to be input values to be part of the set.

https://developer.apple.com/documentation/accelerate/1450621-vdsp_maxv?language=objc
https://developer.apple.com/documentation/accelerate/1450267-vdsp_minv?language=objc
2023-03-30 01:04:40 +02:00
Robin Gareus
ef7b7f4c89 Fix timecnt_t less-than-equal operator 2023-03-30 00:37:23 +02:00
Robin Gareus
8c2454238e Remove explicit well-known ctrl enum string functions
This is better provided by Plugin::print_parameter, which
is called by PluginControl::get_user_string(). This removes
special cases for the mode enums.
2023-03-29 17:32:22 +02:00