Commit Graph

36420 Commits

Author SHA1 Message Date
Ben Loftis 44ff0e46ba MixerScenes: show last-selected scene (libardour part) 2022-11-08 17:29:40 -06:00
Ben Loftis f55f0409f8 MixerScenes : scenes should report a Change when applied
* this is a convenience so the GUI can show last-selected scene
2022-11-08 17:29:13 -06:00
Ben Loftis e4e773053a Re-order redirect-box (plugin) context menu
* move plugin-specific items (presets, edit, rename, etc) to the top
* group related items together
2022-11-08 13:13:30 -06:00
Ben Loftis dd33e19eda Disambiguate Controls in the redirect box: "Inline Controls" 2022-11-08 13:13:30 -06:00
Ben Loftis 8f9636f48e TouchOSC: Trigger Grid layout: improve banking 2022-11-07 12:45:25 -06:00
Ben Loftis 32c73f93a2 TouchOSC: Mixer Scene layout: Add an example layout for Mixer Scenes 2022-11-07 12:45:25 -06:00
Ben Loftis 7038e586d0 OSC: add support for Mixer Scenes: save, recall, and state feedback 2022-11-07 10:28:30 -06:00
Ben Loftis 0bda71b40b BasicUI: Add simple functions to store and recall Mixer Scenes 2022-11-07 10:28:30 -06:00
Ben Loftis 68dc07ecee Mixer Scenes: initialize with a datestamp, rather than no name at all 2022-11-07 10:28:30 -06:00
Alexandre Prokoudine 08c1b97e06 Rename some right-click menu items on rulers for clarity and consistency 2022-11-07 00:34:15 +03:00
John Emmas 9a678b71d6 'strings.h' isn't available in MSVC 2022-11-05 13:30:56 +00:00
Robin Gareus a0a49b9769
Prevent crash if export format is N/A
This can happen when trying to use the mp3 preset
while there is no mp3 encoder available.
2022-11-04 22:10:19 +01:00
Robin Gareus f807ea6ea2
Check if format is valid before starting export
This can happen if e.g. mp3 export is n/a, but a mp3
preset is present.
2022-11-04 21:57:53 +01:00
Robin Gareus 15e1b8f675
GUI support for libsndfile mp3 support 2022-11-04 21:22:34 +01:00
Mads Kiilerich 5ff1f28af8
Introduce internal MP3 support using libsndfile 1.1.0+ 2022-11-04 21:22:02 +01:00
Mads Kiilerich 886fe364b3
Add enums for handling libsndfile mp3 encoding
MP3 support was introduced in libsndfile 1.1.0 . It will be a simple
alternative to using external ffmpeg.

To avoid dependency on the new libsndfile or config-time checking,
hardcode the constants from sndfile.h . The actual availability will
have to be checked at runtime.
2022-11-04 19:51:26 +01:00
Mads Kiilerich f129cf4485
AudioClock: use str parameter instead of accessing widget directly 2022-11-04 19:22:05 +01:00
Mads Kiilerich 8fe7970c7c
AudioClock: drop unused em_width 2022-11-04 19:20:41 +01:00
Mads Kiilerich e1e8207486
configure: consistently use capitalization of help texts 2022-11-04 19:20:19 +01:00
Mads Kiilerich a9e5876207
Minor clarification of curl root CA comment
Left over from d069aa7a.
2022-11-04 19:18:54 +01:00
Mads Kiilerich 847f4fc93f
Fix bad escaped trailing newline in #define 2022-11-04 19:18:37 +01:00
Mads Kiilerich 6e9730ad6e
Fix negated origin time in main clock
When selecting "Origin" for the clock, it is expected that it should
work like "Absolute", except measuring from the selected Origin.
Positions to the right of origin should be positive.

