Commit Graph

37263 Commits

Author SHA1 Message Date
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 28d244bd0a use cstdint instead of stdint.h 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 c304edd253 switch from glib atomic to std::atomic (gui edition) 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 25fcdf57de
Fix Linux installer for demo-debug versions (amend 4bc8939) 2023-03-24 20:24:33 +01:00
Robin Gareus 4bc8939dda
Update bundle/package scripts
* Ardour only has 64 bit builds
* gcc5 or newer (C++11 ABI)
* Add "-demo" suffix to freebie builds
* Remove wine support in package scripts
2023-03-24 19:07:30 +01: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
Robin Gareus 6dadac73ab
Add context-menu options to disconnect plugin-pins 2023-03-20 23:14:06 +01:00
Paul Davis 73bc7e6cb7 temporal: fix ::get_tempo_and_meter() for BBT arguments 2023-03-19 10:13:06 -06:00
Robin Gareus c3c44d61a4
VST3: fix typo in 03263950b, use plugin's SpeakerArr
This fixes a crash in some plugins (e.g. Auburn Sounds Couture)
when disconnecting all inputs (e.g. moved before a synth).
Previously run was called with numChannels = 0
Even though the plugin refused to be configured that way.
2023-03-19 01:22:13 +01:00
Paul Davis 2ea0bb5f37 try to prevent a crash when handling a freesound sample with a non-UTF8 filename 2023-03-17 14:24:08 -06:00
Ben Loftis 48ee85ea0c decrease the default opacity of "dragged region" (in all themes) 2023-03-17 11:56:08 -05:00
Ben Loftis 4de53fa600 make regions transparent during fade-handle drags
* during drag and trim operations, we use "dragging region" transparency
  so you can see the audio data beneath your region(s)

* we already do this for region-end-trim fade drags, which is a special
   kind of trim operation, accessed from the 'lower' drag handle

* now we also trigger transparency for regular fade trims.

   see discussion at:
https://discourse.ardour.org/t/regions-transparency-in-7-2/108060/31
2023-03-17 11:56:08 -05:00
Robin Gareus 5be4674adb
NO-OP: clang-format 2023-03-17 16:00:07 +01:00
Robin Gareus 2a3eb6dc88
VST3: match pin-mapping with VST speaker-arrangement
This enables all channels left of the last connected pin
for each given bus. e.g. when using just the 2nd (right)
input of a given bus, the plugin is configure in stereo
mode, with the 1st (left) input being fed with silence.

VST3 does not have a "right-channel mono" configuration.

It is also preferable to have Ardour do the pin/channel
mapping.
2023-03-17 15:46:34 +01:00
Robin Gareus 03263950b7
VST3: query plugin's BusArrangements
This fix an issue in case a given plugin does not
support zero or less than expected numChannels.
2023-03-17 15:12:36 +01:00
Robin Gareus 6cb90471fe
VST3: set numChannels to match the speaker-arrangement
This fixes an issue with recent JUCE when using a stereo
plugin on a mono track.

