Commit graph

188 commits

Author SHA1 Message Date
David Robillard
e70a2dc461 Remove tranzport surface
This has not been possible to build for some time, so if anyone was going to
miss it, they would have already.
2021-06-17 10:51:45 -04:00
Mathias Buhr
c5abb7ecda Fix Upsampler new/delete mismatch 2021-06-12 21:16:18 +02:00
Robin Gareus
a8c47da364
Fix realtime export loudness normalization
TmpFileRt::get_samples_written() returns the number of
samples written *to disk*. It is only valid after the FileFlushed
signal is emitted.

This fixes an assert() with Limiter and Analyzer being configured
with a too low total sample-count, leading to an overflow in
the analysis graph array.
2021-04-29 19:05:09 +02:00
Robin Gareus
6da997ef30
Revert "use -90dB as default threshold for silence trim during export, rather than -inf dB"
This reverts commit fe8418ffea,
which had no effect, since the default c'tor argument is not used.
2021-04-24 16:42:17 +02:00
Paul Davis
fe8418ffea use -90dB as default threshold for silence trim during export, rather than -inf dB 2021-04-23 11:03:17 -06:00
John Emmas
8437d0a54a Add/remove source(s) in our MSVC project (audiographer) 2021-04-17 11:21:33 +01:00
David Robillard
69e5fd1c99 Fix audiographer normalizer test
Build broken in 75829d20f2.
2021-04-13 14:59:05 -04:00
Robin Gareus
883f818626
Fix C++11ism 2021-04-13 05:35:29 +02:00
Robin Gareus
c4f0393cf9
Keep track of export-limiter redux 2021-04-12 23:15:30 +02:00
Robin Gareus
89a65f76b0
Update analysis duration when post-processing
This prevents the need to re-bin data in case silence is
trimmed at start or end of the export.
2021-04-12 23:15:30 +02:00
Robin Gareus
75829d20f2
Overhaul export loudness normalization
* Fix exporting multiple formats with different
  normalization settings or demo-noise settings
* Add true-peak limiter (based on x42-limiter dpl.lv2)
* Optionally use a limiter for loudness normalization
* Fall back to short-term loudness when normalizing
  material too short for integrating loudness.
2021-04-12 23:15:30 +02:00
Robin Gareus
c1d98ca3c8
Export analysis: log loudness / time 2021-04-07 01:46:02 +02:00
Robin Gareus
cc7b8b1bc5
gcc-11 compat, volatile atomic variables (1/2)
"While 'atomic' has a volatile qualifier, this is a historical
artifact and the pointer passed to it should not be volatile."

