13
0
Commit Graph

36381 Commits

Author SHA1 Message Date
Mads Kiilerich
652a2aa3ac Fix sndfile_data_width use of low bits of subtype of libsndfile format
The libsndfile format was masked with 0xf instead of the usual
SF_FORMAT_SUBMASK. It seems like the end result generally was correct
anyway, since no supported format used subtypes that used the low bits
for anything else. Most formats use SF_FORMAT_PCM subtypes. (Only Ogg
Vorbis uses a subtype, but that happens to have 0 in the low bits and
ended up in the "this will never happen branch" ... which happened to
work too.)

This could however be a real problem when SF_FORMAT_MPEG_LAYER_III with
value 0x82 is supported ... unless worked around in some way.

I don't see anything anywhere that could stuff anything in the high bits
of the subtype, so this trivially fixed by using SF_FORMAT_SUBMASK
correctly.
2022-11-04 03:52:45 +01:00
Mads Kiilerich
6531b24e9a ExportGraphBuilder: fix invalid use of SF_FORMAT as a bitfield
Apply SF_FORMAT_SUBMASK before comparing with the expected value.

It seems like it accidentally used to work correctly for all supported
libsndfile formats anyway.

But: It seems unfortunate to hardcode Vorbis in this place. Other
formats with quality control would have to be added to the list too. It
would be nice to do use something like has_codec_quality ...
2022-11-04 03:52:45 +01:00
Mads Kiilerich
07c370bdc9 Handle exception from export formats with unknown enum values
Before, an export format with an invalid enum value (for example in the
Encoding id) would crash Ardour with:

	unhandled exception (type std::exception) in signal handler:
	what: unknown enumerator FOO in PBD::EnumWriter

That kind of error can happen if a new type is introduced and users
switch back to versions without it.

Instead, catch such exceptions while loading a format, log an error, and
skip the format - similar to how other format loading errors are
handled.
2022-11-04 03:52:45 +01:00
44c037dc4f
Prepare for themable step-entry dialog
Prepar for using UTF8 rather than fixed color PNG icons.
2022-11-03 21:54:05 +01:00
7b86ef8eff
Fix region gain for various edit operations
When deriving regions (split, cut), the Region Gain curve
must not be inherited as-is.

See also 8b0ab38675 and e40f58c106
2022-11-03 21:22:32 +01:00
2b0e6ec476
NO-OP: clang format 2022-11-03 00:28:24 +01:00
edc19e2b7d Slight adjustment of wording in Quick Audio Export 2022-11-03 01:21:13 +03:00
6c575d0ced key binding changes
Use primary-e for quick export, primary-d for duplicate, secondary-d for multidup
2022-11-02 15:40:07 -06:00
19236c2a7d Handle time-domain undo/redo changes
The region itself has no time_domain property, changing the time-domain
is done by changing the domain of the region length. undo/redo hence
emite a Length PropertyChange signal.
2022-11-02 21:40:55 +01:00
de4840fb9b Register Region::time_domain property
This fixes PropertyChanged signal emissions, previously a property_id of
zero was used instead.
2022-11-02 21:39:37 +01:00
4f707481f3 remove redundant code in ARDOUR_UI::update_transport_clocks()
MainClock::set() already implements this logic, and does so correctly if there is
no clock origin marker
2022-11-02 11:42:49 -06:00
6813884857
Restore custom generic midi settings #9062
DeviceInfo (bindings file) can include explicit motorized
and threshold settings. These values, when specified, are
used during load_bindings() during set_state and overwrote
any user customization.

Furthermore showing the GUI invalidated any prior setting
by explicitly calling binding_changed, which re-applies.
2022-11-02 17:44:00 +01:00
cb548ede3d
Safeguard plugin window deletion when closing the session
..otherwise it may happen that the idle-signal arrives after
the window has already been destroyed.
2022-11-02 16:23:43 +01:00
8857abc028 ensure that freesound token dialog is always on top (of similar windows) 2022-11-02 09:19:16 -06:00
Mads Kiilerich
ef5b29c6dd
PulseAudio: group operations and their verification together
Improves readability a bit. IMO.
2022-11-02 02:24:35 +01:00
Mads Kiilerich
b046ffe395
PulseAudio: drop idempotent dynamic cast 2022-11-02 02:24:35 +01:00
Mads Kiilerich
5bb7336c79
PulseAudio: consistent use of _buffer
For consistency and readability, avoid using high level getter in low
level code.
2022-11-02 02:24:35 +01:00
Mads Kiilerich
51501e5532
PulseAudio: don't set _run = false when stop() already did it 2022-11-02 02:24:35 +01:00
Mads Kiilerich
ba5ca2de05
PulseAudio: always log error reason in error handling
It adds some new strings to translate. These strings might be so rare
and technical that it is a bit pointless to translate them. But let's
stay consistent...
2022-11-02 02:24:35 +01:00
Mads Kiilerich
3fbbef3038
PulseAudio: fix "already active" message emitted when not active
Apparently just a missing fixup after copy-paste.
2022-11-02 02:24:34 +01:00
Mads Kiilerich
2666dfe900
PulseAudio: add missing return in error handling
Don't try to continue if the initial uncorking fails.
2022-11-02 02:24:34 +01:00
Mads Kiilerich
06b3d5ba33
PulseAudio: spin waiting for enough capacity to write
pa_threaded_mainloop_wait might wake up for several reasons. And there
is no point (but possibly harm) in moving on before we have verified
that PA actually is ready to receive our write without overflow.
2022-11-02 02:24:34 +01:00
Mads Kiilerich
27a2bf1f59
PulseAudio: clean up freewheeling transitions
ae3c8b19c6 and 03a17df68c reworked the transitions to and from
freewheeling. Some of it seems to have been experiments that tried
several things out, and generally it seems to have worked. It left some
commented out code. Clean that up.
2022-11-02 02:24:34 +01:00
Mads Kiilerich
04c24be2db
PulseAudio: don't drain the stream right after initial uncorking
The draining was introduced in ae3c8b19c6, apparently as an experiment
doing several changes. But the drain is outside the loop where
freewheeling changes, so the fix must have worked for other reasons.

