Commit Graph

35728 Commits

Author SHA1 Message Date
Paul Davis
dd5003eb1e triggerbox: must run when speed is zero
We only want to not run triggerbox during latency pre-roll
2022-08-09 09:29:46 -06:00
Robin Gareus
6ce804b4c9 Fix session-archives on macOS
When an archive are saved, a new folder in interchange/ is created,
named after the archive. However session-archive also retains files
in the session-folder that Ardour does not know about.

This can cause that the the original interchange folder is retained.
It will be empty with just the .DS_Store file in it. The result is
that the session may not load if there is an ambiguity.
2022-08-08 23:09:56 +02:00
Robin Gareus
f1226b6735 Fix session-archive, include Triggerbox Regions and Sources
This also consolidates code to collect used sources by checking
all playlists and all Triggerboxen, which have no playlists.
2022-08-08 23:03:53 +02:00
Paul Davis
fab0cacb2c triggerbox: marginally more useful debugging output 2022-08-08 09:13:04 -06:00
Paul Davis
34c6931807 triggerbox: fix up post-locate behavior following fix in Route 2022-08-08 09:13:04 -06:00
Paul Davis
5eb4ea0148 NOOP: fix indentation 2022-08-08 09:13:04 -06:00
Paul Davis
d65bc2a798 triggerbox: fix lack of alignment after a locate.
Triggerboxen were being executed during the latency preroll phase, which is
inappropriate. ::fast_forward() will prepare them to run at precisely the
correct time. So we add an explicit clause to avoid this.
2022-08-08 09:13:04 -06:00
Robin Gareus
20c942bb48 Fix endless loop when using "load session anyway"
Fixes a while-loop `break`, vs switch `break`.
2022-08-08 16:26:16 +02:00
Robin Gareus
902c36d019 Do not try to autostart engine for new users
This allows new user to select the soundcard and I/O settings
when loading demo sessions at first run, or when tricking Ardour
to open an existing session (try to create an existing session,
user may choose to load it instead).

Normally a user can only create a new session after first running
Ardour, and creating new sessions always shows the dialog (to
set the samplerate).
2022-08-08 03:50:54 +02:00
Robin Gareus
a10f001c97 Sync session and engine settings after reconfiguration 2022-08-07 18:57:46 +02:00
Robin Gareus
06717e9f84 Set TempoMap after sample-rate (map uses engine-rate) 2022-08-07 18:03:03 +02:00
Robin Gareus
b6921d1b14 Fix resampler config variable name (trailing comma) 2022-08-07 01:35:48 +02:00
Robin Gareus
39513ac8ad Cleanup session (drop references) when session-load fails 2022-08-06 22:38:10 +02:00
Robin Gareus
0c01c50023 Add dialog option to reconfigure audio engine when S/R mismatches 2022-08-06 22:35:01 +02:00
Robin Gareus
93e6f5a882 Prepare to allow engine reconfiguration when SR mismatches
Rather than fail to load the session or load with mismatching
sample-rate, this will allow a user to reconfigure the engine
and retry.
2022-08-06 22:32:02 +02:00
Robin Gareus
7ee4f116f2 Fix crash when load session w/o engine
1. Start Ardour, load a session.
2. Stop the engine
3. Session > Recent, pick a recent session
4. Engine dialog opens
5. Close engine dialog without starting the engine
6. Profit^WCrash
2022-08-06 22:09:22 +02:00
Robin Gareus
7408a9958e Fix duplicate UI initialization
When loading the very first session is canceled (e.g.
sample-rate mismatch -> Do not load session) or fails otherwise,
execution returns to the startupFSM.

Loading another session after that then takes the same path again:

StartupFSM::dialog_response_handler() -> StartupFSM::engine_running()
-> ARDOUR_UI::attach_to_engine()