Furthermore "It is very important that all accesses to a
particular integer or pointer be performed using only this API"
(from https://developer.gnome.org/glib/2.68/glib-Atomic-Operations.html)

Hence initialization of atomic variables is changed to also use
this API, instead of directly initializing the value.

This also fixes a few cases where atomic variables were
accessed directly.

see also libs/pbd/pbd/g_atomic_compat.h
2021-03-22 15:30:07 +01:00
Robin Gareus
e6dcc47d4a
Fix export-analysis true-peak display offset when stripping silence #8578 2021-03-21 14:36:10 +01:00
Robin Gareus
516a1b0d2e
Use unique target names for unit-test build rules 2020-10-16 02:31:39 +02:00
Robin Gareus
d794f39e20
Update post-export analysis to report max short/mom loudness 2020-07-20 05:16:51 +02:00
John Emmas
743a3b1842 Add/remove source(s) in our MSVC project (audiographer) 2020-06-05 12:41:55 +01:00
Robin Gareus
25169d239d
Relax initial export-noise to 1/3 of interval 2020-06-05 03:19:47 +02:00
Robin Gareus
820165d238
Add export demo noise watermarking 2020-06-04 21:20:32 +02:00
Robin Gareus
fe1f8effb9
Don't crash if ardour vamp plugins are n/a #8161
This still assert()s in debug builds. Since those plugins
should always be available.
2020-05-30 05:20:50 +02:00
Robin Gareus
c365c6cdb2
Set thread-names (libs) 2020-03-29 14:56:22 +02:00
Robin Gareus
7c6eadd84a
Fix some doxygen warnings 2020-03-02 17:58:03 +01:00
Robin Gareus
bca825e515
NO-OP: whitespace 2020-01-14 00:52:24 +01:00
Robin Gareus
551702b9e9
Fix for-loop condition (comma has no effect) 2019-12-05 18:23:49 +01:00
Robin Gareus
38b36d2ea5
Engage thread-safe fftw planner in libardour
This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..
2019-09-10 03:06:21 +02:00
Robin Gareus
98c65406e3
Prefer std::vector<> over C-style malloc/free**
This fixes a potential out of bounds read `if (_dbtp_plugin[c])`
if c is larger than the allocated channel count.
2019-08-12 15:02:24 +02:00
Robin Gareus
c1bd70d8b0
Update audiographer GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
John Emmas
d3657a8944 Add/remove source(s) in our MSVC project (audiographer) 2019-03-04 12:16:47 +00:00
Robin Gareus
8b2a8fa42a
Remove another unused include 2019-03-02 14:32:54 +01:00
Robin Gareus
959947e7f8
NO-OP: whitespace (remove vi modelines) 2019-02-28 20:56:23 +01:00
Robin Gareus
9131cd17a0
Consolidate gdither noise code 2019-02-28 20:40:45 +01:00
John Emmas
afee22d5fa Add/remove source(s) in our MSVC project (audiographer) 2018-11-23 07:27:32 +00:00
Robin Gareus
e4cbd5115e Add Pipe-to-command export backend
A first step towards allowing external encoders without intermediate
temporary file.
2018-11-19 03:30:40 +01:00
Paul Davis
8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
John Emmas
9506a294c7 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 1 of 3 (more to follow)
2018-09-30 08:56:12 +01:00
John Emmas
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
Robin Gareus
16ef78ade0 Clarify error message when file cannot be created,
The default error is "Not a valid SNDFILE* pointer." which is rather
obscure to end-users.
2018-07-25 17:46:15 +02:00
Robin Gareus
b0373598d7 Fix a typo (thanks to IOhannes/debian for reporting) 2018-02-28 20:40:38 +01:00
John Emmas
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
John Emmas
6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus
7258c6334d Namespace PBD::RingBuffer
class RingBuffer<> is a very generic name and should not pollute the
global namespace.
2017-09-16 16:37:29 +02:00
Tim Mayberry
4985f0d7ae Include last sample in reverse test for nonsilence in end trim during export 2016-12-06 20:55:17 +10:00
Tim Mayberry
bd52d4e328 Fix issues in export with trim enabled
A complete reimplementation of AudioGrapher::SilentTrimmer::process to support
trimming the beginning and end in the same processing block

Fix export with trim end enabled to actually trim silent frames

Only add silence to beginning or end of export data if data was written

Should resolve: #6412
2016-12-06 13:44:19 +10:00
Tim Mayberry
568cf861f9 Rename AudioGrapher::SilentTrimmer method to reflect behaviour
Unlike many of the other uses of the term "frame" this is actually returning
the index to the first sample in the interleaved frame that contains
non-silence.
2016-12-06 13:43:10 +10:00
Tim Mayberry
2c67e71e98 Always signal writing to file is complete at end of the export process
With end trim enabled, the only case that would successfully export was if
there was at least some samples above the silence threshold in the last export
processing block.

The issue was that the EndOfInput flag was not being passed to
AudioGrapher::SndFileWriter::process which would then call sf_write_sync and
emit the FileWritten signal to start post processing. Fix that by always
passing the EndOfInput flag in the last export process cycle.

Related: #6412
2016-12-06 13:43:09 +10:00
Tim Mayberry
9e794af3ea Add script to run audiographer tests 2016-12-06 13:20:54 +10:00
Paul Davis
69cbcb84a6 spelling corrections from Jaromír Mikeš <mira.mikes@seznam.cz>
Corresponds to https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/tree/debian/patches/0070-spelling.patch
2016-10-17 17:57:39 -04:00
Robin Gareus
b55975a861 consistent VAMP includes
This resolves an ambiguity VampHost::Vamp::Plugin and Vamp::Plugin
2016-10-03 05:13:12 +02:00