Commit graph

19901 commits

Author SHA1 Message Date
Robin Gareus
41325a75fe
Add a debug message to track down crash scanning LV1 plugins 2023-01-03 02:26:50 +01:00
Robin Gareus
0f22f5e319
Identify surfaces by ID (not name) 2023-01-02 21:15:19 +01:00
Marijn Kruisselbrink
bf7f6386d5
Re-enable lib/ardour/test/session_test.
This test seems to be compiling and passing just fine (when run in
isolation), so turning it back on seems like a good idea. To make it
pass when run as part of the full ardour test suite, this does remove
the WebSockets control surface from the control surfaces test though, as
that control surface messes up the event loop of the main thread, which
would otherwise cause use-after-free crashes in the session test.
2023-01-02 20:31:12 +01:00
Robin Gareus
208aedaeaa
Fix "Invalid Source port" error with default config 2023-01-02 04:27:20 +01:00
Robin Gareus
d0b95b7685
Do not truncate pretty bundle names
This also fixes a potential buffer overlow on Windows.
Window _snprintf does not null terminate the string in case
the formatted length is longer than the given buffer size.
http://msdn.microsoft.com/en-us/library/2ts7cx93%28v=vs.110%29.aspx
(mingw's uses _vsnprintf under the hood which is also affected).

Alternatively we could rely in g_snprintf() to truncate the
string.
2023-01-01 17:44:43 +01:00
Marijn Kruisselbrink
ef253d3fc9
Use pretty names of ports not just for mono bundles, but also stereo.
Session::setup_bundles() creates mono and stereo bundles from hardware
inputs and outputs. For mono bundles the name of the bundle was based on
the pretty name of the port (if the port has a pretty name), however
stereo bundles always used the indices of ports to make the name.
When using pipewire (or otherwise having multiple jack clients exposing
physical ports) the indices are even less meaningful than otherwise (as
different devices could appear in arbitrary order), so also using pretty
names for stereo bundles makes the UI less confusing in places where
these bundle names are used (for example the menu when clicking on an
IOButton).
2023-01-01 17:26:14 +01:00
Robin Gareus
24597de7a2
Make RDF info/warning messages translatable 2022-12-30 19:10:07 +01:00
Robin Gareus
a4036b9590
Set non_rt_pending no-roll parameter (previously uninitialized) 2022-12-30 19:09:16 +01:00
Robin Gareus
36d640c8bc
Yet another attempt to fix Windows/LADSPA presets 2022-12-29 19:02:15 +01:00
Robin Gareus
55ac803701
Fix Windows builds (user_cache_directory) 2022-12-29 18:29:51 +01:00
Robin Gareus
4bb7e43008
x-platform LADSPA user preset files
This fixes saving/loading custom user presests on Windows
2022-12-29 18:22:48 +01:00
Robin Gareus
3ba999b9d7
Also use LDRF (and aubio4) on Windows 2022-12-29 01:58:11 +01:00
Robin Gareus
58ade46de3
Fix loading LADSPA RDF files x-platform
Searchpath on Windows uses backslash as folder separator,
however file URLs use forward-slash file://C:/foo/bar/
2022-12-28 20:06:00 +01:00
Robin Gareus
478338854d
Improve peak-file debug output, print affected source-name 2022-12-27 13:35:53 +01:00
Robin Gareus
475063c24d
ALSA: update endianess conversion functions
This follows upstream zita-alsa-pcmi-0.6.1
2022-12-27 13:32:31 +01:00
Ben Loftis
ac30964d67 remove debug output 2022-12-26 14:03:32 -06:00
Robin Gareus
140b373cac
Clean up ExportAnalysis code
* only zero limiter_pk array on initialization
  (other data is explicitly initialized)
* resize peak-data vector to at least 800 bins
2022-12-26 14:34:25 +01:00
Robin Gareus
7b3cbaf68f
Inform User when audio-read failed (debug builds)
Previously AudioPlaylist::read always returned the timecnt that
it was supposed to read into the buffer, regardless if the given
number of samples was read. The check in DiskReader::refill_audio
`if (nread != to_read)` never triggered.

This can happen when changing an audio-region's time-domain to
music-time (glue to bars/beats). Region-length (beats converted
to samples) can exceed the actual audio-source length (in samples).
2022-12-26 13:40:05 +01:00
Robin Gareus
7e9f29e888
FP8: directly cancel solo (do not rely on GUI) 2022-12-26 13:33:19 +01:00
Paul Davis
b2a6fb70b4 remove debug output 2022-12-20 22:01:41 -07:00
Paul Davis
818c30a98d temporal: add optional with_reset arg to all map ::remove_*() methods 2022-12-20 21:54:05 -07:00
Paul Davis
0ee0226776 temporal: no stretching a tempo that is the last one or precedes a BBT marker 2022-12-20 21:33:13 -07:00
Paul Davis
d3dd865093 temporal: NOOP - add helpful comment 2022-12-20 21:31:31 -07:00
Paul Davis
ae36f8e445 temporal: provide TempoMap::replace_tempo() 2022-12-20 21:31:02 -07:00
Paul Davis
033b4c5152 temporal: fix implementation of TempoMap::copy_points()
This could re-order the map in the presence of BBT markers
2022-12-20 21:29:44 -07:00
Ben Loftis
3e19363c4c fix typo in prior 10d125: sort presets 2022-12-19 10:04:29 -06:00
Robin Gareus
f058f910f4
Actually use overloaded get_presets() implementations 2022-12-19 16:43:42 +01:00
Robin Gareus
10d12599dd
Sort plugin presets by default 2022-12-19 16:41:41 +01:00
Robin Gareus
ae321721cf
Also thin automation after touch/latch
AutomationList::start_touch must not start a write-pass.
That function is also called when the transport is no rolling.
A write-pass is started via AutomationWatch::add_automation_watch.
2022-12-18 01:45:04 +01:00
Robin Gareus
028c19cd10
Remove hardcoded thinning factor 2022-12-18 00:55:28 +01:00
Robin Gareus
a5f36bbbbf
Fix thinning (normalize parameter value)
This fixes thinning of MIDI data (range 0..127) and
other parameters with range other than 0..1.
2022-12-18 00:55:12 +01:00
Robin Gareus
5b52aa956f
Prepare for region polarity inversion (using negative gain) 2022-12-17 13:14:54 +01:00
Robin Gareus
37d6f1026a
a-eq: ifdef methods only used for inline display 2022-12-16 23:05:36 +01:00
Robin Gareus
3b9a253a84 Bind weak pointers to rt_slot events
This fixes a crash when deleting routes, while there are still
automation events queued for the route.

Specifically, SoloControl has a reference Soloable& _soloable; which
points to the parent route. A rt-event can still hold a valid shared
pointer to the SoloControl, even if the route is destroyed.
Calling SoloControl::actually_set_value is fine (the control still
exists due to the shared ptr), but then checking the parent route:
```
if (_soloable.is_safe() || !can_solo())
```
accesses the already deleted route, which causes a crash.

The solution implemented here is to not bind a shared_ptr to the
realtime event. However, since deletion of the route happens in the main
UI thread, there may or may not still be a race.
2022-12-16 00:12:48 +01:00
Robin Gareus
c64869596e
Fix auto audio monitoring when using hw monitoring 2022-12-15 17:24:17 +01:00
Robin Gareus
edd68d8682
Automatically align metronome when recording it to a track 2022-12-15 00:55:32 +01:00
Robin Gareus
95544a86a0
Convert SMF track names to UTF-8 2022-12-15 00:30:18 +01:00
Robin Gareus
eec36feb11
Fix importing MIDI files with duplicate track names 2022-12-15 00:29:50 +01:00
Robin Gareus
75c9927d75
Tweak MIDI file import parameters
* Create opaque regions
* Set interpolation of parameters to be discrete
  (just like at rec-stop).
2022-12-14 16:14:47 +01:00
David Robillard
27dfd8a7e3 Fix loading LV2 presets with non-float port values
In practice, this mostly means integers when presets leave off the ".0", but we
implement all the numeric types here for good measure.

Also while we're at it, warn about unknown types now so it doesn't take three
people a half an hour to figure out what's going on the next time something
like this happens.
2022-12-13 22:03:48 -05:00
Paul Davis
bd8c3af2a2 fix crash on MIDI unlearn for cue slot (bad iterator 2022-12-13 17:43:16 -07:00
Robin Gareus
eb1373404a
FP8: do not reset fader to unity on re-selecting
This disables the feature added in 057fd9259e.
The idea was to use double-click to reset the fader (like
Harrison consoles). Simply re-select can lead to accidents.
2022-12-13 18:01:27 +01:00
Robin Gareus
bd091906ac
Fix OSC/liblo zeroconf, properly query server URL 2022-12-13 17:15:54 +01:00
Robin Gareus
d704572ed5
FP8: fix monitor control
monitor_active() is the wrong API (it checks if any
monitor-bus settings are enabled or used).
2022-12-13 17:14:52 +01:00
Edgar Aichinger
d92342fc90
update german translation 2022-12-12 11:42:39 +01:00
Robin Gareus
d1ef9947a2
Add Lua bindings to change mute-points 2022-12-12 10:43:59 +01:00
David Robillard
d568bb5a06 Fix unused computed values
For example:

../libs/pbd/reallocpool.cc:138:38: warning: value computed is not used
[-Wunused-value]
  138 |                 ASSERT (_asize (ptr) <= newsize);
2022-12-11 11:54:03 -05:00
Paul Davis
39c324b620 temporal: fix ::get_grid() crash condition
We cannot call TempoMetric::superclock_at (BBT_Time) if the BBT time is beyond
the range of the current TempoMetric. We must discover that *before* we make
that call, not as part of the test to see if we've exceeded the range.
2022-12-10 22:59:58 -07:00
Paul Davis
db3e87a7e4 do nothing gracefully if asked to remove only tempo 2022-12-10 14:14:12 -07:00
Paul Davis
ab34861388 canvas: provide a means of blocking change notifications from Item propagating up the object tree 2022-12-10 13:37:16 -07:00