Paul Davis
9e0c1ff510
Revert "canvas: when an item is shown, potentially pick it as the current item"
...
This reverts commit 37cae2f971 .
This changes causes issues with recursive calls to the enter/leave event handling
stacks in gtk2_adour. Semantically, the change makes perfect sense, but finding
a solution to the recursion is challenging.
2023-03-30 09:54:56 -06:00
Robin Gareus
151fceea54
Add missing include
...
This fixes "error: ‘isfinite’ was not declared in this scope"
2023-03-30 01:10:23 +02:00
Robin Gareus
32be8aa96a
Fix veclib_find_peaks interface
...
vDSP_maxv, vDSP_minv set the return value to -INFINITY
or INFINITY respectively before starting to process.
Ardour expect the value to be input values to be part of the set.
https://developer.apple.com/documentation/accelerate/1450621-vdsp_maxv?language=objc
https://developer.apple.com/documentation/accelerate/1450267-vdsp_minv?language=objc
2023-03-30 01:04:40 +02:00
Robin Gareus
ef7b7f4c89
Fix timecnt_t less-than-equal operator
2023-03-30 00:37:23 +02:00
Robin Gareus
8c2454238e
Remove explicit well-known ctrl enum string functions
...
This is better provided by Plugin::print_parameter, which
is called by PluginControl::get_user_string(). This removes
special cases for the mode enums.
2023-03-29 17:32:22 +02:00
Robin Gareus
c1d6456d58
FP8: fix duplicate makeup control
2023-03-29 16:39:32 +02:00
Alexandre Prokoudine
f2a07e711d
Fix the incorrectly generated Korean translation
2023-03-28 02:42:33 +02:00
Xavi Ivars
3d360b9ea1
gtkmm2ext Catalan file
2023-03-28 01:39:54 +02:00
Robin Gareus
886d7b9069
FP8: update for Mixbus v9
...
* add expander/gate
* show/hide mixer-strip controls
* add plugin-presets for channelstrip (if any)
2023-03-28 00:32:02 +02:00
Robin Gareus
9ef6ee21de
FP8: show value as formatted by the plugin
2023-03-28 00:31:45 +02:00
Paul Davis
fe6beee68e
further steps towards correct (or more usable) MClk output
2023-03-26 22:30:30 -06:00
Robin Gareus
1dce50e787
Fix another CAS (amend 4ba4cd69ff)
2023-03-26 22:16:47 +02:00
Robin Gareus
e36938f305
Fix peak-meter atomics (amend 4ba4cd69ff)
2023-03-26 20:37:25 +02:00
Robin Gareus
305606ed24
Document export-graph signal flow
2023-03-25 18:24:06 +01:00
John Emmas
c771eccd0e
'Temporal::DomainSwapInformation' needs to be exportable
2023-03-25 12:29:17 +00:00
Robin Gareus
168c439ee8
Fix vfork wrapper for macOS
2023-03-25 07:46:47 +01:00
Robin Gareus
4b5333a721
Disambiguate export formats with different encoder settings
...
Disambiguate export formats with different encoder
qualities, sample-formats or settings (wav/bwav).
This allows to export multipe mp3 with different bitrates.
2023-03-25 06:43:46 +01:00
Robin Gareus
3715154a8e
Allow concurrent child processes
...
When multiple child processes are running, closing the
stdin of one child did not send EOF or cause POLLNVAL,
as long as a dup()'ed filedes still existed.
This fixes an issue when running an mp3 encoder while the
video monitor is visible, and will allow to concurrently
run multiple mp3 encoders or other child processes.
Previously this caused Ardour to hang indefinitely in CmdPipeWriter
```
_proc->close_stdin();
_proc->wait(); // << here
```
2023-03-25 06:43:46 +01:00
Paul Davis
70df054d68
try to patch over some type confusion
2023-03-24 17:27:49 -06:00
Robin Gareus
8075b55919
Fix amiguity in atomic load
...
operator _Tp() const volatile _NOEXCEPT {return load();}
operator _Tp() const _NOEXCEPT {return load();}
2023-03-25 00:07:56 +01:00
Paul Davis
b18fe9f412
add method accidentally removed during rebase with spp-atomic
2023-03-24 16:35:18 -06:00
Paul Davis
dad40f960d
fixup various mistakes when rebasing boost->std shared_ptr changes
2023-03-24 14:19:16 -06:00
Paul Davis
720102f98a
modify API of MIDI Clock ticker to use ProcessedRange
...
This solves the faulty MClk output when we locate due to a loop end.
2023-03-24 14:19:16 -06:00
Paul Davis
bcc1aeeb86
change MidiClockTicker to use Session& not Session*
2023-03-24 14:19:16 -06:00
Paul Davis
33047987a7
add ProcessedRanges element to Session and update its contents appropriately
2023-03-24 14:19:16 -06:00
Paul Davis
af37406ed8
new data type to describe sample ranges processed during Session::process
2023-03-24 14:19:16 -06:00
Paul Davis
5dbbac0bc2
temporal: operator<< for Range and RangeList
2023-03-24 14:19:16 -06:00
Paul Davis
393929a55b
tempo twisting: various fixes and improvements to core logic
2023-03-24 14:19:16 -06:00
Paul Davis
edca8209aa
canvas: fix debug output after auto-fication
2023-03-24 14:19:16 -06:00
Paul Davis
7040ad1b74
temporal: API changes and implementation to support new twist operation
...
this includes using two different omega members for tempo objects,
a change that likely will not persist beyond the merge back to master.
2023-03-24 14:19:16 -06:00
Paul Davis
3036414e08
tempo: auto-fication of another loop
2023-03-24 14:19:16 -06:00
Paul Davis
37cae2f971
canvas: when an item is shown, potentially pick it as the current item
2023-03-24 14:19:16 -06:00
Paul Davis
b36a0493df
tempomap: use muldiv_round() not int_div_round to avoid errors
2023-03-24 14:19:16 -06:00
Paul Davis
45490bf43f
more functional tempo mapping
2023-03-24 14:19:16 -06:00
Paul Davis
d513653912
API development for time domain flipping
2023-03-24 14:19:15 -06:00
Paul Davis
1cd1430975
skeleton code for global temporal domain change during tempo mapping
2023-03-24 14:19:15 -06:00
Paul Davis
5c69aef56e
add memory fences to try to avoid a conceptual memory ordering issue between capture & the butler
2023-03-24 14:19:15 -06:00
Paul Davis
4137271188
int62_t: use explicit memory order for all loads and stores
...
Also, improve implementation of CAS loops for operator <X>=.
Ideally, we ought to test this on ARM, both before and after.
2023-03-24 14:19:15 -06:00
Paul Davis
fe17b98079
use explicit memory order for rcu reader/write exclusion
2023-03-24 14:19:15 -06:00
Paul Davis
d601e78e06
signed/type mismatch fix
2023-03-24 14:19:15 -06:00
Paul Davis
9e4d7e3224
comments and reordering for atomic fencing on dsp filter
2023-03-24 14:19:15 -06:00
Paul Davis
a486fba3e9
std::atomic - 2nd batch of changes to convert from glib to std::atomic
2023-03-24 14:19:15 -06:00
Paul Davis
4ba4cd69ff
switch from glib atomic to std::atomic (libs edition)
2023-03-24 14:19:15 -06:00
Paul Davis
d7922738f0
add required glib-atomic-related header, after rcu change
2023-03-24 14:19:15 -06:00
Paul Davis
945c19b8b4
libpbd: make RCU more C++-ish
2023-03-24 14:19:15 -06:00
Paul Davis
b35518e212
switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
...
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis
90c5524e7b
libbd: add required <cassert> include
2023-03-24 14:19:15 -06:00
Paul Davis
39ed528e25
std-ize: convert all boost shared/weak ptr includes to <memory>
...
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Robin Gareus
197157ecf8
Fix concurrency issue when adding/removing ports of latent plugins
...
This fixes an issue when changing port-configuration
or toggle strict-i/o of latent multi-out plugins.
`Session::auto_connect_thread_run` can run concurrently
while ports are added/removed from the GUI thread.
The latter invalidates IO::_port PortSet, while
the former thread iterates over ports.
This also changes the IO-Mutex into a RWLock to allow
concurrent access when possible.
2023-03-22 22:06:38 +01:00
Robin Gareus
5453e6f1f7
Fix distance calculation during relayer ( #9286 )
...
Due to rounding (r->position_sample() - start.samples())
can become negative even if (r->position () >= start).
with k = start_division and start_division < 0 this
caused an invalid vector access `layers[j-1][k]`.
2023-03-22 01:42:14 +01:00