There doesn't seem to be any benefit from draining at that point. The
stream is already empty. If not, we could have flushed it.

Draining right after uncorking will conceptualy create an intentional
underflow, even though it isn't reported as such. PipeWire seems to
(something like 6-12 months ago) have regressed in handling of that grey
area, causing that *underflow* to cause a request for too much data, and
thus causing constant *overflows* and unusable playback.

This change makes PulseAudio playback work for me again.
2022-11-02 02:24:34 +01:00
f47e517c86
Fix duplicate undo crash
Double-clicking on a line in internal edit mode adds
a new point in the line. In this case LineDrag need not
manage automation events because the "add" functions already
do. see AutomationTimeAxisView::add_automation_event and
AudioRegionView::add_gain_point_event
2022-11-02 02:05:58 +01:00
c84073e5cf
Print reversible command debug output
Debug builds will assert, the PBD::warning will not
be readable anywhere after that, so long it to stderr.
2022-11-02 00:47:09 +01:00
292cff7cfc
Prevent undo transaction crashes in optimized builds
Worst case this will lead to undo operations not being
saved rather than segfault (debug builds will still assert).
2022-11-02 00:45:06 +01:00
32d2b371c1 TouchOSC: add Clip_Launcher.tosc and update TransportController.tosc 2022-11-01 14:04:02 -05:00
c6dade9484 OSC: implement controls and feedback for a banked trigger grid controller
(first iteration ... API may change)
2022-11-01 13:52:54 -05:00
bdf9cedb0e triggers: implement grid banking in BasicUI so it can be shared (?) 2022-11-01 13:52:54 -05:00
0851d230cd basic_ui: add convenience functions to access an NxM bank of triggers 2022-11-01 13:52:54 -05:00
4f5106ae82 triggers: add convenience function to report # of trigger channels 2022-11-01 13:52:54 -05:00
756e0beb1b triggers: more session:: functions to access Triggers by index 2022-11-01 13:52:54 -05:00
c23210aae8 various fixes to prevent BasicUI diverging from GUI behaviors 2022-11-01 13:52:54 -05:00
e74a412bcb rename some operations slaves -> assigned channels 2022-11-01 13:52:54 -05:00
d9ebc8e09f
Scale plugin Analysis UI
This also increases the default font size and adds
a -15,+15 dB range mode.
2022-11-01 18:00:59 +01:00
Gon Solo
bb27b24596
Fix warning about integer division.
bugprone-integer-division: Result of integer division used in a floating
point context; possible loss of precision.
2022-11-01 15:56:55 +01:00
c9fe383813 dbl click on mixer strip name label/color button brings up color picker 2022-11-01 08:12:05 -06:00
6832ad2af9 use correct name for recording note color 2022-11-01 08:12:05 -06:00
ac1d2122dd add recording note color back to Xccolors theme 2022-11-01 08:12:05 -06:00
c9a9f40987
Add API for Lua DSP to directly set Biquad coefficients 2022-11-01 14:51:07 +01:00
e819af1948
Fix clearing automation
Due to refactoring in d41e66f169 and 83ad0a10b5
Automation > Clear re-displayed the line on mouse-over, even
if there are no events. Then trying to interact with he line
caused segfaults because the actual control points no longer exist.
2022-11-01 00:51:53 +01:00
910b637326 xoclors updates from LAM 2022-10-31 17:05:55 -06:00
6d1e4207de bbt ruler: no more micro/minor mark distinction. all bars are equal between labels 2022-10-31 17:05:55 -06:00
62540fb5af tempo map: grid generation, fix use of barmod to insert bar points into return 2022-10-31 17:05:55 -06:00
0ef10e4f5f canvas: ruler never shows marks/text for points too close to display the label 2022-10-31 17:05:55 -06:00
19ab75f5e5
Do not destroy Lua DSP GUIs (they are always generic UIs) 2022-10-31 22:47:30 +01:00
d425bfc3ff
Update Lua Biquad filter 2022-10-31 22:47:30 +01:00
5599e136c0
Implement "vicanek" matched biquad filters 2022-10-31 22:47:30 +01:00
6e3d3706dc MIDI region combine: fix conceptual errors (GUI edition) 2022-10-31 14:22:17 -06:00