Commit graph

19895 commits

Author SHA1 Message Date
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
Paul Davis
c2c23172bd ctrl surfaces: add method to BasicUI to stop slots in a given trigger box 2022-12-10 10:33:24 -07:00
Paul Davis
9403b116ad Mackie: make AudioInstruments button work correctly
Also toggle Global View LED appropriately
2022-12-10 10:32:47 -07:00
Robin Gareus
70b00f5201
Canvas: allow to group rendering of child items
> This group functionality can be convenient for performing
> intermediate compositing. One common use of a group is to
> render objects as opaque within the group, (so that they
> occlude each other), and then blend the result with
> translucence onto the destination.
https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-push-group

The main use case where will be to render opaque layered
[MIDI] regions transparently onto a grid.
2022-12-10 02:37:04 +01:00
Robin Gareus
cd7c981e6e Use macOS API to open finder at given path 2022-12-08 02:15:29 +01:00
Robin Gareus
201617f03b Fix macOS URI open
curl_easy_escape() escapes slashes, which fails with openURL on modern macOS.
Also add missing call to curl_easy_cleanup().
2022-12-08 02:12:15 +01:00
Robin Gareus
d3e736f7d3
Consistent audio/MIDI monitor modes
Now that both Audio And MIDI tracks support all three record
modes. Monitoring should be consistent. When recording
"Sound on Sound" does cue monitoring, while "layered" (opaque).
and "non-layered" monitors only the input.

Two differences remain: (1) when not recording MIDI tracks still
monitor both Input and Disk (unless Non-layered is set), and
a final special case is that MIDI tracks always monitor input
as fallback. the latter ties in with (2) audio tracks can
use hardware monitoring.
2022-12-07 22:49:08 +01:00