Commit Graph

31545 Commits

Author SHA1 Message Date
ad4e92380a
Add a shaded plus (+) icon 2021-03-26 14:35:51 +01:00
fb33b4c2f3
Add convenience API to render icons on signal_expose_event 2021-03-26 14:35:45 +01:00
04a40140dc
Remove "add route" button from recorder and mixer
This GTK button style is out of place in both contexts.
Furthermore it is inconsistent to not have the same button
in the editor (there is a dropzone).
2021-03-26 14:35:17 +01:00
05f6550e2c
Foldback: NO-OP clang-format 2021-03-26 02:48:04 +01:00
01bc039f9b
Foldback: use IObutton
This follows 3e7b2bb3f5, common shared implementation
of IOButtons. This also uses RouteUI provided IOSelectorWindows.
2021-03-26 02:33:56 +01:00
b12cad80bc
Foldback: consistent mouse handling part 1
* un-hardcode button numbers, use portable modifier API
* allow to toggle Send bypass with middle-click
* add support for delete-operator
* Only act on single-click press
2021-03-26 02:17:09 +01:00
345726e223
Get NI maschine surface to compile again 2021-03-26 01:16:30 +01:00
ce28065421
Foldback: refactor spill logic
Prefer to reuse spill logic from the mixer-ui.
This allows to spill routes directly after spilling
foldbacks. Previously that resulted in FB "show sends"
to keep flashing even then no foldbacks were spilled anymore.

It also simplifies various aspects of foldback prev/next
logic.
2021-03-25 21:38:10 +01:00
32c7b18f6d
Relax export preparation timeout
This increases timeout granularity and ensure that
rt (TSFM) and butler thread can run to prepare exports.

This may fix an issue some windows users reported
"Cannot prepare transport for export", and increasing
the buffersize to 1024 or 2048 works around the isssue.

This also fixes an edge-case usecs_per_cycle() may return -1
(sleep forever) when the engine dies.
2021-03-25 21:15:13 +01:00
fe99dd4ec2
Fix solo button handler (amend aab296be48)
Exclusive solo is possible for both listen and in-place.
2021-03-25 14:47:24 +01:00
c3fb344f44
Foldback: spill follows selection 2021-03-25 14:39:46 +01:00
ff1083128b
Include Tracks and Busses in connection dropdown #8636 2021-03-25 01:54:48 +01:00
16abbd6254
Show bindings that of reserved reserved Lua words
This correctly matches reserved words when looking
up C++ documentation, but prints the exposed binding.

e.g. ARDOUR::PluginInsert::type -> ARDOUR.PluginInsert._type

https://github.com/Ardour/manual/pull/171
2021-03-25 00:56:21 +01:00
812dc2ec28 fix arguments for fmt-bindings now that argument formats have changed slightly 2021-03-24 16:42:33 -06:00
fc42674b75 change fmt-bindings tool so that when run with --html 1 --accelmap 0 it generates manual input 2021-03-24 16:33:31 -06:00
af0413b400 fix some errors in the keybindings template/input file 2021-03-24 16:33:31 -06:00
b174326228
Fix crash when using exclusive Mixbus listen 2021-03-24 19:16:31 +01:00
830f76bdce
Change Solo button tooltip when using A/PFL 2021-03-24 18:16:43 +01:00
aacfc0704d
Add A/PFL button to foldback strip 2021-03-24 17:48:22 +01:00
c1f1cd5b3e
Prepare for foldback bus A/PF Listen 2021-03-24 17:47:53 +01:00
aab296be48
Exclusive P/AFL is possible since f2d2ea4baa 2021-03-24 17:04:44 +01:00
bbb244c1c9
Implement replacing events in the immediate queue
This corrects issues introduced in a75c239c0c,
and fixes MIDI playback.
2021-03-24 04:05:35 +01:00
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