13
0
Commit Graph

37086 Commits

Author SHA1 Message Date
37cae2f971 canvas: when an item is shown, potentially pick it as the current item 2023-03-24 14:19:16 -06:00
b36a0493df tempomap: use muldiv_round() not int_div_round to avoid errors 2023-03-24 14:19:16 -06:00
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
74225f07de nominally handle popup menu for mapping cursor item (unfinished) 2023-03-24 14:19:16 -06:00
ca8127c458 add canvas item type for mapping cursor 2023-03-24 14:19:16 -06:00
ab3fe29afd no need for a temporary ptr-to-tempo map 2023-03-24 14:19:16 -06:00
f96a0d0ddf editor: adding handling of mid-mapping tempo redisplay 2023-03-24 14:19:16 -06:00
604984ae6f enums: add new enum for MappingCursorItem type 2023-03-24 14:19:16 -06:00
aa3cbd8791 editor: expand handling of tempo-redisplay in middle of drag 2023-03-24 14:19:16 -06:00
ece438d73d editor: refactor snap to bbt to allow specifying non-grid-setting grid type 2023-03-24 14:19:16 -06:00
49439d2acf ensure that the ask-about-quit dialog is shown at mouse-position 2023-03-24 14:19:16 -06:00
868d606d16 track mouse motion in the mapping bar
This does not yet snap to BBT positions
2023-03-24 14:19:16 -06:00
5e01503a56 add a new canvas-based cursor for mapping 2023-03-24 14:19:16 -06:00
d61a741e4b mapping bar: some mouse handling 2023-03-24 14:19:16 -06:00
e9b83e0f1d it's only debug info but let's get it right 2023-03-24 14:19:16 -06:00
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
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
45490bf43f more functional tempo mapping 2023-03-24 14:19:16 -06:00
21074b189a remove unnecessary virtual (no default value involved) 2023-03-24 14:19:15 -06:00
d25a615e20 API development for time domain flipping (GUI edition) 2023-03-24 14:19:15 -06:00
d513653912 API development for time domain flipping 2023-03-24 14:19:15 -06:00
1cd1430975 skeleton code for global temporal domain change during tempo mapping 2023-03-24 14:19:15 -06:00
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
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
fe17b98079 use explicit memory order for rcu reader/write exclusion 2023-03-24 14:19:15 -06:00
d601e78e06 signed/type mismatch fix 2023-03-24 14:19:15 -06:00
9e4d7e3224 comments and reordering for atomic fencing on dsp filter 2023-03-24 14:19:15 -06:00
28d244bd0a use cstdint instead of stdint.h 2023-03-24 14:19:15 -06:00
a486fba3e9 std::atomic - 2nd batch of changes to convert from glib to std::atomic 2023-03-24 14:19:15 -06:00
c304edd253 switch from glib atomic to std::atomic (gui edition) 2023-03-24 14:19:15 -06:00
4ba4cd69ff switch from glib atomic to std::atomic (libs edition) 2023-03-24 14:19:15 -06:00
d7922738f0 add required glib-atomic-related header, after rcu change 2023-03-24 14:19:15 -06:00
945c19b8b4 libpbd: make RCU more C++-ish 2023-03-24 14:19:15 -06:00
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
90c5524e7b libbd: add required <cassert> include 2023-03-24 14:19:15 -06:00
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
25fcdf57de
Fix Linux installer for demo-debug versions (amend 4bc8939) 2023-03-24 20:24:33 +01:00
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
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
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
6dadac73ab
Add context-menu options to disconnect plugin-pins 2023-03-20 23:14:06 +01:00
73bc7e6cb7 temporal: fix ::get_tempo_and_meter() for BBT arguments 2023-03-19 10:13:06 -06:00
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
2ea0bb5f37 try to prevent a crash when handling a freesound sample with a non-UTF8 filename 2023-03-17 14:24:08 -06:00
48ee85ea0c decrease the default opacity of "dragged region" (in all themes) 2023-03-17 11:56:08 -05:00
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
5be4674adb
NO-OP: clang-format 2023-03-17 16:00:07 +01:00
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
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
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