Commit Graph

36193 Commits

Author SHA1 Message Date
92963230a7 store insert-at selection in UI config variable when it is used in the add route dialog 2022-10-16 15:12:30 -06:00
23010a910d
Be liberal about what to accept
This addressee a bug where ardour 6 was able to write negative
duration `length="-1"` `length-beats="-3.3650500597559585e-05"`

Ideally timecnt_t::string_to should check for invalid,
negative, duration. But this also catches a more generic case.

```
exception at str.substr (1)
#3 Temporal::timepos_t::string_to (this=0x7fffffff7bb0, str="") at libs/temporal/timeline.cc:904
#4 Temporal::timecnt_t::string_to (this=0x7fffffff7ba0, str="-2") at libs/temporal/timeline.cc:294
#5 PBD::string_to<Temporal::timecnt_t> (str="-2") at libs/ardour/ardour/types_convert.h:131
```
2022-10-16 22:30:35 +02:00
31cf2dfa1b
Do not constrain bundle names to 32 chars 2022-10-16 21:45:09 +02:00
c8671b5747
List matching I/O Plugin ports in connection button dropdown 2022-10-16 21:44:52 +02:00
8d879616a6
Improve connection button label for I/O plugins 2022-10-16 21:06:27 +02:00
27b457add1
Fix German translation (invalid escape sequence) 2022-10-16 20:22:36 +02:00
8240875379
Prevent overflow for huge time values (fix 99h clock limit @96kHz)
The default clock-limit is 99:59:59:00, just under 360000 seconds
(see ARDOUR_UI::parameter_changed, clock-display-limit).

AudioClock calculates this limit pos as
`timepos_t (limit_sec * _session->sample_rate())`

This caused an overflow leading to a negative value:
```
   timepos_t (359999 * 96000)
   samples_to_superclock (359999 * 96000, 96000)
   int_div_round (359999 * 96000 * 282240000, 96000)
```

Ideally this will be optimized, here the sample-rate cancels out,
so we could use a c'tor usin seconds.
In other cases we could cache the pre-calculated sc_per_sample:
`superclock_ticks_per_second() / superclock_t (sr)` which is an
integer for all commonly used sample-rates.
2022-10-16 18:46:36 +02:00
dd680926fe
Update preference to limit clock to 99h
This limit is actually enforced in ARDOUR_UI::parameter_changed,
so this is really a no-op.
2022-10-16 18:46:31 +02:00
57af42ef84
Do not show I/O plugin port in the matrix that cannot be connected 2022-10-16 04:27:26 +02:00
2a2e5a49e7
List I/O Plugins separately in connection matrix 2022-10-16 04:03:55 +02:00
Mads Kiilerich
18527e4056
Use nice units for labels in the export spectogram
Before, the X-axis labels would be placed in nice even positions, but
with whatever odd time corresponded to that. That made it harder than
necessary to read the graph and approximate when things happened.

Instead, round the interval down to nearest power of ten ... and if
suitable, scale that up with a factor of 2 or 5. That will (with the
necessary handling of how seconds/minutes/hours relate) make sure that
the time labels are nice with a minimal amount of non-zero digits. That
makes it easy to do math and interpolate when reading the graph.

The number of labels will change between something like 4 and 10 -
before it was always something like 7. That is fine, as long as it helps
the readability.

The total length is no longer the right-most label, but the length can
be found in the top-right corner.
2022-10-15 19:57:35 +02:00
Mads Kiilerich
797dd872e3
ArdourGraphs::time_axis : Replace xalign by clamping
Prepare for more flexible placement of the labels, where the last label
not necessarily is completely at the end.
2022-10-15 19:57:35 +02:00
Mads Kiilerich
272df0ac58
ArdourGraphs::time_axis : Introduce a constant label_pos 2022-10-15 19:57:35 +02:00
061d44feff
PortInsert: remove old API to query latency 2022-10-14 02:21:50 +02:00
c3697e1755
Overhaul PortInsert UI
* add gain controls for send/return
* add send polarity invert control
* allow to customize latency
* set transient parent
* cleanup and format source
2022-10-14 02:21:50 +02:00
40ea071873
PortInsert: emit signal when latency changes, cache I/O latency 2022-10-14 02:21:50 +02:00
0213fa6cc7
Implement PortInsert send/return gain contols 2022-10-14 02:21:50 +02:00
5a48a56bfe
Clean and overhaul up SendUI
* add polarity control
* set transient parent
* remove unused methods
* clang-format source
2022-10-14 02:21:50 +02:00
8113633bb9
Cleanup Track Automation kids
Send levels are dedicated to each send (Processor), and
not route-owned direct child automation for each time-axis.
2022-10-14 02:21:50 +02:00
afd23d42cd
Add dedicated InsertReturnLevel type (2/2) 2022-10-14 02:21:50 +02:00
2939ed3164
Add dedicated InsertReturnLevel type
This is preparation for PortInsert Send and Return
level control.
2022-10-14 02:21:49 +02:00
f3423b8a77
Consolidate send/delivery gain control
This moves the _amp from send to delivery (which already
applies gain for the master-bus normalization). This generalizes
the use of a gain stage for use in port-inserts.
2022-10-14 02:21:49 +02:00
e665d456c3
Optimize RB stretch/pitch, set max-process size hint 2022-10-14 02:21:49 +02:00
6684a80d1d
Add Ardour logo sources (thanks to thorwil) 2022-10-14 02:21:09 +02:00
a7a8783bb4 increase superclock_ticks_per_second to provide integer handling for NTSC (following Facebook "flicks") 2022-10-13 18:05:49 -06:00
2b3312e7d3 better color selection for text in clip list 2022-10-13 17:39:16 -06:00
9370ae2231
Add Thorsten Wilms logo design process
Original upstream:
https://thorwil.files.wordpress.com/2013/03/ardour_process_new.pdf
https://thorwil.wordpress.com/?s=ardour
2022-10-13 19:24:43 +02:00
38a40d7c06
Session drop graph-nodes before ~Session
Previously active Routes were retained until the end of
Session d'tor and not dropped during Session::destroy.

