13
0
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
41c52882af
Fix region-peak display for trimmed regions 2021-03-23 20:37:57 +01:00
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
46d9a8d819
Increase contrast of insensitive faders (automation play) 2021-03-22 21:54:25 +01:00
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
8b4edaa950
gcc-11 compat, volatile atomic variables (2/2)
GUI part of previous commit.
2021-03-22 15:30:16 +01:00
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
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
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
a75c239c0c
Do not accumulate SessionEvent::Overwrite events #8576 2021-03-22 02:54:42 +01:00
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
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
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
d08b9eaa8d
Fix debug message: missing newline 2021-03-21 22:31:40 +01:00
e6dcc47d4a
Fix export-analysis true-peak display offset when stripping silence #8578 2021-03-21 14:36:10 +01:00
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
d4a80c18c5
Remove stale comment 2021-03-20 23:42:02 +01:00
83618c4667
Silence input-meters when port-buffer is n/a. 2021-03-20 23:09:36 +01:00
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
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
ff275b24c8
Fix analysis chunksize to be multiple of channel-count #8631 2021-03-20 16:20:20 +01:00
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
2111c3531f Return (Enter) should behave the same in all windows 2021-03-19 16:00:30 -05:00
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
4887350e0d
API consistency, prefer typedef'ed event_id_t 2021-03-19 06:29:03 +01:00
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
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
3bda6020b9
Remove excess parentheses 2021-03-18 04:09:04 +01:00
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
01863886b5
Clean up Wself-assign - see also d91374d0db 2021-03-17 21:17:13 +01:00
8b18d7ab61 Add entitlements to get plugins working
Same settings as other signed DAWs
2021-03-17 15:16:22 -05:00
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
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
ee6e7e8a7e
Fix a -Wabsolute-value, use float for gain_t calculation 2021-03-17 17:57:01 +01:00
476856a42c
Fix caching gain coefficient for monitor gain 2021-03-17 17:55:59 +01:00
d91374d0db
Remove self-assign 2021-03-17 17:54:25 +01:00
7ef4a08b5e
No-OP: remove unused variables 2021-03-17 17:53:43 +01:00
fddecc11ec
Remove unrelated enum cases (-Wenum-compare-switch) 2021-03-17 17:44:11 +01:00
4abe3ade28 do not commit reversible commands when clearing locations if nothing was changed 2021-03-16 17:40:25 -06:00
950f0d4c9b change return API for Location::clear_*() methods to indicate if anything was removed 2021-03-16 17:40:06 -06:00
bcb3e75cec GUI to remove xrun markers 2021-03-16 16:49:49 -06:00
951257909f Location API to remove xrun markers 2021-03-16 16:49:38 -06:00
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