182801b8d7
complete manual reversion of 7bce9899c0
2021-06-11 20:56:33 -06:00
f643e231f5
NOOP: add comment as a reminder for post-nutempo merge
2021-06-11 19:13:13 -06:00
1b505ddcb1
Revert "modify PBD::TimingStats to discard the first 1000 recorded values to avoid too much influence from chaotic startup conditions"
...
This reverts commit 7bce9899c0
.
1000 at 8192 samples @ 44.1 is > 3 mins; counter may have overflowed. Not a necessary change.
2021-06-11 18:55:25 -06:00
1777cf8f69
add some initial timing points for dsp stats
2021-06-11 18:55:24 -06:00
462352102c
add a new update() method to PBD::TimingStats to allow use of an already-computed interval
2021-06-11 18:55:24 -06:00
c01f68cfca
Fix MIDI bounce w/processing (event times + latency compensation)
...
see also 8f9c1df183
2021-06-12 02:34:22 +02:00
1c4323e32f
Fix crash on MIDI bounce w/processing
...
Bounce (Session::write_one_track) uses bounce_chunk_size = 8192
to process data. This requires gain_automation_buffer, and
scratch buffers that can hold 8k samples.
Previously the buffers were not allocated when bounding MIDI
(no synth), leading to a crash when automation was used.
2021-06-12 02:34:22 +02:00
76f30fe74e
NO-OP: whitespace (clang-format)
2021-06-12 02:34:22 +02:00
1ed0e88e23
NO-OP: whitespace
2021-06-12 02:34:22 +02:00
ef72afb963
add PBD::TimerRAII class for easy management of TimingStats in scope contexts with multiple return points
2021-06-11 13:09:52 -06:00
7bce9899c0
modify PBD::TimingStats to discard the first 1000 recorded values to avoid too much influence from chaotic startup conditions
2021-06-11 13:09:52 -06:00
3f6bf2c451
Overhaul connection events, fix capture alignment
...
Previously there was only a PostDisconnect() signal.
When a port connection is made directly e.g. recorder_ui.cc
r->input()->audio(..)->connect(...), or when connecting
using an external jack control app, Ardour::IO is not informed.
no IOChange::ConnectionsChanged signal is emitted and
Track::set_align_choice_from_io() is not called. This leads to
incorrec capture alignment.
To minimize signal emission the static global PostDisconnect
is changed into a per port ConnectedOrDisconnected signal.
IOs subscribes to signals from owned ports only.
2021-06-11 20:02:39 +02:00
a67a475480
dramtically improve performance of ::get_port_by_name() for JACK backend
2021-06-11 10:41:41 -06:00
47b06afc9d
Leave cpu_dma_latency alone by default (prevent overheating)
2021-06-11 14:29:34 +02:00
b67d783cd6
Reopen cpu_dma device when changing settings
...
This fixes a bug with previous filedes remaining open,
only allowing to increase the constraint.
2021-06-10 21:35:52 +02:00
53499648be
Allow to change CPU-DMA setting w/o restart
2021-06-10 20:22:09 +02:00
7ce43739e8
Tweak sched priorities use given and 4 levels below.
2021-06-10 14:38:45 +02:00
8c0ef7bd62
Add support for CPU DMA latency requests
2021-06-10 04:30:06 +02:00
2e574a011a
Amend 6e82f3669f
, set BaseUI thread priority early on
...
This is conceptually clearned compared to doing it as
part of the session.
2021-06-10 04:30:03 +02:00
6e82f3669f
Correctly set ctrl-surface thread priority
2021-06-10 03:17:55 +02:00
89a0040f1b
Allow to override rt priority for internal backends
2021-06-10 03:17:53 +02:00
2c8916310a
Consistent env variable naming (see also 6801c2cac2
)
2021-06-10 03:17:49 +02:00
444af7b3e8
Fix client_real_time_priority() calls (backend vs engine)
2021-06-10 03:17:45 +02:00
0e570d15ae
Amend 3a7ea6b
, do not kill child after 10 sec w/o output
...
This fixes video-timeline issues (harvid has no output), as well
as ALSA device reservation and xjadeo (when idle).
2021-06-08 23:23:31 +02:00
445d5a75d0
NO-OP: use reference instead of iterator
2021-06-08 19:26:40 +02:00
23e3b6f6a8
Amend previous commit (remove debug instrumentation)
2021-06-08 16:49:55 +02:00
e8130c1f1b
Optimize input-metering
...
Rely on previously collected I/O port-list, skip expensive call
to get_physical_inputs() and rely on RCU port list alone.
Also skip port_is_mine() test in optimized builds.
2021-06-08 16:43:26 +02:00
b75a37abdb
fix arguemnts to transport call in shared control surface code for transport_play()
2021-06-08 08:32:19 -06:00
f4d4dddbeb
Paste Mode: overwrite-paste, naive implementation using rec-mode (for testing)
2021-06-08 08:33:48 -05:00
1c9bb9ab41
Playlist UI tweaks: refactor PlaylistSelector (life-cycle, code-cleanup)
...
* You can now show a selector for each track, rather than one global dialog
* Removed the 'cancel' button: it was too easy to unintentionally revert your selection
* Correctly sort and name new playlists when they are added or renamed from the P menu
* Fix problem where list contents disappeared when changing desktops (on_unmap_event)
2021-06-08 08:33:48 -05:00
c2fb85e37e
Cruft removal: behavior of Region List has changed; these functions are deprecated (libardour)
2021-06-08 08:33:48 -05:00
b0db646029
Refactor input port monitoring
...
* avoid memory allocation (remove std:set<>&)
* skip nested loop using port-names as IDs
However this adds a bit of extra cost in case input ports are
monitored: get_port_by_name() and get_buffer()
2021-06-08 14:34:57 +02:00
bed992d55f
Minimize false sharing of MPMC queue variables
2021-06-07 23:40:29 +02:00
5cec55da2e
Micro-optimization: std::atomic<> vs glib
...
glib atomic operations include a complete act as a full
compiler and (where appropriate) hardware memory barrier.
std::atomic<> allows dedicated acquire and release barrier
semantics which are not available with glib.
2021-06-07 20:44:29 +02:00
1eb6b82b9f
Prevent L1 cache line evicion in MPMC queue
...
This reduces cache coherence overhead of the queue
2021-06-07 16:05:42 +02:00
ecb992de64
Remove custom generic plugin UIs (a-eq) 2/2
2021-06-04 01:43:29 +02:00
bc4ef3ff3d
Update weakjack, alternative macOS libjack paths
...
see also https://github.com/x42/weakjack/pull/13
2021-06-02 17:42:01 +02:00
6cf1083cb6
Playlist UI tweaks: add function playlists_for_pgroup() (libardour)
2021-06-01 17:55:09 -05:00
63629c0a91
NO-OP: whitespace
2021-06-01 19:40:21 +02:00
0e86e3337c
Playlist UI tweaks: relax requirement that playlists names must be unique (libardour part)
2021-06-01 09:39:50 -05:00
932b07b7b0
Playlist UI tweaks: assign a pgroup when a playist is first recorded to
...
* this solves the problem where the first 'take' was not grouped because
the user has not explicitly created a take for the group yet
2021-06-01 09:39:50 -05:00
28aa22e11a
Playlist UI tweaks: Add pgroup_id field to playlists, to associate playlists created in the same operation (libardour)
2021-06-01 09:39:50 -05:00
f6d2229c47
Playlist UI tweaks: Update PlaylistSelector (libardour part)
...
* Add an option to use a playlist without stealing its ownership. (libardour)
* Tracks emit PlaylistAdded when a new playlist is created either by copying or by creating a new empty pl
2021-06-01 09:15:54 -05:00
7b2854b2fb
Prefer storing playlist-IDs for frozen tracks; but if none is provided then search by name
...
* no version-check should be necessary because when opening an old session,
playlists can be looked-up by discrete names and will be tracked by ID thereafter
2021-06-01 09:14:07 -05:00
71a414b4b0
Remove unused function (Wunused-function)
2021-05-30 20:09:35 -04:00
8d471e6761
Remove extraneous parentheses (Wparentheses-equality)
2021-05-30 20:09:35 -04:00
74e21e942e
Remove unused variables (Wunused-variable)
2021-05-30 20:09:35 -04:00
1b4aaea92a
Remove unused private fields (Wunused-private-field)
2021-05-30 20:09:35 -04:00
c57c230dfc
Fix loading old session w/missing playlist #8727
2021-05-30 18:54:45 +02:00
df0571892f
Coreaudio: fix duplicates in device list
...
This is an edge-case only, some devices may
dis and reconnect with different IDs.
2021-05-29 17:54:39 +02:00
bdb5aec1cc
ptimport: Fix crash when imported session has zero audio tracks
2021-05-29 12:54:10 +10:00
3d15b61e37
fix Playlist::remove_gaps() for ExternalOverlap regions; add per-gap callback
2021-05-28 17:43:33 -06:00
c8c506f702
fix bug in Locations::ripple()
2021-05-28 17:43:33 -06:00
9766132a53
libardour: add Locations::ripple()
2021-05-28 17:43:33 -06:00
37acb07752
Fix previous commit
2021-05-28 22:51:12 +02:00
0f25086446
Misc fixes pertaining to plugin-scanning
2021-05-28 22:03:10 +02:00
79b50aebcd
Ignore all export xruns while not rolling
...
This fixes false positives with some backends, notably JACK2.
2021-05-28 21:22:10 +02:00
fecce7c333
libardour: initial implementation of Playlist::remove_gaps()
...
This is probably a little naive and may need extending to cover cross-track scenarios
2021-05-28 12:35:30 -06:00
3e56eedf11
libardour: add X_() macros around several Source XMLNode state property names
2021-05-27 17:17:40 -06:00
d4bc60a388
libardour: infrastructure for cue-marker-only source undo/redo
2021-05-27 17:17:40 -06:00
83100de133
NOOP: rearrange arg decl to follow conventions
2021-05-27 17:17:40 -06:00
ca44f54ed6
libardour: small changes to cue marker API to return bool from Source modification methods
2021-05-27 17:17:40 -06:00
1a1e67f595
Use Posix style return values for sem wait when on windows.
...
0 on success, -1 on error
2021-05-27 15:17:15 -05:00
be6d0fa95c
Do not use named semaphores on Windows since they are system wide
...
https://docs.microsoft.com/en-us/dotnet/standard/threading/semaphore-and-semaphoreslim#named-semaphores
Running multiple instances of Ardour or Ardour/Mixbus would fail in very
odd ways since they would signal each other. Unnamed sems are
correct for this use case.
2021-05-27 15:13:40 -05:00
e91fd1fce6
Add Lua binding to query plugin-presets and scalepoints
2021-05-27 16:56:24 +02:00
a829fa58b3
Fix another C++11ism
2021-05-26 04:14:18 +02:00
2cf4568d82
Fix C++11isms in 3fb9f47bf1
2021-05-26 03:55:29 +02:00
d839e9cf14
Consistent _nth_ API call 0-based index
2021-05-26 02:33:31 +02:00
3fb9f47bf1
ptimport: Fix importing of large sessions, no more crashing and faster
2021-05-25 20:37:39 +10:00
3a1cfc837e
libardour: API infrastructure for renaming cue markers
2021-05-24 20:23:06 -06:00
c2a012545b
API infrastructure for dragging region/cue markers
2021-05-24 12:26:21 -06:00
a6fc82537e
Fix assert in Waveview cache size
...
previous condition made no sense. effectively assert(bytes > 0).
2021-05-23 21:41:45 +02:00
42f4e64d5f
Fix a moderate memory leak
...
periodic calls ARDOUR_UI::update_clocks() -> AudioClock::set()
-> 2+ calls to UI::set_tip() can easily accumulate 50MB/hour
when rolling.
2021-05-22 22:11:42 +02:00
d703079f10
ace-fluidsynth: add bypass (ignore notes, but retain reverb)
2021-05-21 18:40:59 +02:00
ecbd8732de
NO-OP: clang-format
2021-05-21 18:39:39 +02:00
6733a847ee
Fix Bounced region+filename (lib part)
...
Prior implementation:
Bouncing a range and naming it "chorus" resulted in:
..a region per track, and they were all named "chorus"
...a file per track, with the name "chorus-{playlist name}"
New implementation:
Bouncing a range and naming it "chorus" results in:
..a region per track, with the name "chorus-{playlist name}"
...a file with the same name as the region
2021-05-20 11:42:48 -05:00
2e501fd77a
ensure the BasicUI implementation of rewind/ffwd is the same as the ARDOUR_UI one
2021-05-19 18:32:00 -06:00
17dbdffc45
infrastructure APIs for region/cue marker removal and clear
2021-05-18 20:59:37 -06:00
d8e0a29316
Fix A/B plugins, skip internal but visible plugins (e.g. LAN)
2021-05-19 02:10:33 +02:00
60a972a7de
implement region marker deletion
2021-05-18 18:01:38 -06:00
a5a2f111ee
Remove debug line
2021-05-18 14:32:38 -07:00
0130f19e26
Fix positions before start and after end
2021-05-18 14:27:20 -07:00
0ee8b1706d
Fix event_inside_widget_window()
...
This fixes cases where a widget's parent isn't the
top-level window and additional offset has to be taken
into account.
So far this has not been an issue since this method was only
used for floating text entries.
2021-05-18 22:17:36 +02:00
8cd8d90483
Reported the jack2 xrun bug, now we stop telling users
2021-05-18 03:17:17 +02:00
f9557d0d04
Remove unused code
2021-05-17 13:50:18 -07:00
ab7c6e74e0
OSC, update marks list better.
2021-05-17 13:34:19 -07:00
Tobias Kannenberg
e4a6e981d9
fix OSC "/marker" feedback
2021-05-17 13:31:03 -07:00
d2916a1df8
Better version of previous commit
2021-05-17 21:31:53 +02:00
9d063943bb
Fix deadlock when changing tempo
...
since dcc0f1cb17
Playlist::freeze takes a RegionWriteLock,
so freeze() must not be called with a Lock already held.
2021-05-17 21:15:58 +02:00
98721b1267
Don't count jack[2] xruns during freewheel export for now
...
Pending further investigation after the 6.7 release.
2021-05-17 04:44:53 +02:00
14961e6bc7
ALSA backend: code cleanup and scoping and indent
...
This is combination of clang-format and manual edits.
The latter mainly to add braces and reduce scope of variables.
2021-05-16 00:49:06 +02:00
6801c2cac2
ALSA: add option to prefer interleaved access
2021-05-15 23:10:14 +02:00
e2bac27885
Remove unused API
2021-05-15 23:09:21 +02:00
6346b54c13
Tweak Lua API, avoid translated sting as return value
2021-05-15 03:53:40 +02:00
ac87409122
#ifdef code dependent on libsndfile 1.0.28
2021-05-14 19:03:52 -06:00
d1ee033dd2
change XML node names for cue markers to be capitalized
2021-05-14 18:37:50 -06:00
7cf9e3d89d
remove Region::add_cue_marker() (force use of Source API instead)
2021-05-14 18:37:50 -06:00
6dd516bc45
add non-const SourceList accessor to Region
2021-05-14 18:37:50 -06:00
e3b1566534
add serialization for source cue markers
2021-05-14 18:37:50 -06:00
2791be7f2a
add Region::add_cue_marker()
2021-05-14 18:37:50 -06:00