Commit graph

36191 commits

Author SHA1 Message Date
Robin Gareus
31cf2dfa1b
Do not constrain bundle names to 32 chars 2022-10-16 21:45:09 +02:00
Robin Gareus
c8671b5747
List matching I/O Plugin ports in connection button dropdown 2022-10-16 21:44:52 +02:00
Robin Gareus
8d879616a6
Improve connection button label for I/O plugins 2022-10-16 21:06:27 +02:00
Robin Gareus
27b457add1
Fix German translation (invalid escape sequence) 2022-10-16 20:22:36 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
57af42ef84
Do not show I/O plugin port in the matrix that cannot be connected 2022-10-16 04:27:26 +02:00
Robin Gareus
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
Robin Gareus
061d44feff
PortInsert: remove old API to query latency 2022-10-14 02:21:50 +02:00
Robin Gareus
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
Robin Gareus
40ea071873
PortInsert: emit signal when latency changes, cache I/O latency 2022-10-14 02:21:50 +02:00
Robin Gareus
0213fa6cc7
Implement PortInsert send/return gain contols 2022-10-14 02:21:50 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
afd23d42cd
Add dedicated InsertReturnLevel type (2/2) 2022-10-14 02:21:50 +02:00
Robin Gareus
2939ed3164
Add dedicated InsertReturnLevel type
This is preparation for PortInsert Send and Return
level control.
2022-10-14 02:21:49 +02:00
Robin Gareus
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
Robin Gareus
e665d456c3
Optimize RB stretch/pitch, set max-process size hint 2022-10-14 02:21:49 +02:00
Robin Gareus
6684a80d1d
Add Ardour logo sources (thanks to thorwil) 2022-10-14 02:21:09 +02:00
Paul Davis
a7a8783bb4 increase superclock_ticks_per_second to provide integer handling for NTSC (following Facebook "flicks") 2022-10-13 18:05:49 -06:00
Paul Davis
2b3312e7d3 better color selection for text in clip list 2022-10-13 17:39:16 -06:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
8d866f58a2 fix mis-use of locally-scopped variable name in auto for loop 2022-10-12 16:51:04 -06:00
Robin Gareus
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
Robin Gareus
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
Paul Davis
ab7254e357 new Xcolors theme from LAM 2022-10-11 14:20:35 -06:00
Robin Gareus
92f8d1e577
Further reduce differences in themes (sort and indent modifiers) 2022-10-11 21:59:10 +02:00
Paul Davis
fb4115d6b0 add new diehard3 theme from avlinux/gmaq 2022-10-11 13:48:55 -06:00
Robin Gareus
cae565f3be
Copy missing color definitions to alternative themes 2022-10-11 21:29:50 +02:00
Robin Gareus
56e5c5fc3b
Sort colors in default theme, remove space 2022-10-11 21:29:50 +02:00
Paul Davis
d69dfc26a6 no whole file regions in triggerbox slots 2022-10-11 12:56:41 -06:00
Robin Gareus
f9a2da3426
LXVST: dispatch close when GUI is destroyed
see also e635571f2f
2022-10-11 20:55:01 +02:00
Robin Gareus
45398fb65c
Fix switch custom -> generic plugin UI
See also e635571f2f and bd898a68
2022-10-11 20:44:04 +02:00
Robin Gareus
3b2eb7507b Fix macOS compatibiliy
readlink -f option requires recent macOS 12.6
2022-10-11 20:06:17 +02:00
Robin Gareus
ae6bf4bc7d
Deploy LRDF presets (if any) 2022-10-11 17:07:33 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
4d76d72af4
Update bundled media URL 2022-10-11 15:24:17 +02:00
Robin Gareus
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
Robin Gareus
7216a767df
The return of the send level meter 2022-10-11 03:58:35 +02:00
Robin Gareus
0aa5a8674c
Remove accidentally commited file 2022-10-11 03:28:18 +02:00
Robin Gareus
bd898a68df
Fix switch custom -> generic plugin UI (amend e635571f2f) 2022-10-11 02:40:55 +02:00
Robin Gareus
0bf8e7d8cf
Make clock mode settings session independent
Much like the edit-tool and grid-types, clock-modes are UI state.

Saving the UI state separately allows them to be used
consistently for new sessions. Previously clock-modes were set
initially (at application start) and when loading sessions.

The clock modes of newly created sessions was different
depending on loading another session prior to creating the
session. This is now no longer the case.
2022-10-10 21:03:45 +02:00
Václav Šmilauer
6ad3dc1e43 Fix disabling l10n under Linux 2022-10-10 08:11:52 -06:00