While most resources were explicitly cleaned up via DropReferences,
Processor UIs are kept around until the actual destructor runs.
Likewise some controllable are kept around while the GraphNode (Route)
owning it is not released.
2022-10-13 17:49:34 +02:00
4d4da13d55 Fix Clip listing (include all shortcuts, update colors)
* GTK fills in the snapshots in the background (using background threads
  to test files).
* Actual colors may only available after the widget is realized (not
  directly after ensure_style)
2022-10-13 04:10:11 +02:00
8d866f58a2 fix mis-use of locally-scopped variable name in auto for loop 2022-10-12 16:51:04 -06:00
392210270c
Fix pitch-shift producing partially silent regions
It can happen that with a scaling factor of 1.0, rubberband
produces slightly fewer samples than the original.

Region::set_length (region->length * 1.0) is idempotent and
does not shorten it as appropriate to the longest source
via Region::verify_length(), which leads to various issues.
2022-10-12 22:25:10 +02:00
396013bf5a
Set and create clip-library folder if needed
Direct calls to `Config->get_clip_library_dir` may return
"@default@". The path is OS specific and may also not
yet exist, so indirection is required.
2022-10-12 16:11:50 +02:00
ab7254e357 new Xcolors theme from LAM 2022-10-11 14:20:35 -06:00
92f8d1e577
Further reduce differences in themes (sort and indent modifiers) 2022-10-11 21:59:10 +02:00
fb4115d6b0 add new diehard3 theme from avlinux/gmaq 2022-10-11 13:48:55 -06:00
cae565f3be
Copy missing color definitions to alternative themes 2022-10-11 21:29:50 +02:00
56e5c5fc3b
Sort colors in default theme, remove space 2022-10-11 21:29:50 +02:00
d69dfc26a6 no whole file regions in triggerbox slots 2022-10-11 12:56:41 -06:00
f9a2da3426
LXVST: dispatch close when GUI is destroyed
see also e635571f2f
2022-10-11 20:55:01 +02:00
45398fb65c
Fix switch custom -> generic plugin UI
See also e635571f2f and bd898a68
2022-10-11 20:44:04 +02:00
3b2eb7507b Fix macOS compatibiliy
readlink -f option requires recent macOS 12.6
2022-10-11 20:06:17 +02:00
ae6bf4bc7d
Deploy LRDF presets (if any) 2022-10-11 17:07:33 +02:00
5324c9092e
Clean up LADSPA preset path
* Allow to bundle presets
* Do not use /usr/[local] on Windows
(This may need further work, for Windows, since default user
presets are in `file://$HOME/.ladspa/rdf/`)
2022-10-11 16:39:17 +02:00
340a260b30
Remove old LRDF VST presets
Ardour has not been using RDF for VST2 presets since at least
10 years.
2022-10-11 16:23:20 +02:00
4d76d72af4
Update bundled media URL 2022-10-11 15:24:17 +02:00
664f6768f2
Fix windows builds, use portable setenv 2022-10-11 15:13:41 +02:00
John Emmas
43a9ae7458 Use glib to provide setenv()
(for some strange reason, setenv() is called putenv() on Windows!!)
2022-10-11 10:46:57 +01:00
7216a767df
The return of the send level meter 2022-10-11 03:58:35 +02:00
0aa5a8674c
Remove accidentally commited file 2022-10-11 03:28:18 +02:00
bd898a68df
Fix switch custom -> generic plugin UI (amend e635571f2f) 2022-10-11 02:40:55 +02:00