The call needs to be idempotent, otherwise setup_windows(),
create_editor() etc are called a second time and Ardour crashes.
2022-08-06 21:44:55 +02:00
Robin Gareus
fc54e9c583 Don't crash if the click is missing (amend d5113e6e91) 2022-08-05 20:37:03 +02:00
Paul Davis
774268ada8 triggerbox: fix use of cues container without checking for content (and drop goto) 2022-08-05 07:15:52 -06:00
Ben Loftis
8f9ad771b3 Display the dB value in foldback return slider 2022-08-05 01:27:57 +02:00
Ben Loftis
cef0e5d518 Define a theme-able color for foldback return widgets 2022-08-05 01:26:28 +02:00
Robin Gareus
c991016021 Consolidate plugin API to access parent insert
Previously this was special cased only for VST for callbacks
from the plugin (e.g. check pin connections), but it is generally
useful.
2022-08-05 01:17:59 +02:00
Robin Gareus
940c496f7b ArdourKnob: allow annotation, faceplate 2022-08-05 01:10:42 +02:00
Ben Loftis
fa9d3b72f3 ArdourKnob: use ArdourCtrlBase 2022-08-05 01:10:39 +02:00
Robin Gareus
52f12cac8b Separate ArdourKnob core functionality into abstract base class 2022-08-05 01:10:35 +02:00
Robin Gareus
5834728e2f Allow to un/link foldback send panners 2022-08-05 00:56:19 +02:00
Todd Naugle
db8262bd7b Mackie Control: Use view names from Mackie spec and define them all 2022-08-05 00:50:27 +02:00
Todd Naugle
de0893cc8d backport to Ardour: Don't set the MCU Click led state from the button
Allow the update process to get the correct state and update the LED.
2022-08-05 00:43:02 +02:00
Todd Naugle
d5113e6e91 Don't crash if the click is missing 2022-08-05 00:41:37 +02:00
Ben Loftis
02b0ecdacb Safeguard snapshot switch
Require double-click, and prompt user, before opening a session snapshot
from the sidebar.
2022-08-05 00:38:41 +02:00
Robin Gareus
67f55d7b4e EditorSnapshots does not benefit by inheriting from EditorComponent 2022-08-05 00:14:12 +02:00
Ben Loftis
916fc4a2ee likely fix for cue-text sizing on windows 2022-08-04 13:40:06 -05:00
Paul Davis
d10557fc8c fix exception when loading a region whose length exceeds its source and the time domains do not match
See code comment for more info
2022-08-04 09:51:20 -06:00
Paul Davis
32d99aa64f triggerbox: convert fast forward (and other) cerr output to DEBUG_TRACE 2022-08-03 17:15:58 -06:00
luz paz
47c525315d Fix various typos
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch  -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-08-03 12:10:01 -06:00
Paul Davis
5a0019f9a6 canvas: comment out unimplemented method 2022-08-03 12:08:57 -06:00
luz paz
36226cfd0a Fix various typos in libs/canvas 2022-08-03 12:07:46 -06:00
Paul Davis
014c6e7850 replace INT32_MAX with CueRecord::stop_all (gui) 2022-08-03 11:42:58 -06:00
Paul Davis
dc5737a3bf replace INT32_MAX with CueRecord::stop_all (libs) 2022-08-03 11:42:51 -06:00
Paul Davis
c25e96b545 triggerbox: rework fast_fwd code into a simpler design
Rather than start at zero, we now search backwards for the first relevant cue
before the locate position, making our task in ffwd'ing from there much simpler
since there are no other cues to consider
2022-08-03 11:00:37 -06:00
Paul Davis
cc6a437faf temporal: fix a bug in BBT_Time::round_up_to_bar()
Also remove Meter:: versions of related methods, because they are not necessary. We
only need metrical information for operations like ::round_to_bar()
2022-08-03 10:59:29 -06:00
Robin Gareus
076ad9a9b6 NO-OP: simplify wscript 2022-08-02 00:22:44 +02:00
Robin Gareus
6b636b8220 AudioUnit: fix cocoa window resizing - part 2
Previously no unmap events were delivered (due to a bug in
Gtk EventBox), `lower_box_map` was called only once.

Furthermore when cross-compiling (ARM binary on Intel),
COCOA_LIVE_RESIZING was not detected.

see also df21698ea7
2022-08-02 00:22:44 +02:00
Robin Gareus
a48df667f6 Consistent stdout/err AU debug log 2022-08-02 00:22:40 +02:00
Ben Loftis
22faf6f426 fix transport-freeze in some cases of MIDI cue ffwding
* there are rare cases where a midi clip would not advance the ffwd position, looping endlessly
* this problem did not occur when the user chose an explicit Follow Length (different code path)
2022-08-01 14:52:16 -05:00
Robin Gareus
e04311b647 Work around cleanup unused regions removing trigger-regions
This workaround bypasses RegionMap and SessionPlaylist APIs
(region_use_count, destroy_region) which are not directly
applicable to Triggerboxes. There are likely various edge
cases until TriggerBoxes integrate with Session Playlist.

e.g. whole file regions generated for regions/source used by
triggerboxes are cleaned up.
2022-08-01 20:48:02 +02:00
Robin Gareus
bd6df4a40d Fix session-archive of nested sources in unused regions
A compound region itself may be unused, but the nested source
it provides can be used in another region compound.

In this case the first, unused, region needs to be saved
to save the nested source.
2022-08-01 00:59:01 +02:00
Robin Gareus
df21698ea7 Fix relative AU window sizing
Rosetta bridge plugins have an initial size of 0x0 pixel.
Ardour's AU window size is set relative to the previous size. So the
window grows by the actual real initial size of the AU View.
However the window is already allocated and has a non-zero width given
by the plugin's toolbar.

This lead to oversize windows.
2022-07-30 06:38:44 +02:00
Paul Davis
371f386b8b improve comment accuracy 2022-07-29 14:04:28 -06:00
Paul Davis
81f22662c0 some more logic changes to triggerbox fast forward to try to make it reliable 2022-07-29 14:04:28 -06:00