Commit Graph

37084 Commits

Author SHA1 Message Date
Paul Davis
20349d868e fix various aspects of display of mapping cursor
This might all change in the future, or even go away.
2023-03-24 14:19:16 -06:00
Paul Davis
74225f07de nominally handle popup menu for mapping cursor item (unfinished) 2023-03-24 14:19:16 -06:00
Paul Davis
ca8127c458 add canvas item type for mapping cursor 2023-03-24 14:19:16 -06:00
Paul Davis
ab3fe29afd no need for a temporary ptr-to-tempo map 2023-03-24 14:19:16 -06:00
Paul Davis
f96a0d0ddf editor: adding handling of mid-mapping tempo redisplay 2023-03-24 14:19:16 -06:00
Paul Davis
604984ae6f enums: add new enum for MappingCursorItem type 2023-03-24 14:19:16 -06:00
Paul Davis
aa3cbd8791 editor: expand handling of tempo-redisplay in middle of drag 2023-03-24 14:19:16 -06:00
Paul Davis
ece438d73d editor: refactor snap to bbt to allow specifying non-grid-setting grid type 2023-03-24 14:19:16 -06:00
Paul Davis
49439d2acf ensure that the ask-about-quit dialog is shown at mouse-position 2023-03-24 14:19:16 -06:00
Paul Davis
868d606d16 track mouse motion in the mapping bar
This does not yet snap to BBT positions
2023-03-24 14:19:16 -06:00
Paul Davis
5e01503a56 add a new canvas-based cursor for mapping 2023-03-24 14:19:16 -06:00
Paul Davis
d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00
Paul Davis
e9b83e0f1d it's only debug info but let's get it right 2023-03-24 14:19:16 -06:00
Paul Davis
18249f7395 ardour has a new ruler
The mapping bar is where tempo mapping operations will take place
2023-03-24 14:19:16 -06:00
Paul Davis
38bb89c110 more functional tempo mapping
TempoMarker drag modifies tempo (and thus beat-time positions
and durations).

BBTRuler drag modifies the map but not positions/durations
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
21074b189a remove unnecessary virtual (no default value involved) 2023-03-24 14:19:15 -06:00
Paul Davis
d25a615e20 API development for time domain flipping (GUI edition) 2023-03-24 14:19:15 -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
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