Commit Graph

31473 Commits

Author SHA1 Message Date
Bruno Vernay 3f50b6d639
Directly use HTTPS
Easy: more performant and more secure.
2021-03-23 23:27:45 +01:00
cooltehno 49301785d6
Update cubasish-ardour.colors 2021-03-23 23:25:00 +01:00
cooltehno 4ec0f0b7ea
Update recbox-ardour.colors 2021-03-23 23:24:05 +01:00
cooltehno 305bfb02e6
Update clear_gray-ardour.colors 2021-03-23 23:22:32 +01:00
Robin Gareus 41c52882af
Fix region-peak display for trimmed regions 2021-03-23 20:37:57 +01:00
Robin Gareus 5cd26221ce
Symlink libraries, strip ABI suffix
This exposes libs directly for plugins that may dynamically
load e.g. `libcurl.so` at runtime.
2021-03-23 14:55:24 +01:00
Robin Gareus 46d9a8d819
Increase contrast of insensitive faders (automation play) 2021-03-22 21:54:25 +01:00
Robin Gareus 59b3b02dea
Indicate gain-entry focus/selection
The mixer gain-entry selects all when the entry is focused
(see ArdourWidgets::FocusEntry). Due to the selection there is
no visible cursor, and it was not obvious that the entry
has focus. Also moving the mouse outside of the strip drops focus
without any indication.
2021-03-22 21:24:33 +01:00
Robin Gareus 8b4edaa950
gcc-11 compat, volatile atomic variables (2/2)
GUI part of previous commit.
2021-03-22 15:30:16 +01:00
Robin Gareus cc7b8b1bc5
gcc-11 compat, volatile atomic variables (1/2)
"While 'atomic' has a volatile qualifier, this is a historical
artifact and the pointer passed to it should not be volatile."