`juce::validateLayouts` requires that numChnanels matches
the configured channel-mapping:
69795dc8e5/modules/juce_audio_processors/format_types/juce_VST3Common.h (L630)
JUCE could be more liberal and accept
`(int) mapIterator->size() > it->numChannels`
2023-03-17 05:58:10 +01:00
Robin Gareus 05a13e151e
PI: Leave unconnected buffers when split processing
Otherwise a stereo plugin on a mono bus will still
have two valid input buffers, and a map saying so
during process().
2023-03-17 05:58:10 +01:00
John Emmas f8557cc00f Export AudioGraphper::Source and AudioGrapher::ListedSource
after an MSVC update this morning, these classes need to be exportable now - I'm not quite sure why :-(
2023-03-15 13:39:56 +00:00
Robin Gareus ca67752dc5
Add missing well-known ctrl implementation (amend prev commit) 2023-03-14 20:47:09 +01:00
Robin Gareus f1a0004d38
Expose new well-known ctrls to stripable API
This allows to use new those in ctrl surfaces
2023-03-14 18:24:12 +01:00
Robin Gareus 1d9c2004be
Backport Mixbus9 well-known ctrls
This also removes the mixbus specific implementation
from ardour's codebase
2023-03-14 17:27:05 +01:00
Robin Gareus 6ff8fb7c5e
Fix silence at start/end of export
Previously that caused an assert() in audio_clock.cc:1964
current_duration(): Assertion `is_duration' failed.
Optimized builds always returned zero duration.
2023-03-14 00:35:13 +01:00
JungHee Lee 9dc523710c Update ko.po 2023-03-13 21:52:31 +01:00
Todd Naugle 0b50bec6f4 MCU: Update view modes for Cue, Foldback, and VCA
This changes the function of the Inputs, Instruments, and Outputs
buttons as follows:

Inputs = Cue Tracks
Instruments = VCA
Outputs = Foldback Busses
2023-03-13 12:21:49 -05:00
Robin Gareus cc359b973f
Allow harrison channelstrip to use build-stack 2023-03-13 16:28:42 +01:00
Robin Gareus d0fac54261
Always call cycle-end after a cycle-start
This fixes an assert (_in_cycle) when changing backends
since 77bb262c2.
2023-03-12 16:59:02 +01:00
Marijn Kruisselbrink 8810c36c6e
Fix audio source names when importing files with > 2 and <= 26 channels.
This code presumably intended to name sources "foo%a", "foo%b" etc, but
since it was incorrectly appending the character as an integer sources
instead ended up being named "foo%97", "foo%98" etc.

Also changes the branching logic to use this branch upto 26 channels,
rather than just upto 25 channels, as that seems to have been the
intention.
2023-03-11 18:53:26 +01:00
Robin Gareus 4d7d58196f
Lua: mixer-recall, fix issue introduce in 9a580078
This script still needs a significant overhaul.
global-path instance parameter is no longer exposed, etc
2023-03-10 02:36:37 +01:00
Robin Gareus 339d3e1265
Drop another debug message 2023-03-09 18:23:20 +01:00
Alexandre Prokoudine 44bfaa9235 Fix Korean translation
Remove duplicated entries
2023-03-08 03:44:11 +01:00
Alexandre Prokoudine f8d85a2f85 Fix the French translation
Remove a copy of itself appended to the end, as well as an extra '\n'
2023-03-08 03:19:33 +01:00
Robin Gareus cf4056cf34
Fix alignment of unconnected tracks
This is relevant when bouncing track -> track -> n/c.
It also helps to balance send latency route [send to bus] -> n/c
when the bus is connected to master or outputs.
2023-03-07 20:50:11 +01:00
Robin Gareus 5a8b69555f
Fix metronome capture alignment
This undoes edd68d8682, "ExistingMaterial" worked IFF
the click playback was exactly 1 cycle delayed and the
disk-writer _playback_offset was set to 1 cycle.

Now that audio buffers are flushed (see prev commit), the
click I/O's output is directly available and CaptureTime
is the correct alignment (as it always was).
2023-03-07 20:50:00 +01:00
Robin Gareus 62fc1d3c2e
Flush audio-buffers for internal connections
Forward data for ports that are both internally and
externally connected.

e.g. click-io may be connected to a track as well as physical
outputs. Since the port is externally connected, data is written
to an internal buffer _data[], and only at cycle-end resampled
to engine-buffers.

However a track's recording the metronome is not externally
connected. Hence data is directly read from the engine-buffers.
Summing also happens at engine level, so data has to
be written back for downstream ports to read them in the same cycle.
2023-03-07 20:49:54 +01:00
Robin Gareus 77bb262c26
Add API to check for internal port connections 2023-03-07 20:49:37 +01:00
Robin Gareus 7a18ef6ceb
Fix LADSPA log-scale default (correct e1ef2c7e0d) 2023-03-06 20:38:11 +01:00
alex 4ca947f078 changed parantheses and lines 2023-03-06 00:43:34 +01:00
alex 777c7c6c03 added trackcolors to X-Touch, added _is_xtouch to device info as condition for trackcolors 2023-03-06 00:08:38 +01:00
Olivier HUMBERT bc1ed2e256 Update French translation for 7.3.0 2023-03-03 17:17:49 +01:00