However, recently, it got negated. As playback progressed, time got more
and more negative. Fix that by negating again.
2022-11-04 19:18:10 +01:00
Robin Gareus d23c506088
Add missing bracket to tag MIDI channel splitted files 2022-11-04 18:54:10 +01:00
Robin Gareus bed2e23ff6
Fix memory leak when replicating plugins 2022-11-04 17:57:50 +01:00
Robin Gareus fea7621b17
Fix state version for copy-construction (2/2)
see previous commit for details
2022-11-04 17:51:27 +01:00
Robin Gareus 619d523bbe
Fix state version for copy-construction (1/2)
In some cases copying an instance requires an explicit
set_state() call (e.g. copy internal plugin state). This is
done by calling `set_state(other->get_state())`.

::get_state() produces XML as matching current_state_version.
(not loading_state_version).
2022-11-04 17:51:09 +01:00
Robin Gareus 0aad0ae464
Copy state when replicating VST3 plugins (#9006) 2022-11-04 17:40:37 +01:00
Robin Gareus fe8d2e7695
third time lucky 2022-11-04 16:03:43 +01:00
Robin Gareus 03d2c8aa95
Fix previous commit strncasecmp() needs strings.h 2022-11-04 16:01:57 +01:00
Robin Gareus 0b8adbb1cb
Fix compilation on older systems (amend 3fb90523cc)
libs/ardour/sndfile_helpers.cc:67:68: error: 'strncasecmp' was not declared in this scope
2022-11-04 15:52:25 +01:00
Mads Kiilerich 4958c0d666
PulseAudio: fix error message 2022-11-04 13:44:55 +01:00
Mads Kiilerich c2db9b4606
PulseAudio: just start stream uncorked
There was no reason to cork it when it was uncorked right after.

Playback will start when the buffer is full anyway.
2022-11-04 13:44:55 +01:00
Mads Kiilerich 00d3ce6b62
PulseAudio: remove commented out code 2022-11-04 13:44:55 +01:00
Mads Kiilerich 40f9e0c6a6
PulseAudio: use explicit defaults for tlength and prebuf
These might be the values that PA would have chosen anyway, but make it
clear that Ardour is in control ... and will let the user control
"everything" with the buffer size.
2022-11-04 13:44:55 +01:00
Mads Kiilerich 584ee51ca8
PulseAudio: set buffer attributes where they are used
Just moving code.
2022-11-04 13:44:55 +01:00
Mads Kiilerich 8e7ef0d42c
PulseAudio: use correct casing
This will also change the internal backend name, so it will miss the
previous 'config' setting '<State backend="Pulseaudio" ...'` and the
session file's '<EngineHints backend="Pulseaudio" ...'. But that is no
big deal after upgrading. Especially after the backend has been broken
for some users for a while.
2022-11-04 13:44:55 +01:00
Mads Kiilerich 3fb90523cc Remove unused code in sndfile_helpers
No need to worry about maintaining this code with missing formats like
mp3.
2022-11-04 03:52:45 +01:00
Mads Kiilerich d2fa78ba95 Fix "Could create output file" error message
In the log output, the error would look like:
  [ERROR]: Export initialization failed: Exception thrown by AudioGrapher::SndfileWriter<short>: Could create output file (.../export/something.wav)

Add the missing negation.

But it would perhaps be better phrase the message differently so it not
just hints so strongly towards a file system error preventing file
creation.

Perhaps something like "Failed to initialize sound export to %s"?
2022-11-04 03:52:45 +01:00
Mads Kiilerich 6fba7f6308 Handle SF_FORMAT_DOUBLE in sndfile_data_width
Many formats use ExportFormatBase::SF_Double which incorrectly would end
up in the default "we don't handle anything else within ardour" branch.

(It happened to work correctly anyway, since ExportGraphBuilder::SFC
handled the "magic" value 1 the same was as the "error" value 0.)

For correctness, use the "magic" value 1 for double.
2022-11-04 03:52:45 +01:00
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
Robin Gareus 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
Robin Gareus 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
Robin Gareus 2b0e6ec476
NO-OP: clang format 2022-11-03 00:28:24 +01:00
Alexandre Prokoudine edc19e2b7d Slight adjustment of wording in Quick Audio Export 2022-11-03 01:21:13 +03:00
Paul Davis 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
Robin Gareus 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
Robin Gareus 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
Paul Davis 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