Furthermore "It is very important that all accesses to a
particular integer or pointer be performed using only this API"
(from https://developer.gnome.org/glib/2.68/glib-Atomic-Operations.html)

Hence initialization of atomic variables is changed to also use
this API, instead of directly initializing the value.

This also fixes a few cases where atomic variables were
accessed directly.

see also libs/pbd/pbd/g_atomic_compat.h
2021-03-22 15:30:07 +01:00
Robin Gareus bf64852fc2
Remove volatile/atomic re-display flags in GUI thread
Atomic operations are not needed here, since the GUI
is single threaded.
2021-03-22 13:45:29 +01:00
Robin Gareus 8fcbe789b4
Ignore pinout when copy/pasting plugins using Ctrl+c/v
This can lead to invalid configuration and crashes in
case plugin-replication changes.

see also 9ab84a95f1
2021-03-22 04:10:03 +01:00
Robin Gareus a75c239c0c
Do not accumulate SessionEvent::Overwrite events #8576 2021-03-22 02:54:42 +01:00
Robin Gareus 86a594fe90
Mitigate batch gain-changes #8576
This combines SessionEvent per playlist. Now per change
there are "only" two SessionEvent::Overwrite events
queued per playlist in the GUI thread for later processing
the Butler.

These are triggered by Playlist::ContentsChanged()
and Playlist::LayeringChanged(), both of which trigger
DiskIOProcessor::playlist_modified.

(Previously there used to be two per region)
2021-03-22 02:14:30 +01:00
Robin Gareus 0fc53d4683
Reduce signal emissions from set_scale_amplitude #8576
Playlist::ContentsChanged() is implicit.

Region::send_change()
-> Playlist::region_changed ()
-> Playlist::notify_contents_changed ()
-> Playlist::ContentsChanged () /* EMIT SIGNAL*/

This cuts the number of signals in half and also
allows to freeze/thaw the playlist to collect the
signals for each playlist into a single signal.
2021-03-22 01:04:01 +01:00
Robin Gareus 6ac8ee41af
Collect Playlist::ContentsChanged() signals #8626
With a large session:

Editor::insert_time()
 -> Playlist::shift()
 -> 4000+ regions are modified
 -> 4k calls to Region::send_change()
 -> --"-- Playlist::region_changed ()
 -> --"-- Playlist::region_bounds_changed ()
 -> --"-- Playlist::notify_contents_changed ()
 -> --"-- ContentsChanged () /* EMIT SIGNAL */
 -> --"-- DiskReader::playlist_modified ()
 -> 4k Session::request_overwrite_buffer events are queued

The butler thread processes them all in the background, but
this also enqueues 4k+ events to the GUI event pool since the
GUI subscribed to Playlist::ContentsChanged ().

However the GUI is inside Editor::insert_time() and cannot handle
events. So they keep accumulating, and eventually hits
"POOL OUT OF MEMORY - RECOMPILE WITH LARGER SIZE!"

-=-
This fixes the issue by collecting blocking ::notify_contents_changed
until all region_changed() events are processed, and a single call
to Playlist::flush_notifications() notifies the UI and disk-reader.
2021-03-21 22:45:57 +01:00
Robin Gareus d08b9eaa8d
Fix debug message: missing newline 2021-03-21 22:31:40 +01:00
Robin Gareus e6dcc47d4a
Fix export-analysis true-peak display offset when stripping silence #8578 2021-03-21 14:36:10 +01:00
Robin Gareus 954edb7bd8
Work around jack input monitoring
This works around JACK not allowing to directly access physical
input buffers by creating an explicit connection.

Ardour access input-buffers directly without connection
for input meters and AFL. This work in general since data
on those ports are always read unconditionally at the start of
each process cycle.

 jack_port_get_buffer (jack_port_by_name (c, "system:capture_1"), n);

However with jack this fails if the given port is not connected.
Due to an internal jack optimization collecting input data is
skipped for ports that have no connections.
2021-03-21 00:06:44 +01:00
Robin Gareus d4a80c18c5
Remove stale comment 2021-03-20 23:42:02 +01:00
Robin Gareus 83618c4667
Silence input-meters when port-buffer is n/a. 2021-03-20 23:09:36 +01:00
Robin Gareus f361211891
Fix crash when removing custom transients
This fixes the following edge-case:
1. Place a custom transient marker.
2. Use Rhythm Ferret to analyze region.
3. Delete custom marker from (1) while rhythm-ferret
   dialog is still open, and analyzed onset markers are visible.
2021-03-20 19:21:31 +01:00
Robin Gareus d13eb84fa3
Fix BPM button overflow
"T: " prefix isn't very useful. in music-notation the note
symbol is established: ♩ = <bpm> or ♪ = <bpm>.

This fixes an issue on Windows, where those note symbols are
not available in the default unicode font. There "1/4" is used
which adds two extra monospace chars leading to cropped text.
2021-03-20 19:07:31 +01:00
Robin Gareus ff275b24c8
Fix analysis chunksize to be multiple of channel-count #8631 2021-03-20 16:20:20 +01:00
Robin Gareus 745b194241
Get sample-rate from session-archive
This correctly sets the engine sample-rate when opening
a session-archive.
2021-03-19 22:52:27 +01:00
Ben Loftis 2111c3531f Return (Enter) should behave the same in all windows 2021-03-19 16:00:30 -05:00
Robin Gareus 4bb3a896b4
Potential fix for lost/empty MIDI files when using snapshots #8552
* Copy flags of referenced file
* Do not share model with copied source!
2021-03-19 20:05:42 +01:00
Robin Gareus 4887350e0d
API consistency, prefer typedef'ed event_id_t 2021-03-19 06:29:03 +01:00
Paul Davis 5a4ef850ce better fix for same issue as 985eb93674
Copy region selection so that when it is invalidated, iteration doesn't break
2021-03-18 13:17:02 -06:00
Paul Davis 985eb93674 avoid possible iterator corruption in MIDI region selection handling 2021-03-18 12:50:06 -06:00
John Emmas a2b1482cad Fix a problem with ASIO buffer sizes on Windows
PortAudio uses what it calls 'default suggested latencies' but in callback streaming mode, they can result in wildly inaccurate buffer sizing (e.g. the user requests a buffer size of 128 but PortAudio actually instructs ASIO to use a much bigger size).

What we do now is to improve PortAudio's suggested latency calculation by basing it on the actual buffer size requested by the user.
2021-03-18 16:12:28 +00:00
Robin Gareus 3bda6020b9
Remove excess parentheses 2021-03-18 04:09:04 +01:00
Robin Gareus d4c3e43b03
Address another -Wunused-private-field
TrackSelection is just a different name for TrackViewList
the private _editor is no longer needed nor used.
2021-03-18 04:06:46 +01:00
Olivier Humbert cc79bc07ed
Update fr.po 2021-03-17 23:16:48 +01:00
Olivier Humbert df260ccea9
Update fr.po 2021-03-17 23:16:19 +01:00
Olivier Humbert d3cfbbabd1
Update fr.po 2021-03-17 23:15:33 +01:00
Robin Gareus 01863886b5
Clean up Wself-assign - see also d91374d0db 2021-03-17 21:17:13 +01:00
Todd Naugle 8b18d7ab61 Add entitlements to get plugins working
Same settings as other signed DAWs
2021-03-17 15:16:22 -05:00
Robin Gareus 48556cbd3c
Fix session-archive on macOS
By default Apple uses a private TMP folder. While mktemp
returns "/tmp/xxx" the canonical path is "/private/tmp/xxx".
This lead to issues when tmp-prefix is removed when building
the session-archive.

See also e52bdc55ad
2021-03-17 18:05:48 +01:00
Robin Gareus 71f8c8ff38
Fix -Wunused-comparison in for() loop
Fixes potential issues when loading a session where state
and IO port-count mismatches. Not sure if that can ever happen.
2021-03-17 17:59:36 +01:00
Robin Gareus ee6e7e8a7e
Fix a -Wabsolute-value, use float for gain_t calculation 2021-03-17 17:57:01 +01:00
Robin Gareus 476856a42c
Fix caching gain coefficient for monitor gain 2021-03-17 17:55:59 +01:00
Robin Gareus d91374d0db
Remove self-assign 2021-03-17 17:54:25 +01:00
Robin Gareus 7ef4a08b5e
No-OP: remove unused variables 2021-03-17 17:53:43 +01:00
Robin Gareus fddecc11ec
Remove unrelated enum cases (-Wenum-compare-switch) 2021-03-17 17:44:11 +01:00
Paul Davis 4abe3ade28 do not commit reversible commands when clearing locations if nothing was changed 2021-03-16 17:40:25 -06:00
Paul Davis 950f0d4c9b change return API for Location::clear_*() methods to indicate if anything was removed 2021-03-16 17:40:06 -06:00
Paul Davis bcb3e75cec GUI to remove xrun markers 2021-03-16 16:49:49 -06:00
Paul Davis 951257909f Location API to remove xrun markers 2021-03-16 16:49:38 -06:00
Paul Davis 5640f820d3 exclude xrun markers from those returned by Locations::marks_either_side()
Surveying the uses of ::markers_either_side() makes it clear that
xrun markers are never relevant to the callers.
2021-03-15 19:38:20 -06:00