Commit Graph

123 Commits

Author SHA1 Message Date
Paul Davis
eae9d276fe libardour: conversion to use timeline types (mega-commit) 2021-08-13 12:51:29 -06:00
Robin Gareus
c06553c2de Reset x-run counter after disabling freewheeling 2021-06-14 03:09:42 +02:00
Robin Gareus
ec131fcb70 Set Thread name to aid debugging 2021-06-14 01:29:16 +02:00
Robin Gareus
c8205cc6d9 Fix final export-timespan count
ExportHandler::start_timespan() is also used to stop export
when there are no more timespans to be processed.

This is done because freewheeling has to be stopped from
outside the process cycle.
2021-06-14 00:40:23 +02:00
Robin Gareus
f0cb8e54c3 Fix taglib error message 2021-04-12 23:15:30 +02:00
Robin Gareus
df47da4e55 Disambiguate export filename early on
When exporting multiple formats with identical filename
extension for the same time-span, the format-name needs
to be added.

Previously that was done internally when starting to export.
The Export-Dialog did not show correct filenames nor
warn of existing files that will be overwritten.
2021-04-12 23:15:30 +02:00
Robin Gareus
062aeb0262 Bail out if export cannot be started 2020-12-08 01:10:00 +01:00
Robin Gareus
57118c2370 Prevent FX from producing sound after export
This cuts reverb tails and synth sounds after export.
Disabling freewheeling, continues normal processing where
export left off. This previously kept notes ringing, or reverbs
audible.
2020-04-09 01:28:04 +02:00
Robin Gareus
d126966952 Remove backend support for region-output export
This use-case is better served via stem-export.
2020-03-06 03:29:16 +01:00
Robin Gareus
751f9f9654 Fix export alignment (#7916)
Ardour's playback is aligned to master-out:
 "When the playback clock reads 01:00:00:00, the sample corresponding
  to 01:00:00:00 is audible at the speaker(s)"

When exporting, and grabbing data from output ports, the signal
is offset by the master-bus physical playback latency. This was
compensated for, but lead to initial silence in the exported file.

New approach is to start capturing export data during pre-roll,
at the time when playback is written to the output buffers.

To also shaves off a common offset to make this work with
realtime export. Effectively this emulates processing with
disconnected master-output port, while still keeping any
latency of effects on the master-bus itself.

Last but not least: jack updates latencies when freewheeling,
(setting HW latency to zero). The callback arrives asynchronously
some time after enabling freewheeling, but after Export
Ports have been configured. Those callbacks are ignored.
2020-03-06 01:49:48 +01:00
Robin Gareus
1851440863 Fix realtime export of multiple time-spans
After exporting a time-span, the next time-span was started
directly from the rt-callback. This had various issues.
In particular with realtime export.

Post-processing of a realtime-export enables freewheeling
and is driven by freewheel callbacks. Freewheeling needs to be
safely disabled for an upcoming realtime export.

A similar issues existed when mixing realtime and non-realtime exports.
2020-03-06 01:49:44 +01:00
Robin Gareus
7f3f201833 Remove "i18n.h" include from header - fix builds
i18n alsways needs to be included last. This fixes an ambiguity of "_"

boost/function_types/detail/class_transform.hpp:23:26:
 error: ‘boost::mpl::placeholders::_’ has not been declared
 using mpl::placeholders::_;
2019-09-18 04:15:02 +02:00
Robin Gareus
a22f918d9d Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus
71d4dd821c Fix CD cue file Index positions -- #7780
According to the cdrdao man page, they should be defined as follows:
  INDEX MM:SS:FF
   Increments the index number at given position within the track.
   The first statement will increment from 1 to 2. The position is
   relative to the real track start, not counting an existing pre-gap.
2019-08-02 02:43:43 +02:00
Robin Gareus
2f91bdfa53 NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
Robin Gareus
0a329ffe73 NO-OP name change: CD-frames (not samples) 2019-04-08 14:44:22 +02:00
Robin Gareus
e1ffe7857f Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
Robin Gareus
62cd539143 Fix false-positive duplicate format detection
Previously, stem-exports of more than 1 channel always included
the export-format, even if only one format was exported.
2018-10-02 21:28:49 +02:00
Robin Gareus
506863bf57 Add an API to reset export-handler configs.
config_map.erase() is only called in ExportHandler::finish_timespan().

When an export fails (throw) or is aborted, the export-handler's
config remains as is and the next export will run it again.

The export-handler is global, per session and
ExportHandler::add_export_config() only ever inserts or ignores insert.

This is in preparation to fix:
1) export to invalid path -> fail, error is thrown
2) correct path -> new config is inserted in the map
3) try to export again, first runs the not-completed export from (1)
  -> constant errors.
2018-07-25 18:19:19 +02:00
Robin Gareus
24ec0b974d Properly aligned export (Stem + Session)
Delay ports being exported by their playback latency.
2017-09-29 05:03:48 +02: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
a1116ebd6f Oh boy! 2017-03-18 14:35:25 +01:00
Robin Gareus
0e65852901 Desperate hack to align master-bus on export.
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
2016-10-25 22:33:37 +02:00
Robin Gareus
3e32a00a52 fast region export -- don't call process() 2016-10-17 21:35:00 +02:00
Robin Gareus
8c944c08ea Normalize API rename part 2 2016-07-18 17:37:13 +02:00
Robin Gareus
b64dcac17e No-Op: rename Normalizer to Intermediate
post-processing is no longer just Normalization. RealtimeExport
does Encoding - faster than realtime - using the same infrastructure.
2016-07-18 17:37:13 +02:00
Robin Gareus
f8a6213454 libardour support for timespan realtime export 2016-07-16 02:14:18 +02:00
Robin Gareus
77687519b6 Refactor TmpFile into an abstract base class
This allows a TmpFile pointer to be either a Sync or Async (Threaded)
writer. As result we must be able to handle both RT and non RT processing.

Still, post-processing (normalization and encoding) should always
happen faster than realtime (freewheeling).

Since jack does not allow a client to change to freewheeling from within
the process-callback, the async-writer disk-thread FileFlushed is used
to initiate post-processing.
2016-07-16 02:14:13 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Paul Davis
02852c1980 fix CUE/TOC file creation with non ISO-8859-1 chars in source text (substitute underscores) 2016-07-13 16:39:26 -04:00
Robin Gareus
63ac1e7224 more meta-data placeholders for post-export command 2016-06-12 10:59:47 +02:00
Robin Gareus
04997080a4 add meta-data placeholders for post-export command
needs testing on windows with UTF8
2016-06-07 16:57:17 +02:00
Robin Gareus
e35d891616 the return of the Session::Exported signal 2016-03-19 13:13:34 +01:00
Robin Gareus
d131f882ee cleaner version of ac3da53 2016-03-12 10:11:06 +01:00
Robin Gareus
ac3da53f71 reset export status when not normalizing - fixes #6816 2016-03-12 03:02:31 +01:00
Adrian Knoth
6fa88273aa Spelling correction patch from Debian
Patch taken (and forward-ported to HEAD) from
<https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
2016-02-22 15:13:01 -05:00
Robin Gareus
108528b63d amend d814acb - SystemExec/Export debugging 2016-02-13 01:39:41 +01:00
Ben Loftis
d814acbb8f add some debugging capability for users of SystemExec. Needs review. 2016-02-12 18:22:12 -06:00
Robin Gareus
2c2002ee9c Prepare for optional timespan name during export. 2016-02-11 20:58:05 +01:00
Robin Gareus
c1642fead8 Post-export Analysis 2016-02-10 03:01:05 +01:00
Robin Gareus
1ec78d26ee Fix crash when aborting export.
The "Stop" button results in ExportHandlerPtr being destroyed.
This must not happen while it's in use -- in particular during
ExportHandler::start_timespan() and ExportHandler::finish_timespan()
2016-02-09 21:36:49 +01:00
Robin Gareus
c00a07e811 detailed export state, prepare resolution for #6512
(Post-processing step should announce itself during an export)
2016-02-09 13:15:54 +01:00
Robin Gareus
6ec38e9193 remove last ofstream 2015-10-13 09:55:53 +02:00
Robin Gareus
2397429e99 use quotes for in-tree pbd/glib wrapper include 2015-10-05 22:15:18 +02:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus
7ac691ec82 use pbd's gstdio compatibility wrapper 2015-09-17 14:37:57 +02:00
Robin Gareus
67c75c5a33 fix file metadata tagging on windows.
This allows TagLib to open the file and create a Tag object (see 2a0365c)
Tagging still fails later (taglib seek/SetFilePointer fails when writing)
2015-07-30 05:28:43 +02:00
Paul Davis
d1747b4137 no-op: indentation and whitespace fixes 2015-06-29 14:18:11 -04:00
GZharun
ae8c494c02 [Summary] Added export cleanup
[Reviewed by] Andriy Mishyn
2015-06-29 14:18:11